use of com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode in project graal by oracle.
the class VMThreadSTFeature method handleGetAddress.
private boolean handleGetAddress(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver) {
VMThreadLocalInfo threadLocalInfo = threadLocalCollector.findInfo(b, receiver.get());
VMThreadLocalSTHolderNode holder = b.add(new VMThreadLocalSTHolderNode(threadLocalInfo));
b.addPush(targetMethod.getSignature().getReturnKind(), new AddressOfVMThreadLocalNode(threadLocalInfo, holder));
return true;
}
use of com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode in project graal by oracle.
the class VMThreadSTFeature method handleSet.
private boolean handleSet(GraphBuilderContext b, Receiver receiver, ValueNode valueNode) {
VMThreadLocalInfo info = threadLocalCollector.findInfo(b, receiver.get());
VMThreadLocalSTHolderNode holder = b.add(new VMThreadLocalSTHolderNode(info));
b.add(new StoreVMThreadLocalNode(info, holder, valueNode, BarrierType.PRECISE));
return true;
}
use of com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode in project graal by oracle.
the class VMThreadSTFeature method handleCompareAndSet.
private boolean handleCompareAndSet(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode expect, ValueNode update) {
VMThreadLocalInfo threadLocalInfo = threadLocalCollector.findInfo(b, receiver.get());
VMThreadLocalSTHolderNode holder = b.add(new VMThreadLocalSTHolderNode(threadLocalInfo));
b.addPush(targetMethod.getSignature().getReturnKind(), new CompareAndSetVMThreadLocalNode(threadLocalInfo, holder, expect, update, BarrierType.PRECISE));
return true;
}
use of com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode in project graal by oracle.
the class VMThreadSTFeature method handleGet.
private boolean handleGet(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver) {
VMThreadLocalInfo info = threadLocalCollector.findInfo(b, receiver.get());
VMThreadLocalSTHolderNode holder = b.add(new VMThreadLocalSTHolderNode(info));
b.addPush(targetMethod.getSignature().getReturnKind(), new LoadVMThreadLocalNode(b.getMetaAccess(), info, holder, BarrierType.PRECISE));
return true;
}
Aggregations