SPARC: unsigned vs. signed int loads

Tom Rodriguez Thomas.Rodriguez at Sun.COM
Tue Feb 17 20:11:34 PST 2009


On Feb 11, 2009, at 8:41 AM, Paul Hohensee wrote:

> Signed loads require a shifter or mux in the load path, so they can  
> cost an extra cycle.
>
> I think we also use ldub for boolean loads.

We don't but we should.  A LoadB variant with a lower cost and this  
predicate:

   predicate(n->bottom_type() == TypeInt::BOOL);

would work great.

tom


>
>
> paul
>
> Christian Thalinger wrote:
>> Hi all!
>>
>> Still working on 6797305, I recently was looking (again) closer at  
>> the
>> load instructions in sparc.ad and I noticed that byte and short  
>> loads do
>> a sign extend (ldsb and ldsh) while int loads do not (lduw).
>>
>> In CACAO we did fully 64-bit signed extended loads on Alpha and  
>> SPARC64
>> so we could omit I2L conversions.
>>
>> Is there a reason why HotSpot does zero-extended int loads?
>>
>> -- Christian
>>
>>




More information about the hotspot-compiler-dev mailing list