diff gcc/config/arm/fa526.md @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents 561a7518be6b
children 84e7813d76e9
line wrap: on
line diff
--- a/gcc/config/arm/fa526.md	Sun Aug 21 07:07:55 2011 +0900
+++ b/gcc/config/arm/fa526.md	Fri Oct 27 22:46:09 2017 +0900
@@ -1,5 +1,5 @@
 ;; Faraday FA526 Pipeline Description
-;; Copyright (C) 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 ;; Written by I-Jui Sung, based on ARM926EJ-S Pipeline Description.
 
 ;; This file is part of GCC.
@@ -54,7 +54,7 @@
 
 ;; ALU instructions require two cycles to execute, and use the ALU
 ;; pipeline in each of the three stages.  The results are available
-;; after the execute stage stage has finished.
+;; after the execute stage has finished.
 ;;
 ;; If the destination register is the PC, the pipelines are stalled
 ;; for several cycles.  That case is not modeled here.
@@ -62,12 +62,24 @@
 ;; ALU operations
 (define_insn_reservation "526_alu_op" 1
  (and (eq_attr "tune" "fa526")
-      (eq_attr "type" "alu"))
+      (eq_attr "type" "alu_imm,alus_imm,logic_imm,logics_imm,\
+                       alu_sreg,alus_sreg,logic_reg,logics_reg,\
+                       adc_imm,adcs_imm,adc_reg,adcs_reg,\
+                       adr,bfm,rev,\
+                       shift_imm,shift_reg,\
+                       mov_imm,mov_reg,mvn_imm,mvn_reg,\
+                       mrs,multiple,no_insn"))
  "fa526_core")
 
 (define_insn_reservation "526_alu_shift_op" 2
  (and (eq_attr "tune" "fa526")
-      (eq_attr "type" "alu_shift,alu_shift_reg"))
+      (eq_attr "type" "extend,\
+                       alu_shift_imm,alus_shift_imm,\
+                       logic_shift_imm,logics_shift_imm,\
+                       alu_shift_reg,alus_shift_reg,\
+                       logic_shift_reg,logics_shift_reg,\
+                       mov_shift,mov_shift_reg,\
+                       mvn_shift,mvn_shift_reg"))
  "fa526_core")
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -76,12 +88,12 @@
 
 (define_insn_reservation "526_mult1" 2
  (and (eq_attr "tune" "fa526")
-      (eq_attr "insn" "smlalxy,smulxy,smlaxy,smlalxy"))
+      (eq_attr "type" "smlalxy,smulxy,smlaxy,smlalxy"))
  "fa526_core")
 
 (define_insn_reservation "526_mult2" 5
  (and (eq_attr "tune" "fa526")
-      (eq_attr "insn" "mul,mla,muls,mlas,umull,umlal,smull,smlal,umulls,\
+      (eq_attr "type" "mul,mla,muls,mlas,umull,umlal,smull,smlal,umulls,\
                        umlals,smulls,smlals,smlawx"))
  "fa526_core*4")
 
@@ -96,42 +108,42 @@
 
 (define_insn_reservation "526_load1_op" 3
  (and (eq_attr "tune" "fa526")
-      (eq_attr "type" "load1,load_byte"))
+      (eq_attr "type" "load_4,load_byte"))
  "fa526_core")
 
 (define_insn_reservation "526_load2_op" 4
  (and (eq_attr "tune" "fa526")
-      (eq_attr "type" "load2"))
+      (eq_attr "type" "load_8"))
  "fa526_core*2")
 
 (define_insn_reservation "526_load3_op" 5
  (and (eq_attr "tune" "fa526")
-      (eq_attr "type" "load3"))
+      (eq_attr "type" "load_12"))
  "fa526_core*3")
 
 (define_insn_reservation "526_load4_op" 6
  (and (eq_attr "tune" "fa526")
-      (eq_attr "type" "load4"))
+      (eq_attr "type" "load_16"))
  "fa526_core*4")
 
 (define_insn_reservation "526_store1_op" 0
  (and (eq_attr "tune" "fa526")
-      (eq_attr "type" "store1"))
+      (eq_attr "type" "store_4"))
  "fa526_core")
 
 (define_insn_reservation "526_store2_op" 1
  (and (eq_attr "tune" "fa526")
-      (eq_attr "type" "store2"))
+      (eq_attr "type" "store_8"))
  "fa526_core*2")
 
 (define_insn_reservation "526_store3_op" 2
  (and (eq_attr "tune" "fa526")
-      (eq_attr "type" "store3"))
+      (eq_attr "type" "store_12"))
  "fa526_core*3")
 
 (define_insn_reservation "526_store4_op" 3
  (and (eq_attr "tune" "fa526")
-      (eq_attr "type" "store4"))
+      (eq_attr "type" "store_16"))
  "fa526_core*4")
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;