review (S) for 6968348: Byteswapped memory access can point to wrong location after JIT
tom.rodriguez at oracle.com
Thu Sep 30 10:35:37 PDT 2010
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:
# If you would like to submit a bug report, please visit:
Maybe you're running in an environment were it happens to hit in mapped memory.
On Sep 30, 2010, at 3:46 AM, Ulf Zibis wrote:
> I have run Test6968348.java on b104.
> It doesn't fail.
> Am 30.09.2010 03:25, schrieb Tom Rodriguez:
>> 6968348: Byteswapped memory access can point to wrong location after JIT
>> 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