add 8248336-AArch64-C2-offset-overflow-in-BoxLockNode-em.patch

This commit is contained in:
JoseArcadioBuendia 2020-11-06 14:57:36 +08:00
parent 5168d641fc
commit 0f610ad2ab
2 changed files with 51 additions and 1 deletions

View File

@ -0,0 +1,45 @@
From 0b09070295851b808b0266205282af763bd74baf Mon Sep 17 00:00:00 2001
Date: Sun, 27 Sep 2020 14:52:45 +0800
Subject: [PATCH] 8248336: AArch64: C2: offset overflow in BoxLockNode::emit
Summary: <C2>: offset overflow in BoxLockNode::emit
LLT: jtreg
Bug url: https://bugs.openjdk.java.net/browse/JDK-8248336
---
hotspot/src/cpu/aarch64/vm/aarch64.ad | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/hotspot/src/cpu/aarch64/vm/aarch64.ad b/hotspot/src/cpu/aarch64/vm/aarch64.ad
index f53c68737..1774c9e1d 100644
--- a/hotspot/src/cpu/aarch64/vm/aarch64.ad
+++ b/hotspot/src/cpu/aarch64/vm/aarch64.ad
@@ -1828,16 +1828,20 @@ void BoxLockNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
int offset = ra_->reg2offset(in_RegMask(0).find_first_elem());
int reg = ra_->get_encode(this);
- if (Assembler::operand_valid_for_add_sub_immediate(offset)) {
- __ add(as_Register(reg), sp, offset);
- } else {
- ShouldNotReachHere();
- }
+ // This add will handle any 24-bit signed offset. 24 bits allows an
+ // 8 megabyte stack frame.
+ __ add(as_Register(reg), sp, offset);
}
uint BoxLockNode::size(PhaseRegAlloc *ra_) const {
// BoxLockNode is not a MachNode, so we can't just call MachNode::size(ra_).
- return 4;
+ int offset = ra_->reg2offset(in_RegMask(0).find_first_elem());
+
+ if (Assembler::operand_valid_for_add_sub_immediate(offset)) {
+ return NativeInstruction::instruction_size;
+ } else {
+ return 2 * NativeInstruction::instruction_size;
+ }
}
//=============================================================================
--
2.12.3

View File

@ -915,7 +915,7 @@ Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{r
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
Release: 2
Release: 3
# 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
@ -1054,6 +1054,7 @@ Patch127: add-DumpSharedSpace-guarantee-when-create-anonymous-classes.patch
# 8u272
Patch128: 8214440-ldap-over-a-TLS-connection-negotiate-fail.patch
Patch129: 8248336-AArch64-C2-offset-overflow-in-BoxLockNode-em.patch
#############################################
#
@ -1463,6 +1464,7 @@ pushd %{top_level_dir_name}
%patch126 -p1
%patch127 -p1
%patch128 -p1
%patch129 -p1
popd
@ -2079,6 +2081,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
* Fri Nov 06 2020 wuyan <wuyan34@huawei.com> - 1:1.8.0.272-b10.2
- add 8248336-AArch64-C2-offset-overflow-in-BoxLockNode-em.patch
* Fri Nov 06 2020 xiezhaokun <xiezhaokun@huawei.com> - 1:1.8.0.272-b10.2
- add 8214440-ldap-over-a-TLS-connection-negotiate-fail.patch