RFR(S): 8205609: [PPC64] Fix PPC64 part of 8010319 and TLH without UseSIGTRAP on AIX

Doerr, Martin martin.doerr at sap.com
Tue Jun 26 11:02:14 UTC 2018

Hi David,

indeed, this is very confusing. The constant pool cache contents were changed for "Better interface invocations" so the register names don't fit to the usage in invokeinterface anymore (on all platforms).

You're right, Rmethod should be used. I had copied the wrong name.

I just noticed that the required tests were not run before I had created the webrev. I'll run them with the new webrev.

New webrev using Rmethod + improved comments:

Thank you and best regards,

-----Original Message-----
From: David Holmes [mailto:david.holmes at oracle.com] 
Sent: Dienstag, 26. Juni 2018 04:11
To: Doerr, Martin <martin.doerr at sap.com>; hotspot-runtime-dev at openjdk.java.net; Lindenmaier, Goetz <goetz.lindenmaier at sap.com>
Subject: Re: RFR(S): 8205609: [PPC64] Fix PPC64 part of 8010319 and TLH without UseSIGTRAP on AIX

Hi Martin,

On 26/06/2018 12:34 AM, Doerr, Martin wrote:
> Hi,
> I'd like to fix issues with the current PPC64 implementation:
>    *   Wrong register usage in template interpreter after JDK-8010319.

Well that's disappointing - I thought it had all been pre-tested.

This code is quite confusing. We have:

3584   prepare_invoke(byte_no, Rinterface_klass, Rret_addr, Rmethod, 
Rreceiver, Rflags, Rscratch1);

but the definition of prepare_invoke is:

3332 void TemplateTable::prepare_invoke(int byte_no,
3333               Register Rmethod,  // linked method (or i-klass)
3334               Register Rret_addr,// return address
3335               Register Rindex,   // itable index, MethodType, etc.
3336               Register Rrecv,    // If caller wants to see it.
3337               Register Rflags,   // If caller wants to test it.
3338               Register Rscratch
3339                                    ) {

So this passes Rinterface_klass where Rmethod is expected; and Rmethod 
where Rindex is expected. So in that sense I think the register content 
will be correct but the name seems completely wrong! ???


>    *   SafepointMechanism implementation for AIX misses the protection of the bad page (ThreadLocalHandshakes with -XX:-UseSIGTRAP). I prefer to implement it using 2 pages like on the other platforms.
>    *   Remove unused function which is obsolete since the introduction of ThreadLocalHanshakes.
> Please review:
> http://cr.openjdk.java.net/~mdoerr/8205609_ppc64_TI_and_TLH_fixes/webrev.00/
> Thanks and best regards,
> Martin

More information about the hotspot-runtime-dev mailing list