summaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-zero-mode-crash.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-zero-mode-crash.patch')
-rw-r--r--recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-zero-mode-crash.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-zero-mode-crash.patch b/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-zero-mode-crash.patch
new file mode 100644
index 0000000..29702fa
--- /dev/null
+++ b/recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-zero-mode-crash.patch
@@ -0,0 +1,49 @@
1# HG changeset patch
2# User aph
3# Date 1461121375 -3600
4# Wed Apr 20 04:02:55 2016 +0100
5# Node ID 6811f311f905409fe71d2b1c2fb34c3268758724
6# Parent c66e4cc0fce57664ab44c55c47fa1a2f1bf02638
78154210: Zero: Better byte behaviour
8Summary: Complete support for 8132051 on Zero and fix failure on 64-bit big-endian systems
9Reviewed-by: andrew, chrisphi, coleenp
10
11Upstream-Status: Backport [Fixed in u112]
12
13diff --git hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
14--- hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
15+++ hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
16@@ -220,9 +220,16 @@
17 // Push our result
18 for (int i = 0; i < result_slots; i++) {
19 // Adjust result to smaller
20- intptr_t res = result[-i];
21+ union {
22+ intptr_t res;
23+ jint res_jint;
24+ };
25+ res = result[-i];
26 if (result_slots == 1) {
27- res = narrow(method->result_type(), res);
28+ BasicType t = method->result_type();
29+ if (is_subword_type(t)) {
30+ res_jint = (jint)narrow(t, res_jint);
31+ }
32 }
33 stack->push(res);
34 }
35diff --git hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
36--- hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
37+++ hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
38@@ -593,8 +593,9 @@
39 /* 0xDC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
40
41 /* 0xE0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
42-/* 0xE4 */ &&opc_default, &&opc_fast_aldc, &&opc_fast_aldc_w, &&opc_return_register_finalizer,
43-/* 0xE8 */ &&opc_invokehandle,&&opc_default, &&opc_default, &&opc_default,
44+/* 0xE4 */ &&opc_default, &&opc_default, &&opc_fast_aldc, &&opc_fast_aldc_w,
45+/* 0xE8 */ &&opc_return_register_finalizer,
46+ &&opc_invokehandle, &&opc_default, &&opc_default,
47 /* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
48
49 /* 0xF0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,