diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5f9a48faa6c..5eb9fc2f937 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-01-07 Richard Sandiford + + * config/mips/mips.c (mips_va_arg): In the EABI code, apply the + big-endian correction to indirect arguments too. + 2003-01-06 Aldy Hernandez Segher Boessenkool diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 6fb7eb4057c..d5339c7b518 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -4989,6 +4989,8 @@ 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) { addr_rtx = force_reg (Pmode, addr_rtx); @@ -4996,11 +4998,6 @@ mips_va_arg (valist, type) 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; } else