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