src/share/vm/c1/c1_LIRGenerator.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 6965570 Cdiff src/share/vm/c1/c1_LIRGenerator.cpp

src/share/vm/c1/c1_LIRGenerator.cpp

Print this page

        

*** 1557,1569 **** pre_barrier(LIR_OprFact::address(address), needs_patching, (info ? new CodeEmitInfo(info) : NULL)); } ! if (is_volatile) { ! assert(!needs_patching && x->is_loaded(), ! "how do we know it's volatile if it's not loaded"); volatile_field_store(value.result(), address, info); } else { LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; __ store(value.result(), address, info, patch_code); } --- 1557,1567 ---- pre_barrier(LIR_OprFact::address(address), needs_patching, (info ? new CodeEmitInfo(info) : NULL)); } ! if (is_volatile && !needs_patching) { volatile_field_store(value.result(), address, info); } else { LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; __ store(value.result(), address, info, patch_code); }
*** 1625,1637 **** address = new LIR_Address(object.result(), PATCHED_ADDR, field_type); } else { address = generate_address(object.result(), x->offset(), field_type); } ! if (is_volatile) { ! assert(!needs_patching && x->is_loaded(), ! "how do we know it's volatile if it's not loaded"); volatile_field_load(address, reg, info); } else { LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; __ load(address, reg, info, patch_code); } --- 1623,1633 ---- address = new LIR_Address(object.result(), PATCHED_ADDR, field_type); } else { address = generate_address(object.result(), x->offset(), field_type); } ! if (is_volatile && !needs_patching) { volatile_field_load(address, reg, info); } else { LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; __ load(address, reg, info, patch_code); }
src/share/vm/c1/c1_LIRGenerator.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File