Re: [RFA] mips_push_arguments(): Make O64 ABI test explicit

Andrew Cagney
2002-08-01T21:55:55Z

From mips-tdep.c:

/* A non-floating-point argument being passed in a
general register. If a struct or union, and if
the remaining length is smaller than the register
size, we have to adjust the register value on
big endian targets.

It does not seem to be necessary to do the
same for integral types.

Also don't do this adjustment on EABI and O64
binaries.

cagney/2001-07-23: gdb/179: Also, GCC, when
outputting LE O32 with sizeof (struct) <
MIPS_SAVED_REGSIZE, generates a left shift as
part of storing the argument in a register a
register (the left shift isn't generated when
sizeof (struct) >= MIPS_SAVED_REGSIZE). Since it
is quite possible that this is GCC contradicting
the LE/O32 ABI, GDB has not been adjusted to
accommodate this. Either someone needs to
demonstrate that the LE/O32 ABI specifies such a
left shift OR this new ABI gets identified as
such and GDB gets tweaked accordingly. */

Sounds like the comment should be updated to mention a few more ABIs and
confirm that it is GCC that is wrong. I'll assume this patch is withdrawn.

enjoy,
Andrew