[11u] Backport 8229352: Use of an unitialized register in 32-bit ARM template interpreter
christoph.goettschkes at microdoc.com
christoph.goettschkes at microdoc.com
Tue Aug 20 05:53:32 UTC 2019
Hi Boris,
could you help me with the backport of the changeset to the jdk11u
repository too?
I already created a patch which applies cleanly to jdk11u-dev (see below).
The only differences in the patch are the line numbers (see my first
mail). Maybe it is easier for you to export the original changeset and
apply it to jdk11u-dev? I am currently running the hotspot tier1 JTreg
tests (looks good so far) and will report the results in the RFR (it takes
some time on the small device).
Thanks,
Christoph
--- a/src/hotspot/cpu/arm/templateTable_arm.cpp
+++ b/src/hotspot/cpu/arm/templateTable_arm.cpp
@@ -527,19 +527,20 @@
__ add(Rbase, Rcpool, AsmOperand(Rindex, lsl, LogBytesPerWord));
- Label Condy, exit;
-#ifdef __ABI_HARD__
- Label Long;
// get type from tags
__ add(Rtemp, Rtags, tags_offset);
__ ldrb(Rtemp, Address(Rtemp, Rindex));
+
+ Label Condy, exit;
+#ifdef __ABI_HARD__
+ Label NotDouble;
__ cmp(Rtemp, JVM_CONSTANT_Double);
- __ b(Long, ne);
+ __ b(NotDouble, ne);
__ ldr_double(D0_tos, Address(Rbase, base_offset));
__ push(dtos);
__ b(exit);
- __ bind(Long);
+ __ bind(NotDouble);
#endif
__ cmp(Rtemp, JVM_CONSTANT_Long);
"jdk-updates-dev" <jdk-updates-dev-bounces at openjdk.java.net> wrote on
2019-08-19 18:12:06:
> From: christoph.goettschkes at microdoc.com
> To: jdk-updates-dev at openjdk.java.net
> Date: 2019-08-19 18:15
> Subject: [11u] Backport 8229352: Use of an unitialized register in
32-bit ARM
> template interpreter
> Sent by: "jdk-updates-dev" <jdk-updates-dev-bounces at openjdk.java.net>
>
> 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