8229352: Use of an uninitialized register in 32-bit ARM template interpreter
Reviewed-by: dlong, shade
Contributed-by: christoph.goettschkes@microdoc.com
--- a/src/hotspot/cpu/arm/templateTable_arm.cpp Mon Aug 19 19:43:28 2019 +0900
+++ b/src/hotspot/cpu/arm/templateTable_arm.cpp Mon Aug 19 15:36:07 2019 +0300
@@ -487,19 +487,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);