------- Comment #6 from eblot dot ml at gmail dot com  2010-06-17 09:20 -------
(In reply to comment #5)
> Unfortunately I don't see this happening on the x86_64-linux ->
> arm-linux-gnueabi cross compiler I built for myself.  The generated
> assembly has all four elements in the initialization of CSWTCH.2 and
> the intermediate tree dumps from the cross compiler are not really
> different from the ones from a native x86_64 compiler.

I think this might be due to the ABI differences between the official ARM ABI
(AAPCS) and the Linux variant, which is slightly different.

I'd bet the way the enumerations are handled (variable size with AAPCS, fixed,
integer-native size with ARM Linux) is the 'culprit' here.

See http://www.codesourcery.com/sgpp/lite/arm/arm_gnu_linux_abi.pdf

The enumeration used in this bug report is coded as a byte with AAPCS, whereas
it should be coded as a 32-bit value with Linux ARM ABI. This might explain why
you cannot reproduce the issue with a Linux-target cross-compiler.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44328

Reply via email to