< prev index next >

src/hotspot/cpu/s390/templateInterpreterGenerator_s390.cpp

Print this page
rev 47588 : 8190285: s390: Some java boolean checks are not correct
Reviewed-by:

@@ -2375,10 +2375,16 @@
   Register RjvmtiState = Z_tmp_1;
   __ z_lg(RjvmtiState, thread_(jvmti_thread_state));
   __ store_const(Address(RjvmtiState, JvmtiThreadState::earlyret_state_offset()),
                  JvmtiThreadState::earlyret_inactive, 4, 4, Z_R0_scratch);
 
+  if (state == itos) {
+    // Narrow result if state is itos but result type is smaller.
+    // Need to narrow in the return bytecode rather than in generate_return_entry
+    // since compiled code callers expect the result to already be narrowed.
+    __ narrow(Z_tos, Z_tmp_1); /* fall through */
+  }
   __ remove_activation(state,
                        Z_tmp_1, // retaddr
                        false,   // throw_monitor_exception
                        false,   // install_monitor_exception
                        true);   // notify_jvmdi
< prev index next >