diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2008-11-01 02:22:55 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2008-11-01 02:22:55 +0000 |
commit | 19ce673106ac50203824077718aee488a4945327 (patch) | |
tree | 27b299e829ea0dc0521c51e5082c2d747e3eb4c1 /gcc | |
parent | 24b6353f30c20b909fb5041537d35b891fa26dfe (diff) | |
download | gcc-19ce673106ac50203824077718aee488a4945327.zip gcc-19ce673106ac50203824077718aee488a4945327.tar.gz gcc-19ce673106ac50203824077718aee488a4945327.tar.bz2 |
rs6000.c (no_global_regs_above): Fix precedence problem.
* config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
problem.
(rs6000_emit_prologue): Invert logic.
* config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
(reg:P 11) instead of match_operand.
(*save_fpregs_<mode>): Likewise.
(*restore_gpregs_<mode>): Likewise.
(*return_and_restore_gpregs_<mode>): Likewise.
(*return_and_restore_fpregs_<mode>): Likewise.
* config/rs6000/spe.md (*save_gpregs_spe): Use explicit
(reg:P 11) insted of match_operand.
(*restore_gpregs_spe): Likewise.
(*return_and_restore_gpregs_spe): Likewise.
From-SVN: r141508
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 16 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 30 | ||||
-rw-r--r-- | gcc/config/rs6000/spe.md | 18 |
4 files changed, 43 insertions, 26 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5af239d..4451a60 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2008-10-31 Nathan Froyd <froydnj@codesourcery.com> + + * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence + problem. + (rs6000_emit_prologue): Invert logic. + * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit + (reg:P 11) instead of match_operand. + (*save_fpregs_<mode>): Likewise. + (*restore_gpregs_<mode>): Likewise. + (*return_and_restore_gpregs_<mode>): Likewise. + (*return_and_restore_fpregs_<mode>): Likewise. + * config/rs6000/spe.md (*save_gpregs_spe): Use explicit + (reg:P 11) insted of match_operand. + (*restore_gpregs_spe): Likewise. + (*return_and_restore_gpregs_spe): Likewise. + 2008-10-28 Luis Machado <luisgpm@br.ibm.com> * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 6df7aa7..a4eeb0e 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -15839,7 +15839,8 @@ static bool no_global_regs_above (int first, bool gpr) { int i; - for (i = first; i < gpr ? 32 : 64 ; i++) + int last = gpr ? 32 : 64; + for (i = first; i < last; i++) if (global_regs[i]) return false; return true; @@ -16118,7 +16119,7 @@ rs6000_emit_prologue (void) int using_store_multiple; int using_static_chain_p = (cfun->static_chain_decl != NULL_TREE && df_regs_ever_live_p (STATIC_CHAIN_REGNUM) - && !call_used_regs[STATIC_CHAIN_REGNUM]); + && call_used_regs[STATIC_CHAIN_REGNUM]); HOST_WIDE_INT sp_offset = 0; if (TARGET_FIX_AND_CONTINUE) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 4fa690d..46ff6b7 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -14604,9 +14604,9 @@ [(match_parallel 0 "any_parallel_operand" [(clobber (reg:P 65)) (use (match_operand:P 1 "symbol_ref_operand" "s")) - (use (match_operand:P 2 "gpc_reg_operand" "r")) - (set (match_operand:P 3 "memory_operand" "=m") - (match_operand:P 4 "gpc_reg_operand" "r"))])] + (use (reg:P 11)) + (set (match_operand:P 2 "memory_operand" "=m") + (match_operand:P 3 "gpc_reg_operand" "r"))])] "" "bl %z1" [(set_attr "type" "branch") @@ -14616,9 +14616,9 @@ [(match_parallel 0 "any_parallel_operand" [(clobber (reg:P 65)) (use (match_operand:P 1 "symbol_ref_operand" "s")) - (use (match_operand:P 2 "gpc_reg_operand" "r")) - (set (match_operand:DF 3 "memory_operand" "=m") - (match_operand:DF 4 "gpc_reg_operand" "f"))])] + (use (reg:P 11)) + (set (match_operand:DF 2 "memory_operand" "=m") + (match_operand:DF 3 "gpc_reg_operand" "f"))])] "" "bl %z1" [(set_attr "type" "branch") @@ -14711,9 +14711,9 @@ [(match_parallel 0 "any_parallel_operand" [(clobber (match_operand:P 1 "register_operand" "=l")) (use (match_operand:P 2 "symbol_ref_operand" "s")) - (use (match_operand:P 3 "gpc_reg_operand" "r")) - (set (match_operand:P 4 "gpc_reg_operand" "=r") - (match_operand:P 5 "memory_operand" "m"))])] + (use (reg:P 11)) + (set (match_operand:P 3 "gpc_reg_operand" "=r") + (match_operand:P 4 "memory_operand" "m"))])] "" "bl %z2" [(set_attr "type" "branch") @@ -14724,9 +14724,9 @@ [(return) (clobber (match_operand:P 1 "register_operand" "=l")) (use (match_operand:P 2 "symbol_ref_operand" "s")) - (use (match_operand:P 3 "gpc_reg_operand" "r")) - (set (match_operand:P 4 "gpc_reg_operand" "=r") - (match_operand:P 5 "memory_operand" "m"))])] + (use (reg:P 11)) + (set (match_operand:P 3 "gpc_reg_operand" "=r") + (match_operand:P 4 "memory_operand" "m"))])] "" "b %z2" [(set_attr "type" "branch") @@ -14737,9 +14737,9 @@ [(return) (clobber (match_operand:P 1 "register_operand" "=l")) (use (match_operand:P 2 "symbol_ref_operand" "s")) - (use (match_operand:P 3 "gpc_reg_operand" "r")) - (set (match_operand:DF 4 "gpc_reg_operand" "=f") - (match_operand:DF 5 "memory_operand" "m"))])] + (use (reg:P 11)) + (set (match_operand:DF 3 "gpc_reg_operand" "=f") + (match_operand:DF 4 "memory_operand" "m"))])] "" "b %z2" [(set_attr "type" "branch") diff --git a/gcc/config/rs6000/spe.md b/gcc/config/rs6000/spe.md index 96be255..c87d67e 100644 --- a/gcc/config/rs6000/spe.md +++ b/gcc/config/rs6000/spe.md @@ -3144,9 +3144,9 @@ [(match_parallel 0 "any_parallel_operand" [(clobber (reg:P 65)) (use (match_operand:P 1 "symbol_ref_operand" "s")) - (use (match_operand:P 2 "gpc_reg_operand" "r")) - (set (match_operand:V2SI 3 "memory_operand" "=m") - (match_operand:V2SI 4 "gpc_reg_operand" "r"))])] + (use (reg:P 11)) + (set (match_operand:V2SI 2 "memory_operand" "=m") + (match_operand:V2SI 3 "gpc_reg_operand" "r"))])] "TARGET_SPE_ABI" "bl %z1" [(set_attr "type" "branch") @@ -3156,9 +3156,9 @@ [(match_parallel 0 "any_parallel_operand" [(clobber (reg:P 65)) (use (match_operand:P 1 "symbol_ref_operand" "s")) - (use (match_operand:P 2 "gpc_reg_operand" "r")) - (set (match_operand:V2SI 3 "gpc_reg_operand" "=r") - (match_operand:V2SI 4 "memory_operand" "m"))])] + (use (reg:P 11)) + (set (match_operand:V2SI 2 "gpc_reg_operand" "=r") + (match_operand:V2SI 3 "memory_operand" "m"))])] "TARGET_SPE_ABI" "bl %z1" [(set_attr "type" "branch") @@ -3169,9 +3169,9 @@ [(return) (clobber (reg:P 65)) (use (match_operand:P 1 "symbol_ref_operand" "s")) - (use (match_operand:P 2 "gpc_reg_operand" "r")) - (set (match_operand:V2SI 3 "gpc_reg_operand" "=r") - (match_operand:V2SI 4 "memory_operand" "m"))])] + (use (reg:P 11)) + (set (match_operand:V2SI 2 "gpc_reg_operand" "=r") + (match_operand:V2SI 3 "memory_operand" "m"))])] "TARGET_SPE_ABI" "b %z1" [(set_attr "type" "branch") |