src/share/vm/c1/c1_LIR.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
8068945-8u-patched Cdiff src/share/vm/c1/c1_LIR.cpp
src/share/vm/c1/c1_LIR.cpp
Print this page
rev 7386 : 8068945: Use RBP register as proper frame pointer in JIT compiled code on x86
Summary: Introduce the PreserveFramePointer flag to control if RBP is used as the frame pointer or as a general purpose register.
Reviewed-by: kvn, roland, dlong, enevill, shade
*** 452,462 ****
}
//-------------------visits--------------------------
// complete rework of LIR instruction visitor.
! // The virtual calls for each instruction type is replaced by a big
// switch that adds the operands for each instruction
void LIR_OpVisitState::visit(LIR_Op* op) {
// copy information from the LIR_Op
reset();
--- 452,462 ----
}
//-------------------visits--------------------------
// complete rework of LIR instruction visitor.
! // The virtual call for each instruction type is replaced by a big
// switch that adds the operands for each instruction
void LIR_OpVisitState::visit(LIR_Op* op) {
// copy information from the LIR_Op
reset();
*** 821,831 ****
do_input(*opJavaCall->_arguments->adr_at(i));
}
}
if (opJavaCall->_info) do_info(opJavaCall->_info);
! if (opJavaCall->is_method_handle_invoke()) {
opJavaCall->_method_handle_invoke_SP_save_opr = FrameMap::method_handle_invoke_SP_save_opr();
do_temp(opJavaCall->_method_handle_invoke_SP_save_opr);
}
do_call();
if (opJavaCall->_result->is_valid()) do_output(opJavaCall->_result);
--- 821,832 ----
do_input(*opJavaCall->_arguments->adr_at(i));
}
}
if (opJavaCall->_info) do_info(opJavaCall->_info);
! if (FrameMap::method_handle_invoke_SP_save_opr() != LIR_OprFact::illegalOpr &&
! opJavaCall->is_method_handle_invoke()) {
opJavaCall->_method_handle_invoke_SP_save_opr = FrameMap::method_handle_invoke_SP_save_opr();
do_temp(opJavaCall->_method_handle_invoke_SP_save_opr);
}
do_call();
if (opJavaCall->_result->is_valid()) do_output(opJavaCall->_result);
src/share/vm/c1/c1_LIR.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File