< prev index next >

src/hotspot/cpu/x86/frame_x86.cpp

Print this page

*** 715,727 **** intptr_t* frame::repair_sender_sp(intptr_t* sender_sp, intptr_t** saved_fp_addr) const { CompiledMethod* cm = _cb->as_compiled_method_or_null(); if (cm != NULL && cm->needs_stack_repair()) { // The stack increment resides just below the saved rbp on the stack // and does not account for the return address. ! intptr_t* sp_inc_addr = (intptr_t*) (saved_fp_addr - 1); ! int sp_inc = (*sp_inc_addr) / wordSize; ! int real_frame_size = sp_inc; if (!cm->is_compiled_by_c1()) { // Add size of return address (C1 already includes the RA size) real_frame_size += 1; } assert(real_frame_size >= _cb->frame_size(), "invalid frame size"); --- 715,726 ---- intptr_t* frame::repair_sender_sp(intptr_t* sender_sp, intptr_t** saved_fp_addr) const { CompiledMethod* cm = _cb->as_compiled_method_or_null(); if (cm != NULL && cm->needs_stack_repair()) { // The stack increment resides just below the saved rbp on the stack // and does not account for the return address. ! intptr_t* real_frame_size_addr = (intptr_t*) (saved_fp_addr - 1); ! int real_frame_size = (*real_frame_size_addr) / wordSize; if (!cm->is_compiled_by_c1()) { // Add size of return address (C1 already includes the RA size) real_frame_size += 1; } assert(real_frame_size >= _cb->frame_size(), "invalid frame size");
< prev index next >