diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2013-11-23 09:06:42 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2013-11-23 09:06:42 +0000 |
commit | c51392f186fb54c8c9e26b380496de9992c1e913 (patch) | |
tree | 79d8faf962e3f44f43f2cae3224ce91f7cbc4abd /gcc | |
parent | 4615f96c2d51be66bb76fa3d168d8a162b92317d (diff) | |
download | gcc-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/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/config/bfin/bfin-protos.h | 4 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.c | 12 | ||||
-rw-r--r-- | gcc/config/bfin/predicates.md | 8 |
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)"))) |