[9] RFR(S): 8036851: volatile double accesses are not explicitly atomic in C2

Aleksey Shipilev aleksey.shipilev at oracle.com
Fri May 2 15:29:27 UTC 2014


On 05/02/2014 06:21 PM, Andrew Haley wrote:
> On 05/02/2014 02:53 PM, Aleksey Shipilev wrote:
>> Glad to see this addressed. The patch looks fine to me (not a Reviewer).
>>
>> I remember seeing places in C1 where we special-case T_LONG, so we
>> probably need an additional work to fix it there as well. See e.g.
>> LIRGenerator::volatile_field_store.
> 
> How on Earth does this work in the back end on a 32-bit box without 64-bit
> operations?  Do you have to use a lock, and how does clone() work in that
> case?

I think most supported platforms support 64-bit instructions in one
sense or the other. For 32-bit x86, there's still FPU -- and this is
what volatile_field_store on x86 does. The relevant backend
implementation should care how to implement volatile_field_store on
specific platform (I was deluded in thinking the special T_LONG case was
in platform-independent code, but it really is for x86 only).

-Aleksey.


More information about the hotspot-compiler-dev mailing list