diff options
author | David Edelsohn <edelsohn@gnu.org> | 2003-01-16 16:32:25 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2003-01-16 11:32:25 -0500 |
commit | 27dc0551a1180e1032b80bc64d066058c3a2ad70 (patch) | |
tree | 114d642325b048e0e3ad7617f997760fd5a7ee08 | |
parent | 73f849244abc4d6b4f601cb8bbea1e794ec74264 (diff) | |
download | gcc-27dc0551a1180e1032b80bc64d066058c3a2ad70.zip gcc-27dc0551a1180e1032b80bc64d066058c3a2ad70.tar.gz gcc-27dc0551a1180e1032b80bc64d066058c3a2ad70.tar.bz2 |
rs6000.md (movti_string): Remove clobber.
* config/rs6000/rs6000.md (movti_string): Remove clobber.
* config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
generate PARALLEL with clobber for TARGET_POWER.
From-SVN: r61398
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 10 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 5 |
3 files changed, 17 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 58a6a01..4a8e4af 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-01-16 David Edelsohn <edelsohn@gnu.org> + + * config/rs6000/rs6000.md (movti_string): Remove clobber. + * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly + generate PARALLEL with clobber for TARGET_POWER. + 2003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * ra-colorize.c (colorize_one_web): Initialize variable. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 03a4b6b..8e7160f 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -2859,6 +2859,16 @@ rs6000_emit_move (dest, source, mode) operands[1] = replace_equiv_address (operands[1], copy_addr_to_reg (XEXP (operands[1], 0))); + if (TARGET_POWER) + { + emit_insn (gen_rtx_PARALLEL (VOIDmode, + gen_rtvec (2, + gen_rtx_SET (VOIDmode, + operands[0], operands[1]), + gen_rtx_CLOBBER (VOIDmode, + gen_rtx_SCRATCH (SImode))))); + return; + } break; default: diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 267f697..d4621ab 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -9305,10 +9305,8 @@ case 0: return \"{stsi|stswi} %1,%P0,16\"; - case 1: return \"{st%U0|stw%U0} %1,%0\;{st|stw} %L1,%L0\;{st|stw} %Y1,%Y0\;{st|stw} %Z1,%Z0\"; - case 2: /* Normally copy registers with lowest numbered register copied first. But copy in the other order if the first register of the output @@ -9346,8 +9344,7 @@ (define_insn "*movti_string" [(set (match_operand:TI 0 "reg_or_mem_operand" "=Q,m,????r,????r,????r") - (match_operand:TI 1 "reg_or_mem_operand" "r,r,r,Q,m")) - (clobber (match_scratch:SI 2 "X,X,X,X,X"))] + (match_operand:TI 1 "reg_or_mem_operand" "r,r,r,Q,m"))] "TARGET_STRING && ! TARGET_POWER && ! TARGET_POWERPC64 && (gpc_reg_operand (operands[0], TImode) || gpc_reg_operand (operands[1], TImode))" "* |