// top of expression stack inline intptr_t* frame::interpreter_frame_tos_address() const { intptr_t* last_sp = interpreter_frame_last_sp(); if (last_sp == NULL) { return sp(); } else { // sp() may have been extended or shrunk by an adapter. At least // check that we don't fall behind the legal region. // For top deoptimized frame last_sp == interpreter_frame_monitor_end. assert(last_sp <= (intptr_t*) interpreter_frame_monitor_end(), "bad tos"); return last_sp; } }
inline intptr_t* frame::interpreter_frame_expression_stack() const { intptr_t* monitor_end = (intptr_t*) interpreter_frame_monitor_end(); return monitor_end-1; }
// bottom(base) of the expression stack (highest address) inline intptr_t* frame::interpreter_frame_expression_stack() const { return (intptr_t*)interpreter_frame_monitor_end() - 1; }