Fwd: [RFA] Fix for mcore simulator

Martin Simmons qqxnjvamvxwx@dyxyl.com
Tue Oct 10 21:35:40 GMT 2023


>>>>> On Thu, 5 Oct 2023 10:09:44 -0600, Jeff Law via Gdb said:
> 
> Of course if the code is supposed to behave the same, then that points 
> to problems elsewhere (assembler, linker, simulator).  Sure enough the 
> mcore simulator was mis-handling the sign extension instructions.  The 
> simulator implementation of sextb is via paired shift-by-24 operations. 
> Similarly the simulator implements sexth via paired shift-by-16 operations.
> 
> The temporary holding the value was declared as a "long" thus this 
> approach worked fine for hosts with a 32 bit wide long and failed 
> miserably for hosts with a 64 bit wide long.
> 
> This patch makes the shift count automatically adjust based on the size 
> of the temporary.  It includes a simple test for sextb and sexth.  I 
> have _not_ done a full audit of the mcore simulator for more 32->64 bit 
> issues.

The use of long seems bogus to me.  Why not just declare tmp as int32_t?

__Martin


More information about the Gdb mailing list