diff options
author | Greta Yorsh <greta.yorsh@arm.com> | 2013-01-29 18:41:23 +0000 |
---|---|---|
committer | Greta Yorsh <gretay@gcc.gnu.org> | 2013-01-29 18:41:23 +0000 |
commit | 753bcf7bdf0b6c9874c84c0c87ccea3f59ba16cc (patch) | |
tree | 31ef26e360b4be30d083402b4259dfb95a7704b4 | |
parent | 8cbc2ea849c913adff595a88334d6fc75172221c (diff) | |
download | gcc-753bcf7bdf0b6c9874c84c0c87ccea3f59ba16cc.zip gcc-753bcf7bdf0b6c9874c84c0c87ccea3f59ba16cc.tar.gz gcc-753bcf7bdf0b6c9874c84c0c87ccea3f59ba16cc.tar.bz2 |
arm.c (cortexa7_younger): Return true for TYPE_CALL.
2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
* config/arm/cortex-a7.md (cortex_a7_call): Update required units.
From-SVN: r195554
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 1 | ||||
-rw-r--r-- | gcc/config/arm/cortex-a7.md | 7 |
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a40f35c..a994755 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> + * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL. + * config/arm/cortex-a7.md (cortex_a7_call): Update required units. + +2013-01-29 Greta Yorsh <Greta.Yorsh@arm.com> + * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New declaration. * config/arm/arm.c (arm_mac_accumulator_is_result): New function. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 0aa24b1..d7877b0 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -8758,6 +8758,7 @@ cortexa7_younger (FILE *file, int verbose, rtx insn) case TYPE_SIMPLE_ALU_IMM: case TYPE_SIMPLE_ALU_SHIFT: case TYPE_BRANCH: + case TYPE_CALL: return true; default: return false; diff --git a/gcc/config/arm/cortex-a7.md b/gcc/config/arm/cortex-a7.md index a8d4432..0d249b5 100644 --- a/gcc/config/arm/cortex-a7.md +++ b/gcc/config/arm/cortex-a7.md @@ -80,12 +80,15 @@ (eq_attr "neon_type" "none"))) "(cortex_a7_ex2|cortex_a7_ex1)+cortex_a7_branch") -;; A call reserves all issue slots. The result is available the next cycle. +;; Call cannot dual-issue as an older instruction. It can dual-issue +;; as a younger instruction, or single-issue. Call cannot dual-issue +;; with another branch instruction. The result is available the next +;; cycle. (define_insn_reservation "cortex_a7_call" 1 (and (eq_attr "tune" "cortexa7") (and (eq_attr "type" "call") (eq_attr "neon_type" "none"))) - "cortex_a7_all") + "(cortex_a7_ex2|cortex_a7_both)+cortex_a7_branch") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ALU instructions. |