< prev index next >

src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp

Print this page
rev 55609 : Eliminate extra forwarding pointer per object

*** 124,149 **** LIR_Opr _addr; LIR_Opr _cmp_value; LIR_Opr _new_value; LIR_Opr _tmp1; LIR_Opr _tmp2; public: LIR_OpShenandoahCompareAndSwap(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value, ! LIR_Opr t1, LIR_Opr t2, LIR_Opr result) : LIR_Op(lir_none, result, NULL) // no info , _addr(addr) , _cmp_value(cmp_value) , _new_value(new_value) , _tmp1(t1) ! , _tmp2(t2) { } LIR_Opr addr() const { return _addr; } LIR_Opr cmp_value() const { return _cmp_value; } LIR_Opr new_value() const { return _new_value; } LIR_Opr tmp1() const { return _tmp1; } LIR_Opr tmp2() const { return _tmp2; } virtual void visit(LIR_OpVisitState* state) { assert(_addr->is_valid(), "used"); assert(_cmp_value->is_valid(), "used"); assert(_new_value->is_valid(), "used"); --- 124,152 ---- LIR_Opr _addr; LIR_Opr _cmp_value; LIR_Opr _new_value; LIR_Opr _tmp1; LIR_Opr _tmp2; + LIR_Opr _tmp3; public: LIR_OpShenandoahCompareAndSwap(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value, ! LIR_Opr t1, LIR_Opr t2, LIR_Opr t3, LIR_Opr result) : LIR_Op(lir_none, result, NULL) // no info , _addr(addr) , _cmp_value(cmp_value) , _new_value(new_value) , _tmp1(t1) ! , _tmp2(t2) ! , _tmp3(t3) { } LIR_Opr addr() const { return _addr; } LIR_Opr cmp_value() const { return _cmp_value; } LIR_Opr new_value() const { return _new_value; } LIR_Opr tmp1() const { return _tmp1; } LIR_Opr tmp2() const { return _tmp2; } + LIR_Opr tmp3() const { return _tmp3; } virtual void visit(LIR_OpVisitState* state) { assert(_addr->is_valid(), "used"); assert(_cmp_value->is_valid(), "used"); assert(_new_value->is_valid(), "used");
*** 154,163 **** --- 157,167 ---- state->do_temp(_cmp_value); state->do_input(_new_value); state->do_temp(_new_value); if (_tmp1->is_valid()) state->do_temp(_tmp1); if (_tmp2->is_valid()) state->do_temp(_tmp2); + if (_tmp3->is_valid()) state->do_temp(_tmp3); if (_result->is_valid()) state->do_output(_result); } virtual void emit_code(LIR_Assembler* masm);
*** 165,174 **** --- 169,179 ---- addr()->print(out); out->print(" "); cmp_value()->print(out); out->print(" "); new_value()->print(out); out->print(" "); tmp1()->print(out); out->print(" "); tmp2()->print(out); out->print(" "); + tmp3()->print(out); out->print(" "); } #ifndef PRODUCT virtual const char* name() const { return "shenandoah_cas_obj"; }
< prev index next >