Doco LE O32 sizeof(struct) < 4 problem.
authorAndrew Cagney <cagney@redhat.com>
Tue, 24 Jul 2001 16:28:36 +0000 (16:28 +0000)
committerAndrew Cagney <cagney@redhat.com>
Tue, 24 Jul 2001 16:28:36 +0000 (16:28 +0000)
gdb/ChangeLog
gdb/mips-tdep.c

index 15eec294f152db9e5a0b793de4858af8de469aa8..2074eec6cc2d35f8b7ebcc9c4ca0aac6873cf6a3 100644 (file)
@@ -1,3 +1,8 @@
+2001-07-23  Andrew Cagney  <ac131313@redhat.com>
+
+       * mips-tdep.c (mips_push_arguments): Add comment explaining
+       problem with LE o32 GCC.
+
 2001-07-23  Elena Zannoni  <ezannoni@redhat.com>
 
        * config/powerpc/aix.mh (MH_LDFLAGS): Don't set these, the Gnu linker
index d84223b85d10465ec24158ee76ffebbb0c873562..a6e06bbf394b5657bd30a66dde035c5153f52816 100644 (file)
@@ -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