From: Richard Sandiford Date: Sat, 23 Nov 2013 09:06:42 +0000 (+0000) Subject: bfin-protos.h (push_multiple_operation): Delete. X-Git-Tag: releases/gcc-4.9.0~2506 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c51392f186fb54c8c9e26b380496de9992c1e913;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e2e972a3c664..c3fdcbe555ec 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2013-11-23 Richard Sandiford + + * 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 * 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 91f03b198f9a..1123845d364f 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 6fdf15302f9c..a1adf8010b6d 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 cdb2c414be9e..8d9e13d5acae 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)")))