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