mips-tdep.c: Sign-extend pointers for n32

Daniel Jacobowitz drow@false.org
Thu Dec 20 17:07:00 GMT 2007


On Thu, Dec 20, 2007 at 04:37:31PM +0000, Maciej W. Rozycki wrote:
>  Thus I have taken your suggestion into account and modified the change 
> further as follows and regression tested it as previously, successfully.  
> Well, I guess it actually means we do not really have a terribly good 
> coverage here -- I suppose a set of test cases that would check that 
> promotion is performed correctly with manual calls would be useful.
> 
> 2007-12-19  David Ung  <davidu@mips.com>
>             Maciej W. Rozycki  <macro@mips.com>
> 
> 	* mips-tdep.c (mips_n32n64_push_dummy_call): Sign-extend
> 	integers and 32-bit pointers as required by the ABI.
> 
>  OK to apply?

OK.

I think there's still a problem here, though it is somewhat endemic to
the argument passing routines:

    TYPE_CODE_ENUM,             /* Enumeration type */
    TYPE_CODE_REF,              /* C++ Reference types */
    TYPE_CODE_CHAR,             /* *real* character type */
    TYPE_CODE_BOOL,

And possibly TYPE_CODE_MEMBERPTR too... that's a signed offset,
probably 32-bit in the n32 case.  Getting this right is a real
pain.

-- 
Daniel Jacobowitz
CodeSourcery



More information about the Gdb-patches mailing list