use of com.oracle.svm.core.graal.nodes.CInterfaceWriteNode in project graal by oracle.
the class StoreVMThreadLocalNode method lower.
@Override
public void lower(LoweringTool tool) {
assert threadLocalInfo.offset >= 0;
ConstantNode offset = ConstantNode.forIntegerKind(FrameAccess.getWordKind(), threadLocalInfo.offset, graph());
AddressNode address = graph().unique(new OffsetAddressNode(holder, offset));
AbstractWriteNode write;
if (SubstrateOptions.MultiThreaded.getValue()) {
write = new CInterfaceWriteNode(address, threadLocalInfo.locationIdentity, value, barrierType, threadLocalInfo.name);
} else {
write = new JavaWriteNode(threadLocalInfo.storageKind, address, threadLocalInfo.locationIdentity, value, barrierType, true);
}
write = graph().add(write);
write.setStateAfter(stateAfter());
graph().replaceFixedWithFixed(this, write);
if (!SubstrateOptions.MultiThreaded.getValue()) {
tool.getLowerer().lower(write, tool);
}
}
Aggregations