Blame SOURCES/8154210.patch

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,