This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [rfa] mips argument passing fixes for o32
> That's not what it does, though. It only left-shifts the dregs if they
> constitute the entire structure; thus the check I used. Little-endian
> will left-shift only small structs, while big-endian will left-shift
> small structs or leftovers.
I which case you definitly need the o32 check. DEC's compiler passes
small structs in the LE part of the register.
> As for when it is done, GCC says:
> if (struct_p && int_size_in_bytes (type) < UNITS_PER_WORD
> && ! TARGET_64BIT && mips_abi != ABI_EABI)
>
> However, there's a comment to the effect that the !TARGET_64BIT is
> actually wrong, and being used only for efficiency. So I'm not sure
> precisely when this applies. It seems that !MIPS_EABI and
> MIPS_SAVED_REGSIZE < 8 would agree with at least the way that GCC does
> things, but GCC is not a sterling example of n32 or n64 compatibility.
still digging,
Andrew