]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
bfin-protos.h (push_multiple_operation): Delete.
authorRichard Sandiford <rdsandiford@googlemail.com>
Sat, 23 Nov 2013 09:06:42 +0000 (09:06 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sat, 23 Nov 2013 09:06:42 +0000 (09:06 +0000)
gcc/
* config/bfin/bfin-protos.h (push_multiple_operation): Delete.
(pop_multiple_operation): Delete.
(analyze_push_multiple_operation): Declare.
(analyze_pop_multiple_operation): Declare.
* config/bfin/bfin.c (push_multiple_operation): Rename to...
(analyze_push_multiple_operation): ...this and remove mode argument.
(pop_multiple_operation): Rename to...
(analyze_pop_multiple_operation): ...this and remove mode argument.
* config/bfin/predicates.md (push_multiple_operation): Define.
(pop_multiple_operation): Likewise.

From-SVN: r205301

gcc/ChangeLog
gcc/config/bfin/bfin-protos.h
gcc/config/bfin/bfin.c
gcc/config/bfin/predicates.md

index e2e972a3c664829567775527c7fb982dc573b57e..c3fdcbe555ec75f0a936d69facda29b40a5deafe 100644 (file)
@@ -1,3 +1,16 @@
+2013-11-23  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/bfin/bfin-protos.h (push_multiple_operation): Delete.
+       (pop_multiple_operation): Delete.
+       (analyze_push_multiple_operation): Declare.
+       (analyze_pop_multiple_operation): Declare.
+       * config/bfin/bfin.c (push_multiple_operation): Rename to...
+       (analyze_push_multiple_operation): ...this and remove mode argument.
+       (pop_multiple_operation): Rename to...
+       (analyze_pop_multiple_operation): ...this and remove mode argument.
+       * config/bfin/predicates.md (push_multiple_operation): Define.
+       (pop_multiple_operation): Likewise.
+
 2013-11-23  Alan Modra  <amodra@gmail.com>
 
        * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.
index 91f03b198f9a83755261dc2db60f117ba5a80299..1123845d364fcad0a843c982786dbb5d7e2518d6 100644 (file)
@@ -105,8 +105,8 @@ extern rtx bfin_va_arg (tree, tree);
 
 extern void bfin_expand_prologue (void);
 extern void bfin_expand_epilogue (int, int, bool);
-extern int push_multiple_operation (rtx, enum machine_mode);
-extern int pop_multiple_operation (rtx, enum machine_mode);
+extern int analyze_push_multiple_operation (rtx);
+extern int analyze_pop_multiple_operation (rtx);
 extern void output_push_multiple (rtx, rtx *);
 extern void output_pop_multiple (rtx, rtx *);
 extern int bfin_hard_regno_rename_ok (unsigned int, unsigned int);
index 6fdf15302f9c554aeb44fd88b392d53eacc66b68..a1adf8010b6d9622bf7aafd80122664af748308c 100644 (file)
@@ -2992,7 +2992,7 @@ static int first_preg_to_save, first_dreg_to_save;
 static int n_regs_to_save;
 
 int
-push_multiple_operation (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
+analyze_push_multiple_operation (rtx op)
 {
   int lastdreg = 8, lastpreg = 6;
   int i, group;
@@ -3063,7 +3063,7 @@ push_multiple_operation (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
 }
 
 int
-pop_multiple_operation (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
+analyze_pop_multiple_operation (rtx op)
 {
   int lastdreg = 8, lastpreg = 6;
   int i, group;
@@ -3132,7 +3132,7 @@ output_push_multiple (rtx insn, rtx *operands)
   int ok;
   
   /* Validate the insn again, and compute first_[dp]reg_to_save. */
-  ok = push_multiple_operation (PATTERN (insn), VOIDmode);
+  ok = analyze_push_multiple_operation (PATTERN (insn));
   gcc_assert (ok);
   
   if (first_dreg_to_save == 8)
@@ -3156,7 +3156,7 @@ output_pop_multiple (rtx insn, rtx *operands)
   int ok;
   
   /* Validate the insn again, and compute first_[dp]reg_to_save. */
-  ok = pop_multiple_operation (PATTERN (insn), VOIDmode);
+  ok = analyze_pop_multiple_operation (PATTERN (insn));
   gcc_assert (ok);
 
   if (first_dreg_to_save == 8)
@@ -4136,8 +4136,8 @@ workaround_rts_anomaly (void)
 
          if (GET_CODE (pat) == PARALLEL)
            {
-             if (push_multiple_operation (pat, VOIDmode)
-                 || pop_multiple_operation (pat, VOIDmode))
+             if (analyze_push_multiple_operation (pat)
+                 || analyze_pop_multiple_operation (pat))
                this_cycles = n_regs_to_save;
            }
          else
index cdb2c414be9eec3451a2c0380e502973ebf27f23..8d9e13d5acaea674241a49f2cd6a73ddadad82cd 100644 (file)
   gcc_assert (REG_P (op));
   return IREG_P (op);
 })
+
+(define_predicate "push_multiple_operation"
+  (and (match_code "parallel")
+       (match_test "analyze_push_multiple_operation (op)")))
+
+(define_predicate "pop_multiple_operation"
+  (and (match_code "parallel")
+       (match_test "analyze_pop_multiple_operation (op)")))