< prev index next >
src/share/vm/c1/c1_LIRAssembler.cpp
Print this page
rev 8802 : G1 performance improvements: card batching, joining, sorting, prefetching and write barrier fence elision and simplification based on a global syncrhonization using handshakes piggybacking on thread-local safepoints.
*** 508,527 ****
LIR_OpRoundFP* round_op = op->as_OpRoundFP();
roundfp_op(round_op->in_opr(), round_op->tmp(), round_op->result_opr(), round_op->pop_fpu_stack());
break;
}
! case lir_return:
! return_op(op->in_opr());
break;
! case lir_safepoint:
if (compilation()->debug_info_recorder()->last_pc_offset() == code_offset()) {
_masm->nop();
}
! safepoint_poll(op->in_opr(), op->info());
break;
case lir_fxch:
fxch(op->in_opr()->as_jint());
break;
--- 508,535 ----
LIR_OpRoundFP* round_op = op->as_OpRoundFP();
roundfp_op(round_op->in_opr(), round_op->tmp(), round_op->result_opr(), round_op->pop_fpu_stack());
break;
}
! case lir_return: {
! assert(op->as_Op1Safepoint() != NULL, "sanity");
! LIR_Op1Safepoint *ret_op = (LIR_Op1Safepoint*)op;
! return_op(ret_op->in_opr(), ret_op->tls_stub());
! if (ret_op->tls_stub()) append_code_stub(ret_op->tls_stub());
break;
+ }
! case lir_safepoint: {
! assert(op->as_Op1Safepoint() != NULL, "sanity");
! LIR_Op1Safepoint *sp_op = (LIR_Op1Safepoint*)op;
if (compilation()->debug_info_recorder()->last_pc_offset() == code_offset()) {
_masm->nop();
}
! safepoint_poll(op->in_opr(), sp_op->tls_stub(), op->info());
! if (sp_op->tls_stub()) append_code_stub(sp_op->tls_stub());
break;
+ }
case lir_fxch:
fxch(op->in_opr()->as_jint());
break;
< prev index next >