diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 19 | ||||
-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, 45 insertions, 27 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c3b7446..5b01a8c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,22 @@ +2008-11-03 Nathan Froyd <froydnj@codesourcery.com> + + Revert: + 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-11-03 Harsha Jagasia <harsha.jagasia@amd.com> PR tree-optimization/37684 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 6376305..faeae52 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -15842,8 +15842,7 @@ static bool no_global_regs_above (int first, bool gpr) { int i; - int last = gpr ? 32 : 64; - for (i = first; i < last; i++) + for (i = first; i < gpr ? 32 : 64 ; i++) if (global_regs[i]) return false; return true; @@ -16122,7 +16121,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 46ff6b7..4fa690d 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 (reg:P 11)) - (set (match_operand:P 2 "memory_operand" "=m") - (match_operand:P 3 "gpc_reg_operand" "r"))])] + (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"))])] "" "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 (reg:P 11)) - (set (match_operand:DF 2 "memory_operand" "=m") - (match_operand:DF 3 "gpc_reg_operand" "f"))])] + (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"))])] "" "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 (reg:P 11)) - (set (match_operand:P 3 "gpc_reg_operand" "=r") - (match_operand:P 4 "memory_operand" "m"))])] + (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"))])] "" "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 (reg:P 11)) - (set (match_operand:P 3 "gpc_reg_operand" "=r") - (match_operand:P 4 "memory_operand" "m"))])] + (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"))])] "" "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 (reg:P 11)) - (set (match_operand:DF 3 "gpc_reg_operand" "=f") - (match_operand:DF 4 "memory_operand" "m"))])] + (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"))])] "" "b %z2" [(set_attr "type" "branch") diff --git a/gcc/config/rs6000/spe.md b/gcc/config/rs6000/spe.md index c87d67e..96be255 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 (reg:P 11)) - (set (match_operand:V2SI 2 "memory_operand" "=m") - (match_operand:V2SI 3 "gpc_reg_operand" "r"))])] + (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"))])] "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 (reg:P 11)) - (set (match_operand:V2SI 2 "gpc_reg_operand" "=r") - (match_operand:V2SI 3 "memory_operand" "m"))])] + (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"))])] "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 (reg:P 11)) - (set (match_operand:V2SI 2 "gpc_reg_operand" "=r") - (match_operand:V2SI 3 "memory_operand" "m"))])] + (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"))])] "TARGET_SPE_ABI" "b %z1" [(set_attr "type" "branch") |