equal
deleted
inserted
replaced
1732 true /* do_load*/, |
1732 true /* do_load*/, |
1733 needs_patching, |
1733 needs_patching, |
1734 (info ? new CodeEmitInfo(info) : NULL)); |
1734 (info ? new CodeEmitInfo(info) : NULL)); |
1735 } |
1735 } |
1736 |
1736 |
1737 if (is_volatile && !needs_patching) { |
1737 bool needs_atomic_access = is_volatile || AlwaysAtomicAccesses; |
|
1738 if (needs_atomic_access && !needs_patching) { |
1738 volatile_field_store(value.result(), address, info); |
1739 volatile_field_store(value.result(), address, info); |
1739 } else { |
1740 } else { |
1740 LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; |
1741 LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; |
1741 __ store(value.result(), address, info, patch_code); |
1742 __ store(value.result(), address, info, patch_code); |
1742 } |
1743 } |
1805 address = new LIR_Address(object.result(), PATCHED_ADDR, field_type); |
1806 address = new LIR_Address(object.result(), PATCHED_ADDR, field_type); |
1806 } else { |
1807 } else { |
1807 address = generate_address(object.result(), x->offset(), field_type); |
1808 address = generate_address(object.result(), x->offset(), field_type); |
1808 } |
1809 } |
1809 |
1810 |
1810 if (is_volatile && !needs_patching) { |
1811 bool needs_atomic_access = is_volatile || AlwaysAtomicAccesses; |
|
1812 if (needs_atomic_access && !needs_patching) { |
1811 volatile_field_load(address, reg, info); |
1813 volatile_field_load(address, reg, info); |
1812 } else { |
1814 } else { |
1813 LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; |
1815 LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; |
1814 __ load(address, reg, info, patch_code); |
1816 __ load(address, reg, info, patch_code); |
1815 } |
1817 } |