forked from pool/java-1_8_0-openjdk
This commit is contained in:
parent
e8366ec943
commit
186386c2a4
@ -1,43 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User enevill
|
|
||||||
# Date 1454603068 0
|
|
||||||
# Thu Feb 04 16:24:28 2016 +0000
|
|
||||||
# Node ID ded2073b67bdd9c9f2ae924397341b762329aaef
|
|
||||||
# Parent f918c20107d9acb189498095308c2f49c8dbc84e
|
|
||||||
8148783: aarch64: SEGV running SpecJBB2013
|
|
||||||
Summary: Fix calculation of offset for adrp
|
|
||||||
Reviewed-by: aph
|
|
||||||
|
|
||||||
diff --git a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
|
|
||||||
--- a/openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
|
|
||||||
+++ b/openjdk/hotspot/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
|
|
||||||
@@ -127,7 +127,10 @@
|
|
||||||
Instruction_aarch64::extract(insn2, 4, 0)) {
|
|
||||||
// movk #imm16<<32
|
|
||||||
Instruction_aarch64::patch(branch + 4, 20, 5, (uint64_t)target >> 32);
|
|
||||||
- offset &= (1<<20)-1;
|
|
||||||
+ long dest = ((long)target & 0xffffffffL) | ((long)branch & 0xffff00000000L);
|
|
||||||
+ long pc_page = (long)branch >> 12;
|
|
||||||
+ long adr_page = (long)dest >> 12;
|
|
||||||
+ offset = adr_page - pc_page;
|
|
||||||
instructions = 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3998,11 +4001,12 @@
|
|
||||||
if (offset_high >= -(1<<20) && offset_low < (1<<20)) {
|
|
||||||
_adrp(reg1, dest.target());
|
|
||||||
} else {
|
|
||||||
- unsigned long pc_page = (unsigned long)pc() >> 12;
|
|
||||||
- long offset = dest_page - pc_page;
|
|
||||||
- offset = (offset & ((1<<20)-1)) << 12;
|
|
||||||
- _adrp(reg1, pc()+offset);
|
|
||||||
- movk(reg1, (unsigned long)dest.target() >> 32, 32);
|
|
||||||
+ unsigned long source = (unsigned long)pc();
|
|
||||||
+ unsigned long target = (unsigned long)dest.target();
|
|
||||||
+ unsigned long adrp_target = (target & 0xffffffffUL) | (source & 0xffff00000000UL);
|
|
||||||
+
|
|
||||||
+ _adrp(reg1, (address)adrp_target);
|
|
||||||
+ movk(reg1, target >> 32, 32);
|
|
||||||
}
|
|
||||||
byte_offset = (unsigned long)dest.target() & 0xfff;
|
|
||||||
}
|
|
@ -439,6 +439,7 @@ Tue Jul 26 05:57:42 UTC 2016 - fstrba@suse.com
|
|||||||
- Removed patches:
|
- Removed patches:
|
||||||
* compare-pointer-with-literal.patch
|
* compare-pointer-with-literal.patch
|
||||||
* implicit-pointer-decl.patch
|
* implicit-pointer-decl.patch
|
||||||
|
* hotspot-aarch64-fix-48bit-va.patch
|
||||||
- Fixed differently upsteam
|
- Fixed differently upsteam
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
@ -176,8 +176,6 @@ Patch3: java-atk-wrapper-security.patch
|
|||||||
Patch12: adlc-parser.patch
|
Patch12: adlc-parser.patch
|
||||||
# Avoid triggering inactivity timeout while generating javadoc in zero VM
|
# Avoid triggering inactivity timeout while generating javadoc in zero VM
|
||||||
Patch14: zero-javadoc-verbose.patch
|
Patch14: zero-javadoc-verbose.patch
|
||||||
# Fix 48 bit va space on aarch64
|
|
||||||
Patch15: hotspot-aarch64-fix-48bit-va.patch
|
|
||||||
#
|
#
|
||||||
# OpenJDK specific patches
|
# OpenJDK specific patches
|
||||||
#
|
#
|
||||||
@ -494,8 +492,6 @@ patch -p0 -i %{PATCH12}
|
|||||||
patch -p0 -i %{PATCH14}
|
patch -p0 -i %{PATCH14}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
patch -p1 -i %{PATCH15}
|
|
||||||
|
|
||||||
%ifarch ppc ppc64 ppc64le
|
%ifarch ppc ppc64 ppc64le
|
||||||
# PPC fixes
|
# PPC fixes
|
||||||
patch -p0 -i %{PATCH103}
|
patch -p0 -i %{PATCH103}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user