Search in sources :

Example 1 with VMThreadLocalSTHolderNode

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;
}
Also used : VMThreadLocalSTHolderNode(com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode) AddressOfVMThreadLocalNode(com.oracle.svm.core.graal.thread.AddressOfVMThreadLocalNode) VMThreadLocalInfo(com.oracle.svm.core.threadlocal.VMThreadLocalInfo)

Example 2 with VMThreadLocalSTHolderNode

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;
}
Also used : StoreVMThreadLocalNode(com.oracle.svm.core.graal.thread.StoreVMThreadLocalNode) VMThreadLocalSTHolderNode(com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode) VMThreadLocalInfo(com.oracle.svm.core.threadlocal.VMThreadLocalInfo)

Example 3 with VMThreadLocalSTHolderNode

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;
}
Also used : VMThreadLocalSTHolderNode(com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode) CompareAndSetVMThreadLocalNode(com.oracle.svm.core.graal.thread.CompareAndSetVMThreadLocalNode) VMThreadLocalInfo(com.oracle.svm.core.threadlocal.VMThreadLocalInfo)

Example 4 with VMThreadLocalSTHolderNode

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;
}
Also used : VMThreadLocalSTHolderNode(com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode) VMThreadLocalInfo(com.oracle.svm.core.threadlocal.VMThreadLocalInfo) LoadVMThreadLocalNode(com.oracle.svm.core.graal.thread.LoadVMThreadLocalNode)

Aggregations

VMThreadLocalSTHolderNode (com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode)4 VMThreadLocalInfo (com.oracle.svm.core.threadlocal.VMThreadLocalInfo)4 AddressOfVMThreadLocalNode (com.oracle.svm.core.graal.thread.AddressOfVMThreadLocalNode)1 CompareAndSetVMThreadLocalNode (com.oracle.svm.core.graal.thread.CompareAndSetVMThreadLocalNode)1 LoadVMThreadLocalNode (com.oracle.svm.core.graal.thread.LoadVMThreadLocalNode)1 StoreVMThreadLocalNode (com.oracle.svm.core.graal.thread.StoreVMThreadLocalNode)1