Mercurial > hg > truffle
comparison src/share/vm/c1/c1_LIRGenerator.cpp @ 2352:425688247f3d
6965570: assert(!needs_patching && x->is_loaded(),"how do we know it's volatile if it's not loaded")
Reviewed-by: iveresov
author | never |
---|---|
date | Sun, 06 Mar 2011 22:09:23 -0800 |
parents | aa4b04b68652 |
children | 8033953d67ff |
comparison
equal
deleted
inserted
replaced
2351:8e72cd29b15d | 2352:425688247f3d |
---|---|
1557 pre_barrier(LIR_OprFact::address(address), | 1557 pre_barrier(LIR_OprFact::address(address), |
1558 needs_patching, | 1558 needs_patching, |
1559 (info ? new CodeEmitInfo(info) : NULL)); | 1559 (info ? new CodeEmitInfo(info) : NULL)); |
1560 } | 1560 } |
1561 | 1561 |
1562 if (is_volatile) { | 1562 if (is_volatile && !needs_patching) { |
1563 assert(!needs_patching && x->is_loaded(), | |
1564 "how do we know it's volatile if it's not loaded"); | |
1565 volatile_field_store(value.result(), address, info); | 1563 volatile_field_store(value.result(), address, info); |
1566 } else { | 1564 } else { |
1567 LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; | 1565 LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; |
1568 __ store(value.result(), address, info, patch_code); | 1566 __ store(value.result(), address, info, patch_code); |
1569 } | 1567 } |
1625 address = new LIR_Address(object.result(), PATCHED_ADDR, field_type); | 1623 address = new LIR_Address(object.result(), PATCHED_ADDR, field_type); |
1626 } else { | 1624 } else { |
1627 address = generate_address(object.result(), x->offset(), field_type); | 1625 address = generate_address(object.result(), x->offset(), field_type); |
1628 } | 1626 } |
1629 | 1627 |
1630 if (is_volatile) { | 1628 if (is_volatile && !needs_patching) { |
1631 assert(!needs_patching && x->is_loaded(), | |
1632 "how do we know it's volatile if it's not loaded"); | |
1633 volatile_field_load(address, reg, info); | 1629 volatile_field_load(address, reg, info); |
1634 } else { | 1630 } else { |
1635 LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; | 1631 LIR_PatchCode patch_code = needs_patching ? lir_patch_normal : lir_patch_none; |
1636 __ load(address, reg, info, patch_code); | 1632 __ load(address, reg, info, patch_code); |
1637 } | 1633 } |