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