This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]