diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2002-03-09 05:48:21 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2002-03-09 05:48:21 +0000 |
commit | a85cd40702d3b6d5bf305d3de0993d1e0ee42eaa (patch) | |
tree | 6a13df93febf39c53900a304f2760dee27c66ac4 | |
parent | c51fbe40b30a1633942cc46eccb1597449462dd7 (diff) | |
download | gcc-a85cd40702d3b6d5bf305d3de0993d1e0ee42eaa.zip gcc-a85cd40702d3b6d5bf305d3de0993d1e0ee42eaa.tar.gz gcc-a85cd40702d3b6d5bf305d3de0993d1e0ee42eaa.tar.bz2 |
mips.c (mips_va_arg): Apply big-endianness address offset before loading address of argument passed...
* config/mips/mips.c (mips_va_arg): Apply big-endianness address
offset before loading address of argument passed by transparent
reference.
From-SVN: r50478
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 12 |
2 files changed, 12 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c48695f..c9bf259 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-03-09 Alexandre Oliva <aoliva@redhat.com> + + * config/mips/mips.c (mips_va_arg): Apply big-endianness address + offset before loading address of argument passed by transparent + reference. + 2002-03-08 John David Anglin <dave@hiauly1.hia.nrc.ca> * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete. diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 683e33a..6cdbda5 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -4726,17 +4726,17 @@ mips_va_arg (valist, type) emit_queue(); emit_label (lab_over); + if (BYTES_BIG_ENDIAN && rsize != size) + addr_rtx = plus_constant (addr_rtx, rsize - size); + if (indirect) { - r = gen_rtx_MEM (Pmode, addr_rtx); + addr_rtx = force_reg (Pmode, addr_rtx); + r = gen_rtx_MEM (Pmode, addr_rtx); set_mem_alias_set (r, get_varargs_alias_set ()); emit_move_insn (addr_rtx, r); } - else - { - if (BYTES_BIG_ENDIAN && rsize != size) - addr_rtx = plus_constant (addr_rtx, rsize - size); - } + return addr_rtx; } } |