< prev index next > src/hotspot/cpu/ppc/frame_ppc.cpp
Print this page
volatile common_abi* sender_abi = (common_abi*) fp; // May get updated concurrently by deoptimization!
intptr_t* sender_sp = (intptr_t*) fp;
address sender_pc = (address) sender_abi->lr;
+ DEBUG_ONLY(nmethod* nm = _cb->as_nmethod_or_null());
+ assert(nm == nullptr || !nm->needs_stack_repair(), "unsupported");
+
if (Continuation::is_return_barrier_entry(sender_pc)) {
// sender_pc might be invalid so check that the frame
// actually belongs to a Continuation.
if (!Continuation::is_frame_in_continuation(thread, *this)) {
return false;
DESCRIBE_ADDRESS(lresult);
DESCRIBE_ADDRESS(fresult);
}
if (is_java_frame() || Continuation::is_continuation_enterSpecial(*this)) {
+ DEBUG_ONLY(nmethod* nm = _cb->as_nmethod_or_null());
+ assert(nm == nullptr || !nm->needs_stack_repair(), "unsupported");
intptr_t* ret_pc_loc = (intptr_t*)&own_abi()->lr;
address ret_pc = *(address*)ret_pc_loc;
values.describe(frame_no, ret_pc_loc,
Continuation::is_return_barrier_entry(ret_pc) ? "return address (return barrier)" : "return address");
}
}
intptr_t* frame::interpreter_frame_tos_at(jint offset) const {
return &interpreter_frame_tos_address()[offset];
}
+
+ intptr_t* frame::repair_sender_sp(nmethod* nm, intptr_t* sp, intptr_t** saved_fp_addr) {
+ assert(nm != nullptr && nm->needs_stack_repair(), "");
+ Unimplemented();
+ return nullptr;
+ }
+
+ bool frame::was_augmented_on_entry(int& real_size) const {
+ assert(is_compiled_frame(), "");
+ if (_cb->as_nmethod_or_null()->needs_stack_repair()) {
+ Unimplemented();
+ }
+ real_size = _cb->frame_size();
+ return false;
+ }
< prev index next >