< 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 >