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