src/share/vm/c1/c1_LIR.cpp

changeset 9142
87ee44a01d68
parent 9138
b56ab8e56604
child 9143
239e32ede77d
equal deleted inserted replaced
9141:f4f540f0461b 9142:87ee44a01d68
1655 c->set_should_profile(true); 1655 c->set_should_profile(true);
1656 } 1656 }
1657 append(c); 1657 append(c);
1658 } 1658 }
1659 1659
1660
1661 #ifndef MIPS
1662 void LIR_List::cas_long(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value, 1660 void LIR_List::cas_long(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value,
1663 LIR_Opr t1, LIR_Opr t2, LIR_Opr result) { 1661 LIR_Opr t1, LIR_Opr t2, LIR_Opr result) {
1664 append(new LIR_OpCompareAndSwap(lir_cas_long, addr, cmp_value, new_value, t1, t2, result)); 1662 append(new LIR_OpCompareAndSwap(lir_cas_long, addr, cmp_value, new_value, t1, t2, result));
1665 } 1663 }
1666 1664
1671 1669
1672 void LIR_List::cas_int(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value, 1670 void LIR_List::cas_int(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value,
1673 LIR_Opr t1, LIR_Opr t2, LIR_Opr result) { 1671 LIR_Opr t1, LIR_Opr t2, LIR_Opr result) {
1674 append(new LIR_OpCompareAndSwap(lir_cas_int, addr, cmp_value, new_value, t1, t2, result)); 1672 append(new LIR_OpCompareAndSwap(lir_cas_int, addr, cmp_value, new_value, t1, t2, result));
1675 } 1673 }
1676 #else
1677 void LIR_List::cas_long(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value, LIR_Opr t1, LIR_Opr t2, LIR_Opr result) {
1678 // Compare and swap produces condition code "zero" if contents_of(addr) == cmp_value,
1679 // // implying successful swap of new_value into addr
1680 append(new LIR_OpCompareAndSwap(lir_cas_long,
1681 addr,
1682 cmp_value,
1683 new_value,
1684 t1,
1685 t2,
1686 result));
1687 }
1688
1689 void LIR_List::cas_obj(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value, LIR_Opr t1, LIR_Opr t2, LIR_Opr result) {
1690 // Compare and swap produces condition code "zero" if contents_of(addr) == cmp_value,
1691 // // implying successful swap of new_value into addr
1692 append(new LIR_OpCompareAndSwap(lir_cas_obj,
1693 addr,
1694 cmp_value,
1695 new_value,
1696 t1,
1697 t2,
1698 result));
1699 }
1700
1701 void LIR_List::cas_int(LIR_Opr addr, LIR_Opr cmp_value, LIR_Opr new_value, LIR_Opr t1, LIR_Opr t2, LIR_Opr result) {
1702 // Compare and swap produces condition code "zero" if contents_of(addr) == cmp_value,
1703 // // implying successful swap of new_value into addr
1704 append(new LIR_OpCompareAndSwap(lir_cas_int,
1705 addr,
1706 cmp_value,
1707 new_value,
1708 t1,
1709 t2,
1710 result));
1711 }
1712 #endif
1713 1674
1714 1675
1715 #ifdef PRODUCT 1676 #ifdef PRODUCT
1716 1677
1717 void print_LIR(BlockList* blocks) { 1678 void print_LIR(BlockList* blocks) {

mercurial