aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@gcc.gnu.org>2004-01-26 17:38:51 +0000
committerFariborz Jahanian <fjahanian@gcc.gnu.org>2004-01-26 17:38:51 +0000
commit11b25716763ef8ca1c8b8f05f11e9e7d0c093ead (patch)
tree932fc381f381f9e22a0143b15151d5258b7dac5f
parent4c45af42f5eada2603b45faa0903307be09122d4 (diff)
downloadgcc-11b25716763ef8ca1c8b8f05f11e9e7d0c093ead.zip
gcc-11b25716763ef8ca1c8b8f05f11e9e7d0c093ead.tar.gz
gcc-11b25716763ef8ca1c8b8f05f11e9e7d0c093ead.tar.bz2
Use adjust_address_nv directly with appropriate mode.
OKed by David Edelsohn. From-SVN: r76645
-rw-r--r--gcc/config/rs6000/rs6000.md15
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 8321062..4353e8a 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -9898,13 +9898,13 @@
"
{
rtx temp = gen_reg_rtx (Pmode);
+ int units_per_word = (TARGET_32BIT) ? 4 : 8;
+ enum machine_mode wmode = (TARGET_32BIT) ? SImode : word_mode;
/* Copy the backchain to the first word, sp to the second. */
emit_move_insn (temp, gen_rtx_MEM (Pmode, operands[1]));
- emit_move_insn (operand_subword (operands[0], 0, 0,
- (TARGET_32BIT ? DImode : TImode)),
- temp);
- emit_move_insn (operand_subword (operands[0], 1, 0, (TARGET_32BIT ? DImode : TImode)),
+ emit_move_insn (adjust_address_nv (operands[0], wmode, 0), temp);
+ emit_move_insn (adjust_address_nv (operands[0], wmode, units_per_word),
operands[1]);
DONE;
}")
@@ -9916,13 +9916,14 @@
"
{
rtx temp = gen_reg_rtx (Pmode);
+ int units_per_word = (TARGET_32BIT) ? 4 : 8;
+ enum machine_mode wmode = (TARGET_32BIT) ? SImode : word_mode;
/* Restore the backchain from the first word, sp from the second. */
emit_move_insn (temp,
- operand_subword (operands[1], 0, 0, (TARGET_32BIT ? DImode : TImode)));
+ adjust_address_nv (operands[1], wmode, 0));
emit_move_insn (operands[0],
- operand_subword (operands[1], 1, 0,
- (TARGET_32BIT ? DImode : TImode)));
+ adjust_address_nv (operands[1], wmode, units_per_word));
emit_move_insn (gen_rtx_MEM (Pmode, operands[0]), temp);
DONE;
}")