|
|
8f84c8 |
# HG changeset patch
|
|
|
8f84c8 |
# User aph
|
|
|
8f84c8 |
# Date 1461121375 -3600
|
|
|
8f84c8 |
# Wed Apr 20 04:02:55 2016 +0100
|
|
|
8f84c8 |
# Node ID 5605c859f0ec47d6f507cc83e783554a4210ccf6
|
|
|
8f84c8 |
# Parent 7458e5178c8646a9b4f76ac3d13b222abed3f16f
|
|
|
8f84c8 |
8154210: Zero: Better byte behaviour
|
|
|
8f84c8 |
Summary: Complete support for 8132051 on Zero and fix failure on 64-bit big-endian systems
|
|
|
8f84c8 |
Reviewed-by: andrew, chrisphi
|
|
|
8f84c8 |
|
|
|
8f84c8 |
diff -r 7458e5178c86 -r 5605c859f0ec src/cpu/zero/vm/cppInterpreter_zero.cpp
|
|
|
8f84c8 |
--- openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue May 17 03:03:36 2016 +0100
|
|
|
8f84c8 |
+++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Wed Apr 20 04:02:55 2016 +0100
|
|
|
8f84c8 |
@@ -220,9 +220,16 @@
|
|
|
8f84c8 |
// Push our result
|
|
|
8f84c8 |
for (int i = 0; i < result_slots; i++) {
|
|
|
8f84c8 |
// Adjust result to smaller
|
|
|
8f84c8 |
- intptr_t res = result[-i];
|
|
|
8f84c8 |
+ union {
|
|
|
8f84c8 |
+ intptr_t res;
|
|
|
8f84c8 |
+ jint res_jint;
|
|
|
8f84c8 |
+ };
|
|
|
8f84c8 |
+ res = result[-i];
|
|
|
8f84c8 |
if (result_slots == 1) {
|
|
|
8f84c8 |
- res = narrow(method->result_type(), res);
|
|
|
8f84c8 |
+ BasicType t = method->result_type();
|
|
|
8f84c8 |
+ if (is_subword_type(t)) {
|
|
|
8f84c8 |
+ res_jint = (jint)narrow(t, res_jint);
|
|
|
8f84c8 |
+ }
|
|
|
8f84c8 |
}
|
|
|
8f84c8 |
stack->push(res);
|
|
|
8f84c8 |
}
|
|
|
8f84c8 |
diff -r 7458e5178c86 -r 5605c859f0ec src/share/vm/interpreter/bytecodeInterpreter.cpp
|
|
|
8f84c8 |
--- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue May 17 03:03:36 2016 +0100
|
|
|
8f84c8 |
+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Wed Apr 20 04:02:55 2016 +0100
|
|
|
8f84c8 |
@@ -593,8 +593,9 @@
|
|
|
8f84c8 |
/* 0xDC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
|
|
|
8f84c8 |
|
|
|
8f84c8 |
/* 0xE0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
|
|
|
8f84c8 |
-/* 0xE4 */ &&opc_default, &&opc_fast_aldc, &&opc_fast_aldc_w, &&opc_return_register_finalizer,
|
|
|
8f84c8 |
-/* 0xE8 */ &&opc_invokehandle,&&opc_default, &&opc_default, &&opc_default,
|
|
|
8f84c8 |
+/* 0xE4 */ &&opc_default, &&opc_default, &&opc_fast_aldc, &&opc_fast_aldc_w,
|
|
|
8f84c8 |
+/* 0xE8 */ &&opc_return_register_finalizer,
|
|
|
8f84c8 |
+ &&opc_invokehandle, &&opc_default, &&opc_default,
|
|
|
8f84c8 |
/* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
|
|
|
8f84c8 |
|
|
|
8f84c8 |
/* 0xF0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
|