Request for review: 7010665 - Misplaced membar in C1 implementation of Unsafe.get/putXXX
David.Holmes at oracle.com
Fri Jan 7 15:26:18 PST 2011
Thanks Tom, Vladimir and Igor.
Tom Rodriguez said the following on 01/08/11 05:36:
> Looks good.
> On Jan 6, 2011, at 11:09 PM, David Holmes wrote:
>> The memory barriers were misplaced in the intrinsic versions of the Unsafe.get/put<type>Volatile methods
>> old: -> membar_acquire(), load; membar()
>> new: -> load; membar_acquire()
>> old: -> membar_release(); store
>> new: -> membar_release(); store; membar()
>> These now match the C1 handling of Java volatile variables (see LIRGenerator::do_StoreField and LIRGenerator::do_LoadField in the same file).
>> The non-intrinsic versions are being fixed as part of 7009756.
More information about the hotspot-dev