Request for review (XS): 7027232: JSR 292: wrong numeric value returned by MH on solaris-sparc
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Mar 15 11:05:46 PDT 2011
Vladimir Kozlov wrote:
> Christian,
>
> We don't support little-endian SPARC, why add a code which will never be
> executed?
>
> On side note (RFE): we should officially drop v8 support (C2 does not
> support already, only C1). There are already several places where we use
> stx/ldx without check that it is v9 (yes, we still have an assert which
> is fine). Also std/ldd is emulated on modern SPARC and so is very slow.
Actually we already dropped v8 C1 compilation:
http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/2bf529ef0adb
The only problem is alignment of long values in 32 bit VM so we should be
careful how we load and store them (note, java long fields are always aligned).
Vladimir
>
> Thanks,
> Vladimir
>
> Christian Thalinger wrote:
>> http://cr.openjdk.java.net/~twisti/7027232/
>>
>> 7027232: JSR 292: wrong numeric value returned by MH on solaris-sparc
>> Reviewed-by:
>>
>> After 7018378 one of the tests of java/dyn/MethodHandlesTest fails on
>> 32-bit SPARC. st_long uses STD on 32-bit SPARC and the LSW and MSW
>> bits are not moved to the proper registers resulting in a wrong
>> result.
>>
>> The fix is to use the correct registers for 32-bit big-endian and
>> little-endian (just in case) SPARC.
>>
>> src/cpu/sparc/vm/methodHandles_sparc.cpp
>>
More information about the hotspot-compiler-dev
mailing list