review (S) for 6968348: Byteswapped memory access can point to wrong location after JIT
Tom Rodriguez
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:
# /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