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