From patchwork Thu May 31 22:47:51 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matt Turner X-Patchwork-Id: 162241 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 1266FB7003 for ; Fri, 1 Jun 2012 08:48:38 +1000 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1339109319; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:From:To:Cc:Subject:Date:Message-Id:Mailing-List: Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:Sender:Delivered-To; bh=BNvyZtohAv5xzLy3Jn6+iLMp6KY=; b=TvTUFAor0XaAdrJzuLac7NNm0bHolF/+yR7hWujdUoZmONUKJoFiQtdg7uNeS4 g2hYOeDQSmKWy9B6ovaZAYDfScLXEUAGDM/4SEZ5/U7k14XOU1zZVBec3nompBE6 a9bL2mMi7v0XHZx6zjBfrKJUfDfvCz8c89oLLXU5j6eeg= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Received:From:To:Cc:Subject:Date:Message-Id:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=HAFXabQSua/R5EbNVYVaVtmsLK33AWRs0EAJKIdl8gbJ8uOYB0q81/MZ9xp65X /m1Fzp8XDNFvWH1Vh6wj5V1a4O3TzcHzbB+7VcMwgssJ4dY1EWXWVyxAVl9lVy7S qrTyNjF7SDE3GpCQla1IfoVtPq76mSRijWtA0OKcoAHfo=; Received: (qmail 28912 invoked by alias); 31 May 2012 22:48:28 -0000 Received: (qmail 28552 invoked by uid 22791); 31 May 2012 22:48:16 -0000 X-SWARE-Spam-Status: No, hits=-4.4 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, KHOP_RCVD_TRUST, RCVD_IN_DNSWL_LOW, RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-gh0-f176.google.com (HELO mail-gh0-f176.google.com) (209.85.160.176) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 31 May 2012 22:47:59 +0000 Received: by ghbz10 with SMTP id z10so1495348ghb.21 for ; Thu, 31 May 2012 15:47:58 -0700 (PDT) Received: by 10.236.173.232 with SMTP id v68mr404784yhl.97.1338504478371; Thu, 31 May 2012 15:47:58 -0700 (PDT) Received: from localhost (cpe-174-109-057-184.nc.res.rr.com. [174.109.57.184]) by mx.google.com with ESMTPS id g66sm253789yhf.15.2012.05.31.15.47.57 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 31 May 2012 15:47:57 -0700 (PDT) From: Matt Turner To: Richard Sandiford Cc: gcc-patches@gcc.gnu.org, Matt Turner Subject: [PATCH 2/2] mips: Add R4700 scheduling support Date: Thu, 31 May 2012 18:47:51 -0400 Message-Id: <1338504471-11955-1-git-send-email-mattst88@gmail.com> Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org The R4700 is identical to the R4600 except for the integer and floating-point multiplication costs. See page 4 of http://datasheets.chipdb.org/IDT/MIPS/79RV4700.pdf 2012-03-24 Matt Turner gcc/ * config/mips/4600.md (r4700_imul_si): New. (r4700_imul_di): New. (r4700_fmul_single): New. (r4700_fmul_double): New. * config/mips/mips-cpus.def: Add r4700. * config/mips/mips.c: Likewise. * config/mips/mips.md: Likewise. * config/mips/mips-tables.opt: Regenerate. --- gcc/config/mips/4600.md | 51 ++++++-- gcc/config/mips/mips-cpus.def | 1 + gcc/config/mips/mips-tables.opt | 278 ++++++++++++++++++++------------------- gcc/config/mips/mips.c | 3 + gcc/config/mips/mips.md | 1 + 5 files changed, 187 insertions(+), 147 deletions(-) diff --git a/gcc/config/mips/4600.md b/gcc/config/mips/4600.md index 53aa01b..36eab80 100644 --- a/gcc/config/mips/4600.md +++ b/gcc/config/mips/4600.md @@ -1,4 +1,4 @@ -;; R4600 and R4650 pipeline description. +;; R4600, R4650, and R4700 pipeline description. ;; Copyright (C) 2004, 2005, 2007, 2012 Free Software Foundation, Inc. ;; ;; This file is part of GCC. @@ -21,8 +21,10 @@ ;; This file overrides parts of generic.md. It is derived from the ;; old define_function_unit description. ;; -;; We handle the R4600 and R4650 in much the same way. The only difference -;; is in the integer multiplication and division costs. +;; We handle the R4600, R4650, and R4700 in much the same way. The only +;; differences between R4600 and R4650 are the integer multiplication and +;; division costs. The only differences between R4600 and R4700 are the +;; integer and floating-point multiplication costs. (define_insn_reservation "r4600_imul_si" 10 (and (eq_attr "cpu" "r4600") @@ -37,13 +39,13 @@ "imuldiv*12") (define_insn_reservation "r4600_idiv_si" 42 - (and (eq_attr "cpu" "r4600") + (and (eq_attr "cpu" "r4600,r4700") (eq_attr "type" "idiv") (eq_attr "mode" "SI")) "imuldiv*42") (define_insn_reservation "r4600_idiv_di" 74 - (and (eq_attr "cpu" "r4600") + (and (eq_attr "cpu" "r4600,r4700") (eq_attr "type" "idiv") (eq_attr "mode" "DI")) "imuldiv*74") @@ -60,13 +62,26 @@ "imuldiv*36") +(define_insn_reservation "r4700_imul_si" 8 + (and (eq_attr "cpu" "r4700") + (eq_attr "type" "imul,imul3,imadd") + (eq_attr "mode" "SI")) + "imuldiv*8") + +(define_insn_reservation "r4700_imul_di" 10 + (and (eq_attr "cpu" "r4700") + (eq_attr "type" "imul,imul3,imadd") + (eq_attr "mode" "DI")) + "imuldiv*10") + + (define_insn_reservation "r4600_load" 2 - (and (eq_attr "cpu" "r4600,r4650") + (and (eq_attr "cpu" "r4600,r4650,r4700") (eq_attr "type" "load,fpload,fpidxload")) "alu") (define_insn_reservation "r4600_fmove" 1 - (and (eq_attr "cpu" "r4600,r4650") + (and (eq_attr "cpu" "r4600,r4650,r4700") (eq_attr "type" "fabs,fneg,fmove")) "alu") @@ -82,26 +97,40 @@ (eq_attr "mode" "DF"))) "alu") + +(define_insn_reservation "r4700_fmul_single" 4 + (and (eq_attr "cpu" "r4700") + (and (eq_attr "type" "fmul,fmadd") + (eq_attr "mode" "SF"))) + "alu") + +(define_insn_reservation "r4700_fmul_double" 5 + (and (eq_attr "cpu" "r4700") + (and (eq_attr "type" "fmul,fmadd") + (eq_attr "mode" "DF"))) + "alu") + + (define_insn_reservation "r4600_fdiv_single" 32 - (and (eq_attr "cpu" "r4600,r4650") + (and (eq_attr "cpu" "r4600,r4650,r4700") (and (eq_attr "type" "fdiv,frdiv") (eq_attr "mode" "SF"))) "alu") (define_insn_reservation "r4600_fdiv_double" 61 - (and (eq_attr "cpu" "r4600,r4650") + (and (eq_attr "cpu" "r4600,r4650,r4700") (and (eq_attr "type" "fdiv,frdiv") (eq_attr "mode" "DF"))) "alu") (define_insn_reservation "r4600_fsqrt_single" 31 - (and (eq_attr "cpu" "r4600,r4650") + (and (eq_attr "cpu" "r4600,r4650,r4700") (and (eq_attr "type" "fsqrt,frsqrt") (eq_attr "mode" "SF"))) "alu") (define_insn_reservation "r4600_fsqrt_double" 60 - (and (eq_attr "cpu" "r4600,r4650") + (and (eq_attr "cpu" "r4600,r4650,r4700") (and (eq_attr "type" "fsqrt,frsqrt") (eq_attr "mode" "DF"))) "alu") diff --git a/gcc/config/mips/mips-cpus.def b/gcc/config/mips/mips-cpus.def index 8271c47..356d3e5 100644 --- a/gcc/config/mips/mips-cpus.def +++ b/gcc/config/mips/mips-cpus.def @@ -70,6 +70,7 @@ MIPS_CPU ("r4400", PROCESSOR_R4000, 3, 0) MIPS_CPU ("r4600", PROCESSOR_R4600, 3, 0) MIPS_CPU ("orion", PROCESSOR_R4600, 3, 0) MIPS_CPU ("r4650", PROCESSOR_R4650, 3, 0) +MIPS_CPU ("r4700", PROCESSOR_R4700, 3, 0) /* ST Loongson 2E/2F processors. */ MIPS_CPU ("loongson2e", PROCESSOR_LOONGSON_2E, 3, PTF_AVOID_BRANCHLIKELY) MIPS_CPU ("loongson2f", PROCESSOR_LOONGSON_2F, 3, PTF_AVOID_BRANCHLIKELY) diff --git a/gcc/config/mips/mips-tables.opt b/gcc/config/mips/mips-tables.opt index 599fc12..e232557 100644 --- a/gcc/config/mips/mips-tables.opt +++ b/gcc/config/mips/mips-tables.opt @@ -202,412 +202,418 @@ EnumValue Enum(mips_arch_opt_value) String(4650) Value(21) EnumValue -Enum(mips_arch_opt_value) String(loongson2e) Value(22) Canonical +Enum(mips_arch_opt_value) String(r4700) Value(22) Canonical EnumValue -Enum(mips_arch_opt_value) String(loongson2f) Value(23) Canonical +Enum(mips_arch_opt_value) String(4700) Value(22) EnumValue -Enum(mips_arch_opt_value) String(r8000) Value(24) Canonical +Enum(mips_arch_opt_value) String(loongson2e) Value(23) Canonical EnumValue -Enum(mips_arch_opt_value) String(r8k) Value(24) +Enum(mips_arch_opt_value) String(loongson2f) Value(24) Canonical EnumValue -Enum(mips_arch_opt_value) String(8000) Value(24) +Enum(mips_arch_opt_value) String(r8000) Value(25) Canonical EnumValue -Enum(mips_arch_opt_value) String(8k) Value(24) +Enum(mips_arch_opt_value) String(r8k) Value(25) EnumValue -Enum(mips_arch_opt_value) String(r10000) Value(25) Canonical +Enum(mips_arch_opt_value) String(8000) Value(25) EnumValue -Enum(mips_arch_opt_value) String(r10k) Value(25) +Enum(mips_arch_opt_value) String(8k) Value(25) EnumValue -Enum(mips_arch_opt_value) String(10000) Value(25) +Enum(mips_arch_opt_value) String(r10000) Value(26) Canonical EnumValue -Enum(mips_arch_opt_value) String(10k) Value(25) +Enum(mips_arch_opt_value) String(r10k) Value(26) EnumValue -Enum(mips_arch_opt_value) String(r12000) Value(26) Canonical +Enum(mips_arch_opt_value) String(10000) Value(26) EnumValue -Enum(mips_arch_opt_value) String(r12k) Value(26) +Enum(mips_arch_opt_value) String(10k) Value(26) EnumValue -Enum(mips_arch_opt_value) String(12000) Value(26) +Enum(mips_arch_opt_value) String(r12000) Value(27) Canonical EnumValue -Enum(mips_arch_opt_value) String(12k) Value(26) +Enum(mips_arch_opt_value) String(r12k) Value(27) EnumValue -Enum(mips_arch_opt_value) String(r14000) Value(27) Canonical +Enum(mips_arch_opt_value) String(12000) Value(27) EnumValue -Enum(mips_arch_opt_value) String(r14k) Value(27) +Enum(mips_arch_opt_value) String(12k) Value(27) EnumValue -Enum(mips_arch_opt_value) String(14000) Value(27) +Enum(mips_arch_opt_value) String(r14000) Value(28) Canonical EnumValue -Enum(mips_arch_opt_value) String(14k) Value(27) +Enum(mips_arch_opt_value) String(r14k) Value(28) EnumValue -Enum(mips_arch_opt_value) String(r16000) Value(28) Canonical +Enum(mips_arch_opt_value) String(14000) Value(28) EnumValue -Enum(mips_arch_opt_value) String(r16k) Value(28) +Enum(mips_arch_opt_value) String(14k) Value(28) EnumValue -Enum(mips_arch_opt_value) String(16000) Value(28) +Enum(mips_arch_opt_value) String(r16000) Value(29) Canonical EnumValue -Enum(mips_arch_opt_value) String(16k) Value(28) +Enum(mips_arch_opt_value) String(r16k) Value(29) EnumValue -Enum(mips_arch_opt_value) String(vr5000) Value(29) Canonical +Enum(mips_arch_opt_value) String(16000) Value(29) EnumValue -Enum(mips_arch_opt_value) String(vr5k) Value(29) +Enum(mips_arch_opt_value) String(16k) Value(29) EnumValue -Enum(mips_arch_opt_value) String(5000) Value(29) +Enum(mips_arch_opt_value) String(vr5000) Value(30) Canonical EnumValue -Enum(mips_arch_opt_value) String(5k) Value(29) +Enum(mips_arch_opt_value) String(vr5k) Value(30) EnumValue -Enum(mips_arch_opt_value) String(r5000) Value(29) +Enum(mips_arch_opt_value) String(5000) Value(30) EnumValue -Enum(mips_arch_opt_value) String(r5k) Value(29) +Enum(mips_arch_opt_value) String(5k) Value(30) EnumValue -Enum(mips_arch_opt_value) String(vr5400) Value(30) Canonical +Enum(mips_arch_opt_value) String(r5000) Value(30) EnumValue -Enum(mips_arch_opt_value) String(5400) Value(30) +Enum(mips_arch_opt_value) String(r5k) Value(30) EnumValue -Enum(mips_arch_opt_value) String(r5400) Value(30) +Enum(mips_arch_opt_value) String(vr5400) Value(31) Canonical EnumValue -Enum(mips_arch_opt_value) String(vr5500) Value(31) Canonical +Enum(mips_arch_opt_value) String(5400) Value(31) EnumValue -Enum(mips_arch_opt_value) String(5500) Value(31) +Enum(mips_arch_opt_value) String(r5400) Value(31) EnumValue -Enum(mips_arch_opt_value) String(r5500) Value(31) +Enum(mips_arch_opt_value) String(vr5500) Value(32) Canonical EnumValue -Enum(mips_arch_opt_value) String(rm7000) Value(32) Canonical +Enum(mips_arch_opt_value) String(5500) Value(32) EnumValue -Enum(mips_arch_opt_value) String(rm7k) Value(32) +Enum(mips_arch_opt_value) String(r5500) Value(32) EnumValue -Enum(mips_arch_opt_value) String(7000) Value(32) +Enum(mips_arch_opt_value) String(rm7000) Value(33) Canonical EnumValue -Enum(mips_arch_opt_value) String(7k) Value(32) +Enum(mips_arch_opt_value) String(rm7k) Value(33) EnumValue -Enum(mips_arch_opt_value) String(r7000) Value(32) +Enum(mips_arch_opt_value) String(7000) Value(33) EnumValue -Enum(mips_arch_opt_value) String(r7k) Value(32) +Enum(mips_arch_opt_value) String(7k) Value(33) EnumValue -Enum(mips_arch_opt_value) String(rm9000) Value(33) Canonical +Enum(mips_arch_opt_value) String(r7000) Value(33) EnumValue -Enum(mips_arch_opt_value) String(rm9k) Value(33) +Enum(mips_arch_opt_value) String(r7k) Value(33) EnumValue -Enum(mips_arch_opt_value) String(9000) Value(33) +Enum(mips_arch_opt_value) String(rm9000) Value(34) Canonical EnumValue -Enum(mips_arch_opt_value) String(9k) Value(33) +Enum(mips_arch_opt_value) String(rm9k) Value(34) EnumValue -Enum(mips_arch_opt_value) String(r9000) Value(33) +Enum(mips_arch_opt_value) String(9000) Value(34) EnumValue -Enum(mips_arch_opt_value) String(r9k) Value(33) +Enum(mips_arch_opt_value) String(9k) Value(34) EnumValue -Enum(mips_arch_opt_value) String(4kc) Value(34) Canonical +Enum(mips_arch_opt_value) String(r9000) Value(34) EnumValue -Enum(mips_arch_opt_value) String(r4kc) Value(34) +Enum(mips_arch_opt_value) String(r9k) Value(34) EnumValue -Enum(mips_arch_opt_value) String(4km) Value(35) Canonical +Enum(mips_arch_opt_value) String(4kc) Value(35) Canonical EnumValue -Enum(mips_arch_opt_value) String(r4km) Value(35) +Enum(mips_arch_opt_value) String(r4kc) Value(35) EnumValue -Enum(mips_arch_opt_value) String(4kp) Value(36) Canonical +Enum(mips_arch_opt_value) String(4km) Value(36) Canonical EnumValue -Enum(mips_arch_opt_value) String(r4kp) Value(36) +Enum(mips_arch_opt_value) String(r4km) Value(36) EnumValue -Enum(mips_arch_opt_value) String(4ksc) Value(37) Canonical +Enum(mips_arch_opt_value) String(4kp) Value(37) Canonical EnumValue -Enum(mips_arch_opt_value) String(r4ksc) Value(37) +Enum(mips_arch_opt_value) String(r4kp) Value(37) EnumValue -Enum(mips_arch_opt_value) String(m4k) Value(38) Canonical +Enum(mips_arch_opt_value) String(4ksc) Value(38) Canonical EnumValue -Enum(mips_arch_opt_value) String(4kec) Value(39) Canonical +Enum(mips_arch_opt_value) String(r4ksc) Value(38) EnumValue -Enum(mips_arch_opt_value) String(r4kec) Value(39) +Enum(mips_arch_opt_value) String(m4k) Value(39) Canonical EnumValue -Enum(mips_arch_opt_value) String(4kem) Value(40) Canonical +Enum(mips_arch_opt_value) String(4kec) Value(40) Canonical EnumValue -Enum(mips_arch_opt_value) String(r4kem) Value(40) +Enum(mips_arch_opt_value) String(r4kec) Value(40) EnumValue -Enum(mips_arch_opt_value) String(4kep) Value(41) Canonical +Enum(mips_arch_opt_value) String(4kem) Value(41) Canonical EnumValue -Enum(mips_arch_opt_value) String(r4kep) Value(41) +Enum(mips_arch_opt_value) String(r4kem) Value(41) EnumValue -Enum(mips_arch_opt_value) String(4ksd) Value(42) Canonical +Enum(mips_arch_opt_value) String(4kep) Value(42) Canonical EnumValue -Enum(mips_arch_opt_value) String(r4ksd) Value(42) +Enum(mips_arch_opt_value) String(r4kep) Value(42) EnumValue -Enum(mips_arch_opt_value) String(24kc) Value(43) Canonical +Enum(mips_arch_opt_value) String(4ksd) Value(43) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kc) Value(43) +Enum(mips_arch_opt_value) String(r4ksd) Value(43) EnumValue -Enum(mips_arch_opt_value) String(24kf2_1) Value(44) Canonical +Enum(mips_arch_opt_value) String(24kc) Value(44) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kf2_1) Value(44) +Enum(mips_arch_opt_value) String(r24kc) Value(44) EnumValue -Enum(mips_arch_opt_value) String(24kf) Value(45) Canonical +Enum(mips_arch_opt_value) String(24kf2_1) Value(45) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kf) Value(45) +Enum(mips_arch_opt_value) String(r24kf2_1) Value(45) EnumValue -Enum(mips_arch_opt_value) String(24kf1_1) Value(46) Canonical +Enum(mips_arch_opt_value) String(24kf) Value(46) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kf1_1) Value(46) +Enum(mips_arch_opt_value) String(r24kf) Value(46) EnumValue -Enum(mips_arch_opt_value) String(24kfx) Value(47) Canonical +Enum(mips_arch_opt_value) String(24kf1_1) Value(47) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kfx) Value(47) +Enum(mips_arch_opt_value) String(r24kf1_1) Value(47) EnumValue -Enum(mips_arch_opt_value) String(24kx) Value(48) Canonical +Enum(mips_arch_opt_value) String(24kfx) Value(48) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kx) Value(48) +Enum(mips_arch_opt_value) String(r24kfx) Value(48) EnumValue -Enum(mips_arch_opt_value) String(24kec) Value(49) Canonical +Enum(mips_arch_opt_value) String(24kx) Value(49) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kec) Value(49) +Enum(mips_arch_opt_value) String(r24kx) Value(49) EnumValue -Enum(mips_arch_opt_value) String(24kef2_1) Value(50) Canonical +Enum(mips_arch_opt_value) String(24kec) Value(50) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kef2_1) Value(50) +Enum(mips_arch_opt_value) String(r24kec) Value(50) EnumValue -Enum(mips_arch_opt_value) String(24kef) Value(51) Canonical +Enum(mips_arch_opt_value) String(24kef2_1) Value(51) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kef) Value(51) +Enum(mips_arch_opt_value) String(r24kef2_1) Value(51) EnumValue -Enum(mips_arch_opt_value) String(24kef1_1) Value(52) Canonical +Enum(mips_arch_opt_value) String(24kef) Value(52) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kef1_1) Value(52) +Enum(mips_arch_opt_value) String(r24kef) Value(52) EnumValue -Enum(mips_arch_opt_value) String(24kefx) Value(53) Canonical +Enum(mips_arch_opt_value) String(24kef1_1) Value(53) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kefx) Value(53) +Enum(mips_arch_opt_value) String(r24kef1_1) Value(53) EnumValue -Enum(mips_arch_opt_value) String(24kex) Value(54) Canonical +Enum(mips_arch_opt_value) String(24kefx) Value(54) Canonical EnumValue -Enum(mips_arch_opt_value) String(r24kex) Value(54) +Enum(mips_arch_opt_value) String(r24kefx) Value(54) EnumValue -Enum(mips_arch_opt_value) String(34kc) Value(55) Canonical +Enum(mips_arch_opt_value) String(24kex) Value(55) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kc) Value(55) +Enum(mips_arch_opt_value) String(r24kex) Value(55) EnumValue -Enum(mips_arch_opt_value) String(34kf2_1) Value(56) Canonical +Enum(mips_arch_opt_value) String(34kc) Value(56) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kf2_1) Value(56) +Enum(mips_arch_opt_value) String(r34kc) Value(56) EnumValue -Enum(mips_arch_opt_value) String(34kf) Value(57) Canonical +Enum(mips_arch_opt_value) String(34kf2_1) Value(57) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kf) Value(57) +Enum(mips_arch_opt_value) String(r34kf2_1) Value(57) EnumValue -Enum(mips_arch_opt_value) String(34kf1_1) Value(58) Canonical +Enum(mips_arch_opt_value) String(34kf) Value(58) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kf1_1) Value(58) +Enum(mips_arch_opt_value) String(r34kf) Value(58) EnumValue -Enum(mips_arch_opt_value) String(34kfx) Value(59) Canonical +Enum(mips_arch_opt_value) String(34kf1_1) Value(59) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kfx) Value(59) +Enum(mips_arch_opt_value) String(r34kf1_1) Value(59) EnumValue -Enum(mips_arch_opt_value) String(34kx) Value(60) Canonical +Enum(mips_arch_opt_value) String(34kfx) Value(60) Canonical EnumValue -Enum(mips_arch_opt_value) String(r34kx) Value(60) +Enum(mips_arch_opt_value) String(r34kfx) Value(60) EnumValue -Enum(mips_arch_opt_value) String(74kc) Value(61) Canonical +Enum(mips_arch_opt_value) String(34kx) Value(61) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kc) Value(61) +Enum(mips_arch_opt_value) String(r34kx) Value(61) EnumValue -Enum(mips_arch_opt_value) String(74kf2_1) Value(62) Canonical +Enum(mips_arch_opt_value) String(74kc) Value(62) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kf2_1) Value(62) +Enum(mips_arch_opt_value) String(r74kc) Value(62) EnumValue -Enum(mips_arch_opt_value) String(74kf) Value(63) Canonical +Enum(mips_arch_opt_value) String(74kf2_1) Value(63) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kf) Value(63) +Enum(mips_arch_opt_value) String(r74kf2_1) Value(63) EnumValue -Enum(mips_arch_opt_value) String(74kf1_1) Value(64) Canonical +Enum(mips_arch_opt_value) String(74kf) Value(64) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kf1_1) Value(64) +Enum(mips_arch_opt_value) String(r74kf) Value(64) EnumValue -Enum(mips_arch_opt_value) String(74kfx) Value(65) Canonical +Enum(mips_arch_opt_value) String(74kf1_1) Value(65) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kfx) Value(65) +Enum(mips_arch_opt_value) String(r74kf1_1) Value(65) EnumValue -Enum(mips_arch_opt_value) String(74kx) Value(66) Canonical +Enum(mips_arch_opt_value) String(74kfx) Value(66) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kx) Value(66) +Enum(mips_arch_opt_value) String(r74kfx) Value(66) EnumValue -Enum(mips_arch_opt_value) String(74kf3_2) Value(67) Canonical +Enum(mips_arch_opt_value) String(74kx) Value(67) Canonical EnumValue -Enum(mips_arch_opt_value) String(r74kf3_2) Value(67) +Enum(mips_arch_opt_value) String(r74kx) Value(67) EnumValue -Enum(mips_arch_opt_value) String(1004kc) Value(68) Canonical +Enum(mips_arch_opt_value) String(74kf3_2) Value(68) Canonical EnumValue -Enum(mips_arch_opt_value) String(r1004kc) Value(68) +Enum(mips_arch_opt_value) String(r74kf3_2) Value(68) EnumValue -Enum(mips_arch_opt_value) String(1004kf2_1) Value(69) Canonical +Enum(mips_arch_opt_value) String(1004kc) Value(69) Canonical EnumValue -Enum(mips_arch_opt_value) String(r1004kf2_1) Value(69) +Enum(mips_arch_opt_value) String(r1004kc) Value(69) EnumValue -Enum(mips_arch_opt_value) String(1004kf) Value(70) Canonical +Enum(mips_arch_opt_value) String(1004kf2_1) Value(70) Canonical EnumValue -Enum(mips_arch_opt_value) String(r1004kf) Value(70) +Enum(mips_arch_opt_value) String(r1004kf2_1) Value(70) EnumValue -Enum(mips_arch_opt_value) String(1004kf1_1) Value(71) Canonical +Enum(mips_arch_opt_value) String(1004kf) Value(71) Canonical EnumValue -Enum(mips_arch_opt_value) String(r1004kf1_1) Value(71) +Enum(mips_arch_opt_value) String(r1004kf) Value(71) EnumValue -Enum(mips_arch_opt_value) String(5kc) Value(72) Canonical +Enum(mips_arch_opt_value) String(1004kf1_1) Value(72) Canonical EnumValue -Enum(mips_arch_opt_value) String(r5kc) Value(72) +Enum(mips_arch_opt_value) String(r1004kf1_1) Value(72) EnumValue -Enum(mips_arch_opt_value) String(5kf) Value(73) Canonical +Enum(mips_arch_opt_value) String(5kc) Value(73) Canonical EnumValue -Enum(mips_arch_opt_value) String(r5kf) Value(73) +Enum(mips_arch_opt_value) String(r5kc) Value(73) EnumValue -Enum(mips_arch_opt_value) String(20kc) Value(74) Canonical +Enum(mips_arch_opt_value) String(5kf) Value(74) Canonical EnumValue -Enum(mips_arch_opt_value) String(r20kc) Value(74) +Enum(mips_arch_opt_value) String(r5kf) Value(74) EnumValue -Enum(mips_arch_opt_value) String(sb1) Value(75) Canonical +Enum(mips_arch_opt_value) String(20kc) Value(75) Canonical EnumValue -Enum(mips_arch_opt_value) String(sb1a) Value(76) Canonical +Enum(mips_arch_opt_value) String(r20kc) Value(75) EnumValue -Enum(mips_arch_opt_value) String(sr71000) Value(77) Canonical +Enum(mips_arch_opt_value) String(sb1) Value(76) Canonical EnumValue -Enum(mips_arch_opt_value) String(sr71k) Value(77) +Enum(mips_arch_opt_value) String(sb1a) Value(77) Canonical EnumValue -Enum(mips_arch_opt_value) String(xlr) Value(78) Canonical +Enum(mips_arch_opt_value) String(sr71000) Value(78) Canonical EnumValue -Enum(mips_arch_opt_value) String(loongson3a) Value(79) Canonical +Enum(mips_arch_opt_value) String(sr71k) Value(78) EnumValue -Enum(mips_arch_opt_value) String(octeon) Value(80) Canonical +Enum(mips_arch_opt_value) String(xlr) Value(79) Canonical EnumValue -Enum(mips_arch_opt_value) String(octeon+) Value(81) Canonical +Enum(mips_arch_opt_value) String(loongson3a) Value(80) Canonical EnumValue -Enum(mips_arch_opt_value) String(octeon2) Value(82) Canonical +Enum(mips_arch_opt_value) String(octeon) Value(81) Canonical + +EnumValue +Enum(mips_arch_opt_value) String(octeon+) Value(82) Canonical + +EnumValue +Enum(mips_arch_opt_value) String(octeon2) Value(83) Canonical EnumValue Enum(mips_arch_opt_value) String(xlp) Value(83) Canonical diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 122bc98..5bcb7a8 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -961,6 +961,9 @@ static const struct mips_rtx_cost_data { /* R4650 */ DEFAULT_COSTS }, + { /* R4700 */ + DEFAULT_COSTS + }, { /* R5000 */ COSTS_N_INSNS (6), /* fp_add */ COSTS_N_INSNS (4), /* fp_mult_sf */ diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 912dccb..0d85340 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -54,6 +54,7 @@ r4300 r4600 r4650 + r4700 r5000 r5400 r5500