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