< prev index next >

src/cpu/zero/vm/cppInterpreter_zero.cpp

Print this page
@  rev 7922 : 8154210: Zero: Better byte behaviour
|  Summary: Complete support for 8132051 on Zero and fix failure on 64-bit big-endian systems
|  Reviewed-by: andrew, chrisphi, coleenp

@@ -218,13 +218,20 @@
   stack->set_sp(stack->sp() + method->max_locals());
 
   // Push our result
   for (int i = 0; i < result_slots; i++) {
     // Adjust result to smaller
-    intptr_t res = result[-i];
+    union {
+      intptr_t res;
+      jint res_jint;
+    };
+    res = result[-i];
     if (result_slots == 1) {
-      res = narrow(method->result_type(), res);
+      BasicType t = method->result_type();
+      if (is_subword_type(t)) {
+        res_jint = (jint)narrow(t, res_jint);
+      }
     }
     stack->push(res);
   }
 }
 
< prev index next >