------- Comment #13 from aph at gcc dot gnu dot org 2007-08-06 12:53 ------- > The 32bit psABI specifies Integral Arguments as 'Functions pass all > integer-valued > arguments as words, expanding or padding signed or unsigned bytes and > halfwords as needed'. For return values the best I can find is 'A function > that > returns an integral or pointer value places its result in register %eax.' > Both are not exactly clear whether sign- or zero-extension is required.
On the contrary, this implies very strongly to me that all integer-valued arguments are passed as words, fully sign- or zero-extended for their type. To read this in any other way strikes me as perverse. If we are not correctly sign- or zero-extendening return values we have broken the ABI. To suggest that this sign- or zero-extension does not apply to return values is also perverse. -- aph at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aph at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32843