review (S) for 6968348: Byteswapped memory access can point to wrong location after JIT

Tom Rodriguez tom.rodriguez at oracle.com
Thu Sep 30 15:10:03 PDT 2010


On Sep 30, 2010, at 2:53 PM, Ulf Zibis wrote:

> Ah, ok, I'm running on Intel 32-bit architecture.
> Is it ensured, that this test is always running on 64-bit architectures, but never on 32-bits?

No.  Why should it be?  It's valid code whereever it runs and we run our tests on all architectures.

tom

> 
> Thanks,
> 
> -Ulf
> 
> 
> Am 30.09.2010 19:35, schrieb Tom Rodriguez:
>> It fails for me.
>> 
>>  % /java/re/jdk/1.7.0/promoted/all/b104/binaries/solaris-amd64/fastdebug/bin/java -d64 Test6968348#
>> # A fatal error has been detected by the Java Runtime Environment:
>> #
>> #  SIGSEGV (0xb) at pc=0xfffffd7ff94f5983, pid=14046, tid=2
>> #
>> # JRE version: 7.0
>> # Java VM: Java HotSpot(TM) 64-Bit Server VM (19.0-b05-fastdebug mixed mode solaris-amd64 compressed oops)
>> # Problematic frame:
>> # J  Test6968348.test()V
>> #
>> # An error report file with more information is saved as:
>> # /export/ws/baseline/test/compiler/6968348/hs_err_pid14046.log
>> #
>> # If you would like to submit a bug report, please visit:
>> #   http://java.sun.com/webapps/bugreport/crash.jsp
>> #
>> 
>> Maybe you're running in an environment were it happens to hit in mapped memory.
>> 
>> tom
>> 
>> On Sep 30, 2010, at 3:46 AM, Ulf Zibis wrote:
>> 
>>> Hi,
>>> 
>>> I have run Test6968348.java on b104.
>>> It doesn't fail.
>>> Why?
>>> 
>>> -Ulf
>>> 
>>> 
>>> Am 30.09.2010 03:25, schrieb Tom Rodriguez:
>>>> http://cr.openjdk.java.net/~never/6968348
>>>> 
>>>> 6968348: Byteswapped memory access can point to wrong location after JIT
>>>> Reviewed-by:
>>>> 
>>>> x86_64.ad has match rules for (Store (ReverseBytes val)) but the
>>>> definition is buggy since the val can be used in address of the store.
>>>> It also doesn't record that it changes the input value.  The fix is to
>>>> simply remove these rules since they are no better than what we'd get
>>>> otherwise.  x86_32.ad doesn't have these rules.  sparc.ad does but it
>>>> can generate better code for these forms because it can use the byte
>>>> swapped ASI and doesn't have to modify the register before storing it.
>>>> Tested with new test case.
>>>> 
>> 



More information about the hotspot-compiler-dev mailing list