Commit a5ad2017 by David Edelsohn Committed by David Edelsohn

rs6000.c (rs6000_emit_prologue): Always clobber LR in SImode for save_world.

        * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
        in SImode for save_world.
        * config/rs6000/altivec.md (save_world, restore_world): Convert to
        LR hard reg.

From-SVN: r123198
parent 5773afc5
2007-03-25 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
in SImode for save_world.
* config/rs6000/altivec.md (save_world, restore_world): Convert to
LR hard reg.
2007-03-25 Dorit Nuzman <dorit@il.ibm.com> 2007-03-25 Dorit Nuzman <dorit@il.ibm.com>
PR tree-optimization/30784 PR tree-optimization/30784
......
...@@ -302,10 +302,10 @@ ...@@ -302,10 +302,10 @@
(define_insn "*save_world" (define_insn "*save_world"
[(match_parallel 0 "save_world_operation" [(match_parallel 0 "save_world_operation"
[(clobber (match_operand:SI 1 "register_operand" "=l")) [(clobber (reg:SI 65))
(use (match_operand:SI 2 "call_operand" "s"))])] (use (match_operand:SI 1 "call_operand" "s"))])]
"TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN) && TARGET_32BIT" "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN) && TARGET_32BIT"
"bl %z2" "bl %z1"
[(set_attr "type" "branch") [(set_attr "type" "branch")
(set_attr "length" "4")]) (set_attr "length" "4")])
...@@ -313,10 +313,10 @@ ...@@ -313,10 +313,10 @@
[(match_parallel 0 "restore_world_operation" [(match_parallel 0 "restore_world_operation"
[(return) [(return)
(use (reg:SI 65)) (use (reg:SI 65))
(use (match_operand:SI 2 "call_operand" "s")) (use (match_operand:SI 1 "call_operand" "s"))
(clobber (match_operand:SI 3 "gpc_reg_operand" "=r"))])] (clobber (match_operand:SI 2 "gpc_reg_operand" "=r"))])]
"TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN) && TARGET_32BIT" "TARGET_MACHO && (DEFAULT_ABI == ABI_DARWIN) && TARGET_32BIT"
"b %z2") "b %z1")
;; Simple binary operations. ;; Simple binary operations.
......
...@@ -14727,7 +14727,7 @@ rs6000_emit_prologue (void) ...@@ -14727,7 +14727,7 @@ rs6000_emit_prologue (void)
p = rtvec_alloc (sz); p = rtvec_alloc (sz);
j = 0; j = 0;
RTVEC_ELT (p, j++) = gen_rtx_CLOBBER (VOIDmode, RTVEC_ELT (p, j++) = gen_rtx_CLOBBER (VOIDmode,
gen_rtx_REG (Pmode, gen_rtx_REG (SImode,
LINK_REGISTER_REGNUM)); LINK_REGISTER_REGNUM));
RTVEC_ELT (p, j++) = gen_rtx_USE (VOIDmode, RTVEC_ELT (p, j++) = gen_rtx_USE (VOIDmode,
gen_rtx_SYMBOL_REF (Pmode, gen_rtx_SYMBOL_REF (Pmode,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment