--- a/src/hotspot/share/gc/shared/c2/barrierSetC2.cpp Thu Feb 14 15:27:12 2019 -0800
+++ b/src/hotspot/share/gc/shared/c2/barrierSetC2.cpp Thu Feb 14 15:27:12 2019 -0800
@@ -75,6 +75,7 @@
bool mismatched = (decorators & C2_MISMATCHED) != 0;
bool unaligned = (decorators & C2_UNALIGNED) != 0;
+ bool unsafe = (decorators & C2_UNSAFE_ACCESS) != 0;
bool requires_atomic_access = (decorators & MO_UNORDERED) == 0;
bool in_native = (decorators & IN_NATIVE) != 0;
@@ -93,7 +94,7 @@
}
store = kit->store_to_memory(kit->control(), access.addr().node(), val.node(), access.type(),
- access.addr().type(), mo, requires_atomic_access, unaligned, mismatched);
+ access.addr().type(), mo, requires_atomic_access, unaligned, mismatched, unsafe);
access.set_raw_access(store);
} else {
assert(!requires_atomic_access, "not yet supported");
@@ -132,6 +133,7 @@
bool unaligned = (decorators & C2_UNALIGNED) != 0;
bool control_dependent = (decorators & C2_CONTROL_DEPENDENT_LOAD) != 0;
bool pinned = (decorators & C2_PINNED_LOAD) != 0;
+ bool unsafe = (decorators & C2_UNSAFE_ACCESS) != 0;
bool in_native = (decorators & IN_NATIVE) != 0;
@@ -148,7 +150,7 @@
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,
- dep, requires_atomic_access, unaligned, mismatched);
+ dep, requires_atomic_access, unaligned, mismatched, unsafe);
}
access.set_raw_access(load);
} else {