aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i960/i960.md
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-07-26 22:53:14 -0700
committerRichard Henderson <rth@gcc.gnu.org>1999-07-26 22:53:14 -0700
commitc2749e2df1fc0b9975377b80d1d817d1475f0d15 (patch)
treee0af55339205104c41e580c52eb1f5e8a823fc11 /gcc/config/i960/i960.md
parentdaf68dd71ff9dc5c3f97743d702204be6fe253ae (diff)
downloadgcc-c2749e2df1fc0b9975377b80d1d817d1475f0d15.zip
gcc-c2749e2df1fc0b9975377b80d1d817d1475f0d15.tar.gz
gcc-c2749e2df1fc0b9975377b80d1d817d1475f0d15.tar.bz2
i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set for the register spill block.
* i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set for the register spill block. (i960_build_va_list): New. (i960_va_start): New. (i960_va_arg): New. * i960.h (BUILD_VA_LIST_TYPE): New. (EXPAND_BUILTIN_VA_START): New. (EXPAND_BUILTIN_VA_ARG): New. * i960.md (store_multiple): Use change_address on individul mems. From-SVN: r28284
Diffstat (limited to 'gcc/config/i960/i960.md')
-rw-r--r--gcc/config/i960/i960.md16
1 files changed, 6 insertions, 10 deletions
diff --git a/gcc/config/i960/i960.md b/gcc/config/i960/i960.md
index 0574c57..945b514 100644
--- a/gcc/config/i960/i960.md
+++ b/gcc/config/i960/i960.md
@@ -972,7 +972,6 @@
int regno;
int count;
rtx from;
- int i;
if (GET_CODE (operands[0]) != MEM
|| GET_CODE (operands[1]) != REG
@@ -987,27 +986,24 @@
from = memory_address (SImode, XEXP (operands[0], 0));
while (count >= 4 && ((regno & 3) == 0))
{
- emit_insn (gen_rtx (SET, VOIDmode,
- gen_rtx (MEM, TImode, from),
- gen_rtx (REG, TImode, regno)));
+ emit_move_insn (change_address (operands[0], TImode, from),
+ gen_rtx_REG (TImode, regno));
count -= 4;
regno += 4;
from = memory_address (TImode, plus_constant (from, 16));
}
while (count >= 2 && ((regno & 1) == 0))
{
- emit_insn (gen_rtx (SET, VOIDmode,
- gen_rtx (MEM, DImode, from),
- gen_rtx (REG, DImode, regno)));
+ emit_move_insn (change_address (operands[0], DImode, from),
+ gen_rtx_REG (DImode, regno));
count -= 2;
regno += 2;
from = memory_address (DImode, plus_constant (from, 8));
}
while (count > 0)
{
- emit_insn (gen_rtx (SET, VOIDmode,
- gen_rtx (MEM, SImode, from),
- gen_rtx (REG, SImode, regno)));
+ emit_move_insn (change_address (operands[0], SImode, from),
+ gen_rtx_REG (SImode, regno));
count -= 1;
regno += 1;
from = memory_address (SImode, plus_constant (from, 4));