RFR: 8196136: AArch64: Correct register use in patch for JDK-8195685

Andrew Dinn adinn at redhat.com
Thu Jan 25 11:24:44 UTC 2018

JDK-8195685 introduced aarch64 patches to complete the interface lookup
changes made in JDK-8174962. This included a patch to the generated
itable stubs which employed r0 as a scratch register. Unfortunately,
this causes problems in the very rare case where the stub fields an
interface call with 7 arguments. r0 is used to hold the 7th argument in
the stub call so the stub code corrupts the supplied argument. This
manifested in the maven setup for jcstress tests.

The following webrev against jdk10 corrects the patch to use a safe
register (r19)

jira:   https://bugs.openjdk.java.net/browse/JDK-8196136
webrev: http://cr.openjdk.java.net/~adinn/8196136/webrev/

Reviews would be welcome.

The patch needs to be applied to jdk10 and also to the jdkdev trees. It
should also be backported to jdk9.


This patch stops the crash that was seen running jcstress.

The patched JVM also continues successfully to run a variety of standard
Java apps.


Andrew Dinn
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander

More information about the jdk-dev mailing list