RFR(S): 8205609: [PPC64] Fix PPC64 part of 8010319 and TLH without UseSIGTRAP on AIX
David Holmes
david.holmes at oracle.com
Wed Jun 27 03:41:53 UTC 2018
On 26/06/2018 9:02 PM, Doerr, Martin wrote:
> 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).
I hadn't noticed any problems with the other invokeinterface changes I
did for nestmates
> You're right, Rmethod should be used. I had copied the wrong name.
Okay - looks better now.
Thanks,
David
> 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:
> http://cr.openjdk.java.net/~mdoerr/8205609_ppc64_TI_and_TLH_fixes/webrev.01/
>
> Thank you and best regards,
> Martin
>
>
> -----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! ???
>
> Cheers,
> David
>
>> * 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