RFR: JDK-8200623: Primitive heap access for interpreter BarrierSetAssembler/x86
Roman Kennke
rkennke at redhat.com
Tue May 15 09:42:35 UTC 2018
Hi Per,
yes, I will hold back non-simple access-related changes until he's back.
Unfortunately, I'll be out starting Friday for at least one week, so all
this stuff will have to wait.
Thanks, Roman
> Hi Roman,
>
> I think it would be good if Erik Österlund reviewed these Access-related
> changes. He'll be back in the office on Thursday.
>
> cheers,
> Per
>
> On 05/14/2018 12:16 PM, Roman Kennke wrote:
>> Am 07.05.2018 um 22:31 schrieb Roman Kennke:
>>> JDK-8199417 added better modularization for interpreter barriers.
>>> Shenandoah and possibly future GCs also need barriers for primitive
>>> access.
>>>
>>> Some notes on implementation:
>>> - float/double/long access produced some headaches for the following
>>> reasons:
>>>
>>> - float and double would either take XMMRegister which is not
>>> compatible with Register
>>> - or load-from/store-to the floating point stack (see
>>> MacroAssembler::load/store_float/double)
>>> - long access on x86_32 would load-into/store-from 2 registers, or
>>> else use a trick via the floating point stack to do atomic access
>>>
>>> None of this seemed easy/nice to do with the API. I helped myself by
>>> accepting noreg as dst/src argument, which means the corresponding tos
>>> (i.e. ltos, ftos, dtos) and the BSA would then access from/to
>>> xmm0/float-stack in case of float/double or the double-reg/float-stack
>>> in case of long/32bit, which is all that we ever need.
>>>
>>> I'm passing MO_RELAXED to long access calls to hint that we want atomic
>>> access or not. I hope that is ok.
>>>
>>>
>>> Tested: hotspot/jtreg:tier1
>>>
>>> http://cr.openjdk.java.net/~rkennke/JDK-8200623/webrev.00/
>>>
>>> Can I please get a review?
>>>
>>> Thanks, Roman
>>>
>>
>> Ping?
>>
>> Thanks, Roman
>>
More information about the hotspot-dev
mailing list