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