RFR: 8345285: [s390x] test failures: foreign/normalize/TestNormalize.java with C2

Amit Kumar amitkumar at openjdk.org
Tue Jan 21 03:52:37 UTC 2025


On Mon, 20 Jan 2025 13:45:10 GMT, Martin Doerr <mdoerr at openjdk.org> wrote:

> I was wondering why the entry frame uses the "extended sp" while the upcall stub should use the "unextended sp".



diff --git a/src/hotspot/cpu/s390/abstractInterpreter_s390.cpp b/src/hotspot/cpu/s390/abstractInterpreter_s390.cpp
index 866ebedfe3e..fb410f7186c 100644
--- a/src/hotspot/cpu/s390/abstractInterpreter_s390.cpp
+++ b/src/hotspot/cpu/s390/abstractInterpreter_s390.cpp
@@ -192,7 +192,8 @@ void AbstractInterpreter::layout_activation(Method* method,
            "must initialize sender_sp of bottom skeleton frame when pushing it");
   } else if (caller->is_upcall_stub_frame()) {
     // deoptimization case, sender_sp as unextended_sp, see frame::sender_for_interpreter_frame()
-    sender_sp = caller->unextended_sp();
+    if (!is_bottom_frame)
+      sender_sp = caller->unextended_sp();
   } else {
     assert(caller->is_entry_frame(), "is there a new frame type??");
     sender_sp = caller->sp(); // Call_stub only uses it's fp.
@@ -204,6 +205,7 @@ void AbstractInterpreter::layout_activation(Method* method,
   interpreter_frame->interpreter_frame_set_monitor_end((BasicObjectLock *)monitor);
   *interpreter_frame->interpreter_frame_cache_addr() = method->constants()->cache();
   interpreter_frame->interpreter_frame_set_tos_address(tos);
-  interpreter_frame->interpreter_frame_set_sender_sp(sender_sp);
+  if (!is_bottom_frame)
+    interpreter_frame->interpreter_frame_set_sender_sp(sender_sp);
   interpreter_frame->interpreter_frame_set_top_frame_sp(top_frame_sp);
 }

I did change similar to ppc, this also fixes the test case.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23197#issuecomment-2603601666


More information about the hotspot-dev mailing list