8358653: [s390] Clean up comments regarding frame manager
Reviewed-by: mdoerr
This commit is contained in:
parent
029e3bf8f5
commit
28acca609b
@ -410,7 +410,7 @@
|
|||||||
|
|
||||||
// C2I adapter frames:
|
// C2I adapter frames:
|
||||||
//
|
//
|
||||||
// STACK (interpreted called from compiled, on entry to frame manager):
|
// STACK (interpreted called from compiled, on entry to template interpreter):
|
||||||
//
|
//
|
||||||
// [TOP_C2I_FRAME]
|
// [TOP_C2I_FRAME]
|
||||||
// [JIT_FRAME]
|
// [JIT_FRAME]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||||
* Copyright (c) 2016, 2023 SAP SE. All rights reserved.
|
* Copyright (c) 2016, 2023 SAP SE. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
@ -414,7 +414,7 @@ constexpr FloatRegister Z_FARG2 = Z_F2;
|
|||||||
constexpr FloatRegister Z_FARG3 = Z_F4;
|
constexpr FloatRegister Z_FARG3 = Z_F4;
|
||||||
constexpr FloatRegister Z_FARG4 = Z_F6;
|
constexpr FloatRegister Z_FARG4 = Z_F6;
|
||||||
|
|
||||||
// Register declarations to be used in frame manager assembly code.
|
// Register declarations to be used in template interpreter assembly code.
|
||||||
// Use only non-volatile registers in order to keep values across C-calls.
|
// Use only non-volatile registers in order to keep values across C-calls.
|
||||||
|
|
||||||
// Register to cache the integer value on top of the operand stack.
|
// Register to cache the integer value on top of the operand stack.
|
||||||
@ -439,7 +439,7 @@ constexpr Register Z_bcp = Z_R13;
|
|||||||
// Bytecode which is dispatched (short lived!).
|
// Bytecode which is dispatched (short lived!).
|
||||||
constexpr Register Z_bytecode = Z_R14;
|
constexpr Register Z_bytecode = Z_R14;
|
||||||
|
|
||||||
// Temporary registers to be used within frame manager. We can use
|
// Temporary registers to be used within template interpreter. We can use
|
||||||
// the nonvolatile ones because the call stub has saved them.
|
// the nonvolatile ones because the call stub has saved them.
|
||||||
// Use only non-volatile registers in order to keep values across C-calls.
|
// Use only non-volatile registers in order to keep values across C-calls.
|
||||||
constexpr Register Z_tmp_1 = Z_R10;
|
constexpr Register Z_tmp_1 = Z_R10;
|
||||||
|
@ -118,7 +118,7 @@ ExceptionBlob* OptoRuntime::generate_exception_blob() {
|
|||||||
__ z_lgr(Z_SP, saved_sp);
|
__ z_lgr(Z_SP, saved_sp);
|
||||||
|
|
||||||
// [Z_RET] isn't null was possible in hotspot5 but not in sapjvm6.
|
// [Z_RET] isn't null was possible in hotspot5 but not in sapjvm6.
|
||||||
// C2I adapter extensions are now removed by a resize in the frame manager
|
// C2I adapter extensions are now removed by a resize in the template interpreter
|
||||||
// (unwind_initial_activation_pending_exception).
|
// (unwind_initial_activation_pending_exception).
|
||||||
#ifdef ASSERT
|
#ifdef ASSERT
|
||||||
__ z_ltgr(handle_exception, handle_exception);
|
__ z_ltgr(handle_exception, handle_exception);
|
||||||
|
@ -2139,7 +2139,7 @@ static address gen_c2i_adapter(MacroAssembler *masm,
|
|||||||
Register value = Z_R12;
|
Register value = Z_R12;
|
||||||
|
|
||||||
// Remember the senderSP so we can pop the interpreter arguments off of the stack.
|
// Remember the senderSP so we can pop the interpreter arguments off of the stack.
|
||||||
// In addition, frame manager expects initial_caller_sp in Z_R10.
|
// In addition, template interpreter expects initial_caller_sp in Z_R10.
|
||||||
__ z_lgr(sender_SP, Z_SP);
|
__ z_lgr(sender_SP, Z_SP);
|
||||||
|
|
||||||
// This should always fit in 14 bit immediate.
|
// This should always fit in 14 bit immediate.
|
||||||
|
@ -115,7 +115,7 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
// [SP+176] - thread : Thread*
|
// [SP+176] - thread : Thread*
|
||||||
//
|
//
|
||||||
address generate_call_stub(address& return_address) {
|
address generate_call_stub(address& return_address) {
|
||||||
// Set up a new C frame, copy Java arguments, call frame manager
|
// Set up a new C frame, copy Java arguments, call template interpreter
|
||||||
// or native_entry, and process result.
|
// or native_entry, and process result.
|
||||||
|
|
||||||
StubGenStubId stub_id = StubGenStubId::call_stub_id;
|
StubGenStubId stub_id = StubGenStubId::call_stub_id;
|
||||||
@ -272,10 +272,10 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
|
|
||||||
BLOCK_COMMENT("call {");
|
BLOCK_COMMENT("call {");
|
||||||
{
|
{
|
||||||
// Call frame manager or native entry.
|
// Call template interpreter or native entry.
|
||||||
|
|
||||||
//
|
//
|
||||||
// Register state on entry to frame manager / native entry:
|
// Register state on entry to template interpreter / native entry:
|
||||||
//
|
//
|
||||||
// Z_ARG1 = r_top_of_arguments_addr - intptr_t *sender tos (prepushed)
|
// Z_ARG1 = r_top_of_arguments_addr - intptr_t *sender tos (prepushed)
|
||||||
// Lesp = (SP) + copied_arguments_offset - 8
|
// Lesp = (SP) + copied_arguments_offset - 8
|
||||||
@ -290,7 +290,7 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
__ z_lgr(Z_esp, r_top_of_arguments_addr);
|
__ z_lgr(Z_esp, r_top_of_arguments_addr);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Stack on entry to frame manager / native entry:
|
// Stack on entry to template interpreter / native entry:
|
||||||
//
|
//
|
||||||
// F0 [TOP_IJAVA_FRAME_ABI]
|
// F0 [TOP_IJAVA_FRAME_ABI]
|
||||||
// [outgoing Java arguments]
|
// [outgoing Java arguments]
|
||||||
@ -300,7 +300,7 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
//
|
//
|
||||||
|
|
||||||
// Do a light-weight C-call here, r_new_arg_entry holds the address
|
// Do a light-weight C-call here, r_new_arg_entry holds the address
|
||||||
// of the interpreter entry point (frame manager or native entry)
|
// of the interpreter entry point (template interpreter or native entry)
|
||||||
// and save runtime-value of return_pc in return_address
|
// and save runtime-value of return_pc in return_address
|
||||||
// (call by reference argument).
|
// (call by reference argument).
|
||||||
return_address = __ call_stub(r_new_arg_entry);
|
return_address = __ call_stub(r_new_arg_entry);
|
||||||
@ -309,11 +309,11 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
|
|
||||||
{
|
{
|
||||||
BLOCK_COMMENT("restore registers {");
|
BLOCK_COMMENT("restore registers {");
|
||||||
// Returned from frame manager or native entry.
|
// Returned from template interpreter or native entry.
|
||||||
// Now pop frame, process result, and return to caller.
|
// Now pop frame, process result, and return to caller.
|
||||||
|
|
||||||
//
|
//
|
||||||
// Stack on exit from frame manager / native entry:
|
// Stack on exit from template interpreter / native entry:
|
||||||
//
|
//
|
||||||
// F0 [ABI]
|
// F0 [ABI]
|
||||||
// ...
|
// ...
|
||||||
@ -330,7 +330,7 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
__ pop_frame();
|
__ pop_frame();
|
||||||
|
|
||||||
// Reload some volatile registers which we've spilled before the call
|
// Reload some volatile registers which we've spilled before the call
|
||||||
// to frame manager / native entry.
|
// to template interpreter / native entry.
|
||||||
// Access all locals via frame pointer, because we know nothing about
|
// Access all locals via frame pointer, because we know nothing about
|
||||||
// the topmost frame's size.
|
// the topmost frame's size.
|
||||||
__ z_lg(r_arg_result_addr, result_address_offset, r_entryframe_fp);
|
__ z_lg(r_arg_result_addr, result_address_offset, r_entryframe_fp);
|
||||||
|
@ -1217,7 +1217,7 @@ void TemplateInterpreterGenerator::generate_fixed_frame(bool native_call) {
|
|||||||
|
|
||||||
// Various method entries
|
// Various method entries
|
||||||
|
|
||||||
// Math function, frame manager must set up an interpreter state, etc.
|
// Math function, template interpreter must set up an interpreter state, etc.
|
||||||
address TemplateInterpreterGenerator::generate_math_entry(AbstractInterpreter::MethodKind kind) {
|
address TemplateInterpreterGenerator::generate_math_entry(AbstractInterpreter::MethodKind kind) {
|
||||||
|
|
||||||
// Decide what to do: Use same platform specific instructions and runtime calls as compilers.
|
// Decide what to do: Use same platform specific instructions and runtime calls as compilers.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user