summaryrefslogtreecommitdiffstats
path: root/gcc/config/arm/cortex-r4.md
diff options
context:
space:
mode:
authorpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-01 13:40:49 +0000
committerpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2008-09-01 13:40:49 +0000
commite3879fd05707e0b87f3ed8c502bef5abe68eb016 (patch)
tree0be3dc8b233c9750aadeb34c084509825c78d8c6 /gcc/config/arm/cortex-r4.md
parentf1fb2997dc59523723f0cb73ea02cecf4e913021 (diff)
downloadppe42-gcc-e3879fd05707e0b87f3ed8c502bef5abe68eb016.tar.gz
ppe42-gcc-e3879fd05707e0b87f3ed8c502bef5abe68eb016.zip
2008-09-01 Paul Brook <paul@codesourcery.com>
gcc/ * config/arm/arm.md: Include cortex-r4f.md. (attr fpu): Update type list. (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts, fconstd, fcmps and fcmpd. (attr tune_cortexr4): Define. (attr generic_sched, attr generic_vfp): Use tune_cortexr4. * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd, fconsts, fconstd, fcmps and fcmpd. Use them in insn patterns. * config/arm/arm.c (arm_issue_rate): Add cortexr4f. * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn types. * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub, cortex_a8_vfp_farith: Ditto. * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto. * config/arm/cortex-r4.md: Use tune_cortexr4. * config/arm/cortex-r4f.md: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139865 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/cortex-r4.md')
-rw-r--r--gcc/config/arm/cortex-r4.md36
1 files changed, 18 insertions, 18 deletions
diff --git a/gcc/config/arm/cortex-r4.md b/gcc/config/arm/cortex-r4.md
index 34467345acb..e26c3d45d5e 100644
--- a/gcc/config/arm/cortex-r4.md
+++ b/gcc/config/arm/cortex-r4.md
@@ -77,24 +77,24 @@
;; Data processing instructions. Moves without shifts are kept separate
;; for the purposes of the dual-issue constraints above.
(define_insn_reservation "cortex_r4_alu" 2
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(and (eq_attr "type" "alu")
(not (eq_attr "insn" "mov"))))
"cortex_r4_alu")
(define_insn_reservation "cortex_r4_mov" 2
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(and (eq_attr "type" "alu")
(eq_attr "insn" "mov")))
"cortex_r4_mov")
(define_insn_reservation "cortex_r4_alu_shift" 2
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "type" "alu_shift"))
"cortex_r4_alu")
(define_insn_reservation "cortex_r4_alu_shift_reg" 2
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "type" "alu_shift_reg"))
"cortex_r4_alu_shift_reg")
@@ -127,32 +127,32 @@
;; Multiplication instructions.
(define_insn_reservation "cortex_r4_mul_4" 4
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "insn" "mul,smmul"))
"cortex_r4_mul_2")
(define_insn_reservation "cortex_r4_mul_3" 3
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "insn" "smulxy,smulwy,smuad,smusd"))
"cortex_r4_mul")
(define_insn_reservation "cortex_r4_mla_4" 4
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "insn" "mla,smmla"))
"cortex_r4_mul_2")
(define_insn_reservation "cortex_r4_mla_3" 3
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "insn" "smlaxy,smlawy,smlad,smlsd"))
"cortex_r4_mul")
(define_insn_reservation "cortex_r4_smlald" 3
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "insn" "smlald,smlsld"))
"cortex_r4_mul")
(define_insn_reservation "cortex_r4_mull" 4
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "insn" "smull,umull,umlal,umaal"))
"cortex_r4_mul_2")
@@ -195,19 +195,19 @@
;; is performed with B having ten more leading zeros than A.
;; This gives a latency of nine for udiv and ten for sdiv.
(define_insn_reservation "cortex_r4_udiv" 9
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "insn" "udiv"))
"cortex_r4_div_9")
(define_insn_reservation "cortex_r4_sdiv" 10
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "insn" "sdiv"))
"cortex_r4_div_10")
;; Branches. We assume correct prediction.
(define_insn_reservation "cortex_r4_branch" 0
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "type" "branch"))
"cortex_r4_branch")
@@ -215,7 +215,7 @@
;; number is used as "positive infinity" so that everything should be
;; finished by the time of return.
(define_insn_reservation "cortex_r4_call" 32
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "type" "call"))
"nothing")
@@ -226,12 +226,12 @@
;; accesses following are correctly aligned.
(define_insn_reservation "cortex_r4_load_1_2" 3
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "type" "load1,load2"))
"cortex_r4_load_store")
(define_insn_reservation "cortex_r4_load_3_4" 4
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "type" "load3,load4"))
"cortex_r4_load_store_2")
@@ -281,12 +281,12 @@
;; Store instructions.
(define_insn_reservation "cortex_r4_store_1_2" 0
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "type" "store1,store2"))
"cortex_r4_load_store")
(define_insn_reservation "cortex_r4_store_3_4" 0
- (and (eq_attr "tune" "cortexr4")
+ (and (eq_attr "tune_cortexr4" "yes")
(eq_attr "type" "store3,store4"))
"cortex_r4_load_store_2")
OpenPOWER on IntegriCloud