regression for 3.1: bad sign extension?

Bob Wilson bwilson@tensilica.com
Thu Mar 14 09:24:00 GMT 2002


OK, that makes sense....  It implies that (1) the real bug in this case 
occurs when the subsequent zero-extend is incorrectly removed during the 
combine phase, and that (2) I'm going to have to do some work to get GCC 
to avoid explicit zero-extend operations, which are relatively expensive 
on some Xtensa processors.

Thanks for pointing me in the right direction here, Geoff.

Geoff Keating wrote:
> Bob Wilson <bwilson@tensilica.com> writes:
> 
> 
>>The problem occurs when there is an unsigned short (16-bits, HI mode)
>>that gets (incorrectly?) sign-extended by this code.
> 
> 
> There's no such thing as an 'unsigned short' in RTL.  All HImode
> values are the same, and there is only one way to write a HImode constant
> of 0xffff: (const_int -1).



More information about the Gcc mailing list