diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-09 05:48:21 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-09 05:48:21 +0000 |
commit | bfe3e4b4faa088483a1bd5b0f07c219e6d9597e7 (patch) | |
tree | 6a13df93febf39c53900a304f2760dee27c66ac4 | |
parent | f636c6f83da33641cf76772d953adbb6aa8766bb (diff) | |
download | gcc-bfe3e4b4faa088483a1bd5b0f07c219e6d9597e7.tar.gz |
* config/mips/mips.c (mips_va_arg): Apply big-endianness address
offset before loading address of argument passed by transparent
reference.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50478 138bc75d-0d04-0410-961f-82ee72b054a4
-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 c48695f7c20..c9bf259a4bd 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 683e33a9c30..6cdbda5c8b2 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; } } |