aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2014-08-05 10:27:07 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2014-08-05 10:27:07 +0000
commitad784b91ac27636d106ae0ee55093dba958bd98d (patch)
tree91d5bbd7ab96eb92ec826ef70d06cd47478f8c3c /gcc
parent66224c7d68c5fbcc5d4573a8c3897bc451bc473c (diff)
downloadgcc-ad784b91ac27636d106ae0ee55093dba958bd98d.zip
gcc-ad784b91ac27636d106ae0ee55093dba958bd98d.tar.gz
gcc-ad784b91ac27636d106ae0ee55093dba958bd98d.tar.bz2
[ARM/AArch64] Add CRC32 scheduling information to Cortex-A53 and Cortex-A57.
* config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type to reservation. * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise. From-SVN: r213632
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/arm/cortex-a15.md5
-rw-r--r--gcc/config/arm/cortex-a53.md2
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b58e798..2a9d353 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+ * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
+ to reservation.
+ * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
+
+2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
* config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
(rbitsi2): Likewise.
(*arm_rev): Set predicable and predicable_short_it attributes.
diff --git a/gcc/config/arm/cortex-a15.md b/gcc/config/arm/cortex-a15.md
index f5e01a7..520f24a 100644
--- a/gcc/config/arm/cortex-a15.md
+++ b/gcc/config/arm/cortex-a15.md
@@ -72,11 +72,14 @@
"ca15_issue1,(ca15_sx1,ca15_sx1_alu)|(ca15_sx2,ca15_sx2_alu)")
;; ALU ops with immediate shift
+;; crc is also included here so that appropriate scheduling of CRC32 ARMv8-A
+;; instructions can be performed when tuning for the Cortex-A57 since that
+;; core reuses the Cortex-A15 pipeline description for the moment.
(define_insn_reservation "cortex_a15_alu_shift" 3
(and (eq_attr "tune" "cortexa15")
(eq_attr "type" "extend,\
alu_shift_imm,alus_shift_imm,\
- logic_shift_imm,logics_shift_imm,\
+ crc,logic_shift_imm,logics_shift_imm,\
mov_shift,mvn_shift"))
"ca15_issue1,(ca15_sx1,ca15_sx1+ca15_sx1_shf,ca15_sx1_alu)\
|(ca15_sx2,ca15_sx2+ca15_sx2_shf,ca15_sx2_alu)")
diff --git a/gcc/config/arm/cortex-a53.md b/gcc/config/arm/cortex-a53.md
index 6cfdcf2..969ed23 100644
--- a/gcc/config/arm/cortex-a53.md
+++ b/gcc/config/arm/cortex-a53.md
@@ -84,7 +84,7 @@
(define_insn_reservation "cortex_a53_alu_shift" 2
(and (eq_attr "tune" "cortexa53")
(eq_attr "type" "alu_shift_imm,alus_shift_imm,\
- logic_shift_imm,logics_shift_imm,\
+ crc,logic_shift_imm,logics_shift_imm,\
alu_shift_reg,alus_shift_reg,\
logic_shift_reg,logics_shift_reg,\
extend,mov_shift,mov_shift_reg,\