RFR(m): 8220351: Cross-modifying code
Doerr, Martin
martin.doerr at sap.com
Wed Mar 13 10:19:36 UTC 2019
Hi Robbin,
mustIterateImmediateOopsInCode means that nmethods may contain oops in the instruction stream which are not in the nmethod's separately recorded oops section. This only occurs on x86.
Other platforms use the oop recorder for such oops so they can be found there, too. So they can be referenced by the nmethod twice: in the separate section and in the instruction stream. This may be the case on aarch64 (not sure).
Best regards,
Martin
-----Original Message-----
From: Robbin Ehn <robbin.ehn at oracle.com>
Sent: Mittwoch, 13. März 2019 10:45
To: Andrew Haley <aph at redhat.com>; Doerr, Martin <martin.doerr at sap.com>; hotspot-dev at openjdk.java.net
Subject: Re: RFR(m): 8220351: Cross-modifying code
On 2019-03-13 10:39, Andrew Haley wrote:
> On 3/13/19 9:30 AM, Doerr, Martin wrote:
>
>>> I'm pretty sure that AArch64 uses oops in the instruction stream.
>> Yes, as compressed oops.
>
> Even when compressed oops are off.
>
Since aarch64 have mustIterateImmediateOopsInCode false they are not walked
during GC in nmethod::oops_do(), what am I missing ?
/Robbin
More information about the hotspot-dev
mailing list