arm.c (cortexa7_younger): Return true for TYPE_CALL.
authorGreta Yorsh <greta.yorsh@arm.com>
Tue, 29 Jan 2013 18:41:23 +0000 (18:41 +0000)
committerGreta Yorsh <gretay@gcc.gnu.org>
Tue, 29 Jan 2013 18:41:23 +0000 (18:41 +0000)
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

gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/cortex-a7.md

index a40f35c..a994755 100644 (file)
@@ -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.
index 0aa24b1..d7877b0 100644 (file)
@@ -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;
index a8d4432..0d249b5 100644 (file)
             (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.