8354636: [PPC64] Clean up comments regarding frame manager
Reviewed-by: amitkumar, rrich
This commit is contained in:
parent
f141674d16
commit
ab23500034
@ -523,7 +523,7 @@ constexpr FloatRegister F11_ARG11 = F11; // volatile
|
|||||||
constexpr FloatRegister F12_ARG12 = F12; // volatile
|
constexpr FloatRegister F12_ARG12 = F12; // volatile
|
||||||
constexpr FloatRegister F13_ARG13 = F13; // volatile
|
constexpr FloatRegister F13_ARG13 = F13; // volatile
|
||||||
|
|
||||||
// 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.
|
||||||
constexpr Register R14_bcp = R14;
|
constexpr Register R14_bcp = R14;
|
||||||
constexpr Register R15_esp = R15; // slot below top of expression stack for ld/st with update
|
constexpr Register R15_esp = R15; // slot below top of expression stack for ld/st with update
|
||||||
@ -533,7 +533,7 @@ constexpr Register R17_tos = R17; // The interpreter's top of (expres
|
|||||||
constexpr Register R18_locals = R18; // address of first param slot (receiver).
|
constexpr Register R18_locals = R18; // address of first param slot (receiver).
|
||||||
constexpr Register R19_method = R19; // address of current method
|
constexpr Register R19_method = R19; // address of current method
|
||||||
|
|
||||||
// Temporary registers to be used within frame manager. We can use
|
// Temporary registers to be used within template interpreter. We can use
|
||||||
// the non-volatiles because the call stub has saved them.
|
// the non-volatiles 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 R21_tmp1 = R21;
|
constexpr Register R21_tmp1 = R21;
|
||||||
|
@ -2935,7 +2935,7 @@ static void push_skeleton_frames(MacroAssembler* masm, bool deopt,
|
|||||||
__ cmpdi(CR0, number_of_frames_reg, 0);
|
__ cmpdi(CR0, number_of_frames_reg, 0);
|
||||||
__ bne(CR0, loop);
|
__ bne(CR0, loop);
|
||||||
|
|
||||||
// Get the return address pointing into the frame manager.
|
// Get the return address pointing into the template interpreter.
|
||||||
__ ld(R0, 0, pcs_reg);
|
__ ld(R0, 0, pcs_reg);
|
||||||
// Store it in the top interpreter frame.
|
// Store it in the top interpreter frame.
|
||||||
__ std(R0, _abi0(lr), R1_SP);
|
__ std(R0, _abi0(lr), R1_SP);
|
||||||
|
@ -86,7 +86,7 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
// R10 - thread : Thread*
|
// R10 - thread : Thread*
|
||||||
//
|
//
|
||||||
address generate_call_stub(address& return_address) {
|
address generate_call_stub(address& return_address) {
|
||||||
// Setup a new c frame, copy java arguments, call frame manager or
|
// Setup a new c frame, copy java arguments, call template interpreter or
|
||||||
// native_entry, and process result.
|
// native_entry, and process result.
|
||||||
|
|
||||||
StubGenStubId stub_id = StubGenStubId::call_stub_id;
|
StubGenStubId stub_id = StubGenStubId::call_stub_id;
|
||||||
@ -215,11 +215,10 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
BLOCK_COMMENT("Call frame manager or native entry.");
|
BLOCK_COMMENT("Call template interpreter or native entry.");
|
||||||
// Call frame manager or native entry.
|
|
||||||
assert_different_registers(r_arg_entry, r_top_of_arguments_addr, r_arg_method, r_arg_thread);
|
assert_different_registers(r_arg_entry, r_top_of_arguments_addr, r_arg_method, r_arg_thread);
|
||||||
|
|
||||||
// Register state on entry to frame manager / native entry:
|
// Register state on entry to template interpreter / native entry:
|
||||||
//
|
//
|
||||||
// tos - intptr_t* sender tos (prepushed) Lesp = (SP) + copied_arguments_offset - 8
|
// tos - intptr_t* sender tos (prepushed) Lesp = (SP) + copied_arguments_offset - 8
|
||||||
// R19_method - Method
|
// R19_method - Method
|
||||||
@ -242,7 +241,7 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
|
|
||||||
// Set R15_prev_state to 0 for simplifying checks in callee.
|
// Set R15_prev_state to 0 for simplifying checks in callee.
|
||||||
__ load_const_optimized(R25_templateTableBase, (address)Interpreter::dispatch_table((TosState)0), R0);
|
__ load_const_optimized(R25_templateTableBase, (address)Interpreter::dispatch_table((TosState)0), R0);
|
||||||
// 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]
|
||||||
// alignment (optional)
|
// alignment (optional)
|
||||||
@ -262,7 +261,7 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
__ mr(R21_sender_SP, R1_SP);
|
__ mr(R21_sender_SP, R1_SP);
|
||||||
|
|
||||||
// Do a light-weight C-call here, r_arg_entry holds the address
|
// Do a light-weight C-call here, r_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 LR in return_address.
|
// and save runtime-value of LR in return_address.
|
||||||
assert(r_arg_entry != tos && r_arg_entry != R19_method && r_arg_entry != R16_thread,
|
assert(r_arg_entry != tos && r_arg_entry != R19_method && r_arg_entry != R16_thread,
|
||||||
"trashed r_arg_entry");
|
"trashed r_arg_entry");
|
||||||
@ -270,11 +269,10 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
BLOCK_COMMENT("Returned from frame manager or native entry.");
|
BLOCK_COMMENT("Returned from template interpreter or native entry.");
|
||||||
// Returned from frame manager 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]
|
||||||
// ...
|
// ...
|
||||||
@ -295,7 +293,7 @@ class StubGenerator: public StubCodeGenerator {
|
|||||||
Register r_cr = R12_scratch2;
|
Register r_cr = R12_scratch2;
|
||||||
|
|
||||||
// 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.
|
||||||
__ ld(r_entryframe_fp, _abi0(callers_sp), R1_SP); // restore after call
|
__ ld(r_entryframe_fp, _abi0(callers_sp), R1_SP); // restore after call
|
||||||
|
Loading…
x
Reference in New Issue
Block a user