< prev index next >

src/share/vm/c1/c1_LIR.cpp

Print this page

        

*** 1008,1017 **** --- 1008,1026 ---- do_input(opProfileType->_mdp); do_temp(opProfileType->_mdp); do_input(opProfileType->_obj); do_temp(opProfileType->_tmp); break; } + case lir_shenandoah_wb: { + assert(op->as_OpShenandoahWriteBarrier() != NULL, "must be"); + LIR_OpShenandoahWriteBarrier* opShenandoahWB = (LIR_OpShenandoahWriteBarrier*) op; + do_input(opShenandoahWB->_opr); + do_output(opShenandoahWB->_result); + do_temp(opShenandoahWB->_tmp1); + do_temp(opShenandoahWB->_tmp2); + break; + } default: ShouldNotReachHere(); } }
*** 1106,1115 **** --- 1115,1128 ---- if (stub()) { masm->append_code_stub(stub()); } } + void LIR_OpShenandoahWriteBarrier::emit_code(LIR_Assembler* masm) { + masm->emit_opShenandoahWriteBarrier(this); + } + void LIR_OpConvert::emit_code(LIR_Assembler* masm) { masm->emit_opConvert(this); if (stub() != NULL) { masm->append_code_stub(stub()); }
*** 1814,1833 **** --- 1827,1854 ---- case lir_cas_int: s = "cas_int"; break; // LIR_OpProfileCall case lir_profile_call: s = "profile_call"; break; // LIR_OpProfileType case lir_profile_type: s = "profile_type"; break; + case lir_shenandoah_wb: s = "shenandoah_wb"; break; // LIR_OpAssert #ifdef ASSERT case lir_assert: s = "assert"; break; #endif case lir_none: ShouldNotReachHere();break; default: s = "illegal_op"; break; } return s; } + void LIR_OpShenandoahWriteBarrier::print_instr(outputStream* out) const { + out->print("[obj: "); in_opr()->print(out); out->print("]"); + out->print("[res: "); result_opr()->print(out); out->print("]"); + out->print("[tmp1: "); tmp1_opr()->print(out); out->print("]"); + out->print("[tmp2: "); tmp2_opr()->print(out); out->print("]"); + } + // LIR_OpJavaCall void LIR_OpJavaCall::print_instr(outputStream* out) const { out->print("call: "); out->print("[addr: " INTPTR_FORMAT "]", p2i(address())); if (receiver()->is_valid()) {
< prev index next >