hotspot/src/share/vm/c1/c1_LIRGenerator.cpp
changeset 23189 27cf1316709b
parent 22504 b1837533ba65
child 23486 36d781313d5a
equal deleted inserted replaced
23188:21757c31b2c9 23189:27cf1316709b
  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   }