diff --git a/hotspot-aarch64-fix-48bit-va.patch b/hotspot-aarch64-fix-48bit-va.patch deleted file mode 100644 index 9bccfb4..0000000 --- a/hotspot-aarch64-fix-48bit-va.patch +++ /dev/null @@ -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; - } diff --git a/java-1_8_0-openjdk.changes b/java-1_8_0-openjdk.changes index 269f4c0..13ecf27 100644 --- a/java-1_8_0-openjdk.changes +++ b/java-1_8_0-openjdk.changes @@ -439,6 +439,7 @@ Tue Jul 26 05:57:42 UTC 2016 - fstrba@suse.com - Removed patches: * compare-pointer-with-literal.patch * implicit-pointer-decl.patch + * hotspot-aarch64-fix-48bit-va.patch - Fixed differently upsteam ------------------------------------------------------------------- diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index 10bc23a..4d033ac 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -176,8 +176,6 @@ Patch3: java-atk-wrapper-security.patch Patch12: adlc-parser.patch # Avoid triggering inactivity timeout while generating javadoc in zero VM Patch14: zero-javadoc-verbose.patch -# Fix 48 bit va space on aarch64 -Patch15: hotspot-aarch64-fix-48bit-va.patch # # OpenJDK specific patches # @@ -494,8 +492,6 @@ patch -p0 -i %{PATCH12} patch -p0 -i %{PATCH14} %endif -patch -p1 -i %{PATCH15} - %ifarch ppc ppc64 ppc64le # PPC fixes patch -p0 -i %{PATCH103}