A plugin for calls to word operations, as well as all other nodes that need special handling for Word types.
If the plugin pushes a value with a different Kind than specified by the bytecode, it must override this method and return true.
Create an instance of a binary node which is used to lower Word operations.
Handle the parsing of a CHECKCAST bytecode.
Handle the parsing of a INSTANCEOF bytecode.
Processes a call to a method if it is annotated with Word.Operation by adding nodes to the graph being built that implement the denoted operation.
Handle the parsing of a GETFIELD bytecode.
Handle the parsing of an array load bytecode.
Handle the parsing of a GETSTATIC bytecode.
Handle the parsing of an array store bytecode.
Notifies this plugin of the Invoke node created for a method that was not inlined per InlineInvokePlugin.shouldInlineInvoke(com.oracle.graal.graphbuilderconf.GraphBuilderContext, jdk.internal.jvmci.meta.ResolvedJavaMethod, com.oracle.graal.nodes.ValueNode, jdk.internal.jvmci.meta.JavaType).
If the plugin pushes a value with a different Kind than specified by the bytecode, it must override this method and return true. This disables assertion checking for value kinds.
Handle the parsing of a GETFIELD bytecode. If the method returns true, it must push a value using the kind of the field.
Handle the parsing of a GETSTATIC bytecode. If the method returns true, it must push a value using the kind of the field.
Handle the parsing of an array load bytecode. If the method returns true, it must push a value using the provided elementKind.
true if the plugin handles the array access, false otherwise.
Handle the parsing of a CHECKCAST bytecode. If the method returns true, it must push a value with the result of the cast using Kind.Object.
Handle the parsing of a INSTANCEOF bytecode. If the method returns true, it must push a value with the result of the instanceof using Kind.Int.
Create an instance of a binary node which is used to lower Word operations. This method is called for all Word operations which are annotated with @Operation(node = ...) and encapsulates the reflective allocation of the node.