This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: regression for 3.1: bad sign extension?


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).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]