aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2013-11-23 09:06:42 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2013-11-23 09:06:42 +0000
commitc51392f186fb54c8c9e26b380496de9992c1e913 (patch)
tree79d8faf962e3f44f43f2cae3224ce91f7cbc4abd /gcc
parent4615f96c2d51be66bb76fa3d168d8a162b92317d (diff)
downloadgcc-c51392f186fb54c8c9e26b380496de9992c1e913.zip
gcc-c51392f186fb54c8c9e26b380496de9992c1e913.tar.gz
gcc-c51392f186fb54c8c9e26b380496de9992c1e913.tar.bz2
bfin-protos.h (push_multiple_operation): Delete.
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog13
-rw-r--r--gcc/config/bfin/bfin-protos.h4
-rw-r--r--gcc/config/bfin/bfin.c12
-rw-r--r--gcc/config/bfin/predicates.md8
4 files changed, 29 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e2e972a..c3fdcbe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/bfin/bfin-protos.h b/gcc/config/bfin/bfin-protos.h
index 91f03b1..1123845 100644
--- a/gcc/config/bfin/bfin-protos.h
+++ b/gcc/config/bfin/bfin-protos.h
@@ -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);
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index 6fdf153..a1adf80 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -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
diff --git a/gcc/config/bfin/predicates.md b/gcc/config/bfin/predicates.md
index cdb2c41..8d9e13d 100644
--- a/gcc/config/bfin/predicates.md
+++ b/gcc/config/bfin/predicates.md
@@ -239,3 +239,11 @@
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)")))