
jdk.graal.compiler.hotspot.replacements.PluginFactory_ObjectSnippets Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of compiler Show documentation
Show all versions of compiler Show documentation
The GraalVM compiler and the Graal-truffle optimizer.
The newest version!
// CheckStyle: stop header check
// CheckStyle: stop line length check
// GENERATED CONTENT - DO NOT EDIT
// GENERATORS: jdk.graal.compiler.replacements.processor.ReplacementsAnnotationProcessor, jdk.graal.compiler.replacements.processor.PluginGenerator
package jdk.graal.compiler.hotspot.replacements;
import java.lang.annotation.Annotation;
import jdk.graal.compiler.core.common.type.Stamp;
import jdk.graal.compiler.debug.GraalError;
import jdk.graal.compiler.graph.NodeInputList;
import jdk.graal.compiler.nodes.PluginReplacementNode;
import jdk.graal.compiler.nodes.ValueNode;
import jdk.graal.compiler.nodes.graphbuilderconf.GeneratedNodeIntrinsicInvocationPlugin;
import jdk.graal.compiler.nodes.graphbuilderconf.GeneratedPluginFactory;
import jdk.graal.compiler.nodes.graphbuilderconf.GeneratedPluginInjectionProvider;
import jdk.graal.compiler.nodes.graphbuilderconf.GraphBuilderContext;
import jdk.graal.compiler.nodes.graphbuilderconf.InvocationPlugin;
import jdk.graal.compiler.nodes.graphbuilderconf.InvocationPlugins;
import jdk.graal.compiler.nodes.spi.Replacements;
import jdk.graal.compiler.options.ExcludeFromJacocoGeneratedReport;
import jdk.vm.ci.meta.ResolvedJavaMethod;
// class: jdk.graal.compiler.hotspot.replacements.ObjectSnippets
// method: fastNotifyStub(jdk.graal.compiler.core.common.spi.ForeignCallDescriptor,jdk.graal.compiler.word.Word,java.lang.Object)
// generated-by: jdk.graal.compiler.replacements.processor.GeneratedNodeIntrinsicPlugin$CustomFactoryPlugin
final class Plugin_ObjectSnippets_fastNotifyStub extends GeneratedNodeIntrinsicInvocationPlugin {
@Override
public boolean execute(GraphBuilderContext b, ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode[] args) {
if (!b.isPluginEnabled(this)) {
return false;
}
jdk.graal.compiler.core.common.type.Stamp arg0 = stamp;
jdk.graal.compiler.core.common.spi.ForeignCallDescriptor arg1;
if (args[0].isConstant()) {
arg1 = snippetReflection/* A SNIPPET_REFLECTION */.asObject(jdk.graal.compiler.core.common.spi.ForeignCallDescriptor.class, args[0].asJavaConstant());
assert arg1 != null;
} else {
if (b.shouldDeferPlugin(this)) {
b.replacePlugin(this, targetMethod, args, PluginReplacementNode_ObjectSnippets_fastNotifyStub.FUNCTION);
return true;
}
assert b.canDeferPlugin(this) : b.getClass().toString() + " " + args[0];
return false;
}
assert verifyForeignCallDescriptor(b, targetMethod, arg1) : arg1;
ValueNode arg2 = args[1];
ValueNode arg3 = args[2];
if (jdk.graal.compiler.nodes.extended.ForeignCallNode.intrinsify(b, arg0, arg1, arg2, arg3)) {
return true;
}
if (b.canDeferPlugin(this)) {
b.replacePlugin(this, targetMethod, args, PluginReplacementNode_ObjectSnippets_fastNotifyStub.FUNCTION);
return true;
}
throw GraalError.shouldNotReachHere("Can't inline plugin " + b.getClass().toString());
}
@Override
public Class extends Annotation> getSource() {
return jdk.graal.compiler.graph.Node.NodeIntrinsic.class;
}
private final jdk.graal.compiler.core.common.type.Stamp stamp;
private final jdk.graal.compiler.api.replacements.SnippetReflectionProvider snippetReflection;
Plugin_ObjectSnippets_fastNotifyStub(GeneratedPluginInjectionProvider injection) {
super("fastNotifyStub", jdk.graal.compiler.core.common.spi.ForeignCallDescriptor.class, jdk.graal.compiler.word.Word.class, java.lang.Object.class);
this.stamp = injection.getInjectedStamp(byte.class);
this.snippetReflection = injection.getInjectedArgument(jdk.graal.compiler.api.replacements.SnippetReflectionProvider.class);
}
}
// class: jdk.graal.compiler.hotspot.replacements.ObjectSnippets
// method: fastNotifyStub(jdk.graal.compiler.core.common.spi.ForeignCallDescriptor,jdk.graal.compiler.word.Word,java.lang.Object)
// generated-by: jdk.graal.compiler.replacements.processor.GeneratedNodeIntrinsicPlugin$CustomFactoryPlugin
@ExcludeFromJacocoGeneratedReport("deferred plugin support that is only called in libgraal")
final class PluginReplacementNode_ObjectSnippets_fastNotifyStub implements PluginReplacementNode.ReplacementFunction {
static PluginReplacementNode.ReplacementFunction FUNCTION = new PluginReplacementNode_ObjectSnippets_fastNotifyStub();
@Override
public boolean replace(GraphBuilderContext b, Replacements injection, Stamp stamp, NodeInputList args) {
jdk.graal.compiler.core.common.type.Stamp arg0 = injection.getInjectedStamp(byte.class);
jdk.graal.compiler.core.common.spi.ForeignCallDescriptor arg1;
if (args.get(0).isConstant()) {
arg1 = injection.getInjectedArgument(jdk.graal.compiler.api.replacements.SnippetReflectionProvider.class)/* B SNIPPET_REFLECTION */.asObject(jdk.graal.compiler.core.common.spi.ForeignCallDescriptor.class, args.get(0).asJavaConstant());
assert arg1 != null;
} else {
return false;
}
ValueNode arg2 = args.get(1);
ValueNode arg3 = args.get(2);
if (jdk.graal.compiler.nodes.extended.ForeignCallNode.intrinsify(b, arg0, arg1, arg2, arg3)) {
return true;
}
return false;
}
}
public class PluginFactory_ObjectSnippets implements GeneratedPluginFactory {
@Override
public void registerPlugins(InvocationPlugins plugins, GeneratedPluginInjectionProvider injection) {
plugins.register(jdk.graal.compiler.hotspot.replacements.ObjectSnippets.class, new Plugin_ObjectSnippets_fastNotifyStub(injection));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy