Re: [rfa] mips argument passing fixes for o32

Andrew Cagney
2001-07-16T07:46:00Z

> 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