From 675fb869a9ef875f8cff02be7f941d51b98fe44b Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Tue, 24 Jul 2001 16:28:36 +0000 Subject: [PATCH] Doco LE O32 sizeof(struct) < 4 problem. --- gdb/ChangeLog | 5 +++++ gdb/mips-tdep.c | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 15eec294f15..2074eec6cc2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2001-07-23 Andrew Cagney + + * mips-tdep.c (mips_push_arguments): Add comment explaining + problem with LE o32 GCC. + 2001-07-23 Elena Zannoni * config/powerpc/aix.mh (MH_LDFLAGS): Don't set these, the Gnu linker diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index d84223b85d1..a6e06bbf394 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -2426,7 +2426,20 @@ mips_push_arguments (int nargs, same for integral types. Also don't do this adjustment on EABI and O64 - binaries. */ + 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. */ if (!MIPS_EABI && MIPS_SAVED_REGSIZE < 8 -- 2.30.2