diff options
author | pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-09-01 13:40:49 +0000 |
---|---|---|
committer | pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-09-01 13:40:49 +0000 |
commit | e3879fd05707e0b87f3ed8c502bef5abe68eb016 (patch) | |
tree | 0be3dc8b233c9750aadeb34c084509825c78d8c6 /gcc/config/arm/cortex-r4.md | |
parent | f1fb2997dc59523723f0cb73ea02cecf4e913021 (diff) | |
download | ppe42-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.md | 36 |
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") |