aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog19
-rw-r--r--gcc/config/rs6000/rs6000.c5
-rw-r--r--gcc/config/rs6000/rs6000.md30
-rw-r--r--gcc/config/rs6000/spe.md18
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")