diff options
author | Richard Henderson <rth@cygnus.com> | 1999-07-26 22:53:14 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-07-26 22:53:14 -0700 |
commit | c2749e2df1fc0b9975377b80d1d817d1475f0d15 (patch) | |
tree | e0af55339205104c41e580c52eb1f5e8a823fc11 /gcc/config/i960/i960.md | |
parent | daf68dd71ff9dc5c3f97743d702204be6fe253ae (diff) | |
download | gcc-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.md | 16 |
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)); |