From e1ece9f1f2035e4315bf8a79d0fa7fe6cab60343 Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Mon, 3 Nov 2008 18:19:13 +0000 Subject: [PATCH] Revert: 2008-10-31 Nathan Froyd * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence problem. (rs6000_emit_prologue): Invert logic. * config/rs6000/rs6000.md (*save_gpregs_): Use explicit (reg:P 11) instead of match_operand. (*save_fpregs_): Likewise. (*restore_gpregs_): Likewise. (*return_and_restore_gpregs_): Likewise. (*return_and_restore_fpregs_): 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: r141554 --- gcc/ChangeLog | 19 +++++++++++++++++++ gcc/config/rs6000/rs6000.c | 5 ++--- gcc/config/rs6000/rs6000.md | 30 +++++++++++++++--------------- gcc/config/rs6000/spe.md | 18 +++++++++--------- 4 files changed, 45 insertions(+), 27 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c3b744628b2..5b01a8c05bd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,22 @@ +2008-11-03 Nathan Froyd + + Revert: + 2008-10-31 Nathan Froyd + + * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence + problem. + (rs6000_emit_prologue): Invert logic. + * config/rs6000/rs6000.md (*save_gpregs_): Use explicit + (reg:P 11) instead of match_operand. + (*save_fpregs_): Likewise. + (*restore_gpregs_): Likewise. + (*return_and_restore_gpregs_): Likewise. + (*return_and_restore_fpregs_): 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 PR tree-optimization/37684 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 6376305ef6a..faeae52e7ff 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 46ff6b7a4b3..4fa690d8097 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 c87d67ea47f..96be255895b 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")