diff --git a/818172_overflow_when_strength_reducing_interger_multiply.patch b/818172_overflow_when_strength_reducing_interger_multiply.patch new file mode 100755 index 0000000..0474f1a --- /dev/null +++ b/818172_overflow_when_strength_reducing_interger_multiply.patch @@ -0,0 +1,22 @@ +diff --git a/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp b/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp +index 6d0b4acbd..ecd4bd4a6 100644 +--- a/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp ++++ b/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp +@@ -607,12 +607,12 @@ void LIRGenerator::do_ArithmeticOp_Int(ArithmeticOp* x) { + } else { + assert (x->op() == Bytecodes::_imul, "expect imul"); + if (right.is_constant()) { +- int c = right.get_jint_constant(); +- if (! is_power_of_2(c) && ! is_power_of_2(c + 1) && ! is_power_of_2(c - 1)) { +- // Cannot use constant op. +- right.load_item(); ++ jint c = right.get_jint_constant(); ++ if (c > 0 && c < max_jint && (is_power_of_2(c) || is_power_of_2(c - 1) || is_power_of_2(c + 1))) { ++ right.dont_load_item(); + } else { +- right.dont_load_item(); ++ // Cannot use constant op. ++ right_arg->load_item(); + } + } else { + right.load_item(); diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index 63bd22e..c1e0565 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -921,7 +921,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{r Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever}.%{buildver} -Release: 11 +Release: 12 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -1091,6 +1091,7 @@ Patch161: 8259886-Improve-SSL-session-cache-performance-and-sc.patch Patch162: 8214535-support-Jmap-parallel.patch Patch163: fix_VerifyCerts.java_testcase_bug.patch Patch164: src-openeuler-openjdk-1.8.0-resolve-code-inconsistencies.patch +Patch165: 818172_overflow_when_strength_reducing_interger_multiply.patch ############################################# # @@ -1530,6 +1531,7 @@ pushd %{top_level_dir_name} %patch162 -p1 %patch163 -p1 %patch164 -p1 +%patch165 -p1 popd @@ -2146,6 +2148,9 @@ require "copy_jdk_configs.lua" %endif %changelog +* Thu Apr 15 2021 kuenking - 1:1.8.0.282-b08.12 +- add 818172_overflow_when_strength_reducing_interger_multiply.patch + * Tue Apr 13 2021 kuenking - 1:1.8.0.282-b08.11 - add src-openeuler-openjdk-1.8.0-resolve-code-inconsistencies.patch