src/share/vm/c1/c1_LIR.cpp

changeset 8735
dcaab7b518c4
parent 7854
e8260b6328fb
child 8856
ac27a9c85bea
child 9775
9b865b281711
equal deleted inserted replaced
8734:c73c5d205d0a 8735:dcaab7b518c4
1514 c->set_should_profile(true); 1514 c->set_should_profile(true);
1515 } 1515 }
1516 append(c); 1516 append(c);
1517 } 1517 }
1518 1518
1519 void LIR_List::null_check(LIR_Opr opr, CodeEmitInfo* info, bool deoptimize_on_null) {
1520 if (deoptimize_on_null) {
1521 // Emit an explicit null check and deoptimize if opr is null
1522 CodeStub* deopt = new DeoptimizeStub(info);
1523 cmp(lir_cond_equal, opr, LIR_OprFact::oopConst(NULL));
1524 branch(lir_cond_equal, T_OBJECT, deopt);
1525 } else {
1526 // Emit an implicit null check
1527 append(new LIR_Op1(lir_null_check, opr, info));
1528 }
1529 }
1519 1530
1520 void LIR_List::cas_long(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value, 1531 void LIR_List::cas_long(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value,
1521 LIR_Opr t1, LIR_Opr t2, LIR_Opr result) { 1532 LIR_Opr t1, LIR_Opr t2, LIR_Opr result) {
1522 append(new LIR_OpCompareAndSwap(lir_cas_long, addr, cmp_value, new_value, t1, t2, result)); 1533 append(new LIR_OpCompareAndSwap(lir_cas_long, addr, cmp_value, new_value, t1, t2, result));
1523 } 1534 }

mercurial