< prev index next >
src/hotspot/share/gc/shared/c2/barrierSetC2.cpp
Print this page
*** 39,48 ****
--- 39,52 ----
return _kit->barrier_set_state();
}
PhaseGVN& C2ParseAccess::gvn() const { return _kit->gvn(); }
+ Node* C2ParseAccess::control() const {
+ return _ctl == NULL ? _kit->control() : _ctl;
+ }
+
bool C2Access::needs_cpu_membar() const {
bool mismatched = (_decorators & C2_MISMATCHED) != 0;
bool is_unordered = (_decorators & MO_UNORDERED) != 0;
bool anonymous = (_decorators & C2_UNSAFE_ACCESS) != 0;
bool in_heap = (_decorators & IN_HEAP) != 0;
*** 142,152 ****
Node* load;
if (access.is_parse_access()) {
C2ParseAccess& parse_access = static_cast<C2ParseAccess&>(access);
GraphKit* kit = parse_access.kit();
! Node* control = control_dependent ? kit->control() : NULL;
if (in_native) {
load = kit->make_load(control, adr, val_type, access.type(), mo);
} else {
load = kit->make_load(control, adr, val_type, access.type(), adr_type, mo,
--- 146,156 ----
Node* load;
if (access.is_parse_access()) {
C2ParseAccess& parse_access = static_cast<C2ParseAccess&>(access);
GraphKit* kit = parse_access.kit();
! Node* control = control_dependent ? parse_access.control() : NULL;
if (in_native) {
load = kit->make_load(control, adr, val_type, access.type(), mo);
} else {
load = kit->make_load(control, adr, val_type, access.type(), adr_type, mo,
< prev index next >