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:25:06 PDT 2010


On Sep 30, 2010, at 7:08 AM, Ulf Zibis wrote:

> - Why do you increment by 8 in the Test?

Because i'm storing longs.  unsafe operates on direct addresses.

> - ARRAY_LONG_BASE_OFFSET in capital letters is misleading to the reader, as this variable is not a final constant.

Ok.

tom

> 
> -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