Search in sources :

Example 1 with CompareAndSetVMThreadLocalNode

use of com.oracle.svm.core.graal.thread.CompareAndSetVMThreadLocalNode in project graal by oracle.

the class VMThreadMTFeature method handleCompareAndSet.

private boolean handleCompareAndSet(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode threadNode, ValueNode expect, ValueNode update) {
    VMThreadLocalInfo threadLocalInfo = threadLocalCollector.findInfo(b, receiver.get());
    b.addPush(targetMethod.getSignature().getReturnKind(), new CompareAndSetVMThreadLocalNode(threadLocalInfo, threadNode, expect, update, BarrierType.NONE));
    return true;
}
Also used : CompareAndSetVMThreadLocalNode(com.oracle.svm.core.graal.thread.CompareAndSetVMThreadLocalNode) VMThreadLocalInfo(com.oracle.svm.core.threadlocal.VMThreadLocalInfo)

Example 2 with CompareAndSetVMThreadLocalNode

use of com.oracle.svm.core.graal.thread.CompareAndSetVMThreadLocalNode 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)

Aggregations

CompareAndSetVMThreadLocalNode (com.oracle.svm.core.graal.thread.CompareAndSetVMThreadLocalNode)2 VMThreadLocalInfo (com.oracle.svm.core.threadlocal.VMThreadLocalInfo)2 VMThreadLocalSTHolderNode (com.oracle.svm.core.graal.thread.VMThreadLocalSTHolderNode)1