[11u] Backport 8229352: Use of an unitialized register in 32-bit ARM template interpreter
christoph.goettschkes at microdoc.com
christoph.goettschkes at microdoc.com
Mon Aug 19 16:12:06 UTC 2019
Hello,
I would like to backport the changset [1], which fixes the issue [2] in
the jdk/jdk repository to the jdk11u. I originally found the issue while
working with the OpenJDK 11 and the first provided fix has been develop
using the jdk11u repository. The changeset [1] does not apply cleanly to
jdk11u, since the jdk/jdk repository no longer contains the 64-bit arm
code in the "hotspot/cpu/arm" source tree (only in hotspot/cpu/aarch64).
The backport fixes the use of an uninitialized register "Rtmep" in the
template interpreter for the ldc2_w bytecode instruction on 32-bit ARM
soft-fp platforms. The current implementation has the following two
issues:
1. Loading a constant of type long most likely calls into the interpreter
runtime and loads the constant using the slow path.
2. Loading a constant of type double could theoretically not call into the
runtime, but load the value as if it would be of type long.
I did not experience the second issue, only the first one.
Could some please make the appropriate changes to the bug report? I can
provide a patch and test the changes.
Thanks,
Christoph
[1]: http://hg.openjdk.java.net/jdk/jdk/rev/2e58f5d927a6
[2]: https://bugs.openjdk.java.net/browse/JDK-8229352
More information about the jdk-updates-dev
mailing list