public interface NodePlugin extends GraphBuilderPlugin
Modifier and Type | Method and Description |
---|---|
default boolean |
canChangeStackKind(GraphBuilderContext b)
|
default boolean |
handleCheckCast(GraphBuilderContext b,
ValueNode object,
ResolvedJavaType type,
JavaTypeProfile profile)
Handle the parsing of a CHECKCAST bytecode.
|
default boolean |
handleInstanceOf(GraphBuilderContext b,
ValueNode object,
ResolvedJavaType type,
JavaTypeProfile profile)
Handle the parsing of a INSTANCEOF bytecode.
|
default boolean |
handleInvoke(GraphBuilderContext b,
ResolvedJavaMethod method,
ValueNode[] args)
Handle the parsing of a method invocation bytecode to a method that can be bound statically.
|
default boolean |
handleLoadField(GraphBuilderContext b,
ValueNode object,
ResolvedJavaField field)
Handle the parsing of a GETFIELD bytecode.
|
default boolean |
handleLoadIndexed(GraphBuilderContext b,
ValueNode array,
ValueNode index,
Kind elementKind)
Handle the parsing of an array load bytecode.
|
default boolean |
handleLoadStaticField(GraphBuilderContext b,
ResolvedJavaField field)
Handle the parsing of a GETSTATIC bytecode.
|
default boolean |
handleStoreField(GraphBuilderContext b,
ValueNode object,
ResolvedJavaField field,
ValueNode value)
Handle the parsing of a PUTFIELD bytecode.
|
default boolean |
handleStoreIndexed(GraphBuilderContext b,
ValueNode array,
ValueNode index,
Kind elementKind,
ValueNode value)
Handle the parsing of an array store bytecode.
|
default boolean |
handleStoreStaticField(GraphBuilderContext b,
ResolvedJavaField field,
ValueNode value)
Handle the parsing of a PUTSTATIC bytecode.
|
default boolean handleInvoke(GraphBuilderContext b, ResolvedJavaMethod method, ValueNode[] args)
push
a value as the
result of the method invocation using the return kind
of the
method.b
- the contextmethod
- the statically bound, invoked methodargs
- the arguments of the method invocationdefault boolean handleLoadField(GraphBuilderContext b, ValueNode object, ResolvedJavaField field)
push
a value using the kind
of the field.b
- the contextobject
- the receiver object for the field accessfield
- the accessed fielddefault boolean handleLoadStaticField(GraphBuilderContext b, ResolvedJavaField field)
push
a value using the kind
of the field.b
- the contextfield
- the accessed fielddefault boolean handleStoreField(GraphBuilderContext b, ValueNode object, ResolvedJavaField field, ValueNode value)
b
- the contextobject
- the receiver object for the field accessfield
- the accessed fieldvalue
- the value to be stored into the fielddefault boolean handleStoreStaticField(GraphBuilderContext b, ResolvedJavaField field, ValueNode value)
b
- the contextfield
- the accessed fieldvalue
- the value to be stored into the fielddefault boolean handleLoadIndexed(GraphBuilderContext b, ValueNode array, ValueNode index, Kind elementKind)
push
a value using the provided elementKind.b
- the contextarray
- the accessed arrayindex
- the index for the array accesselementKind
- the element kind of the accessed arraydefault boolean handleStoreIndexed(GraphBuilderContext b, ValueNode array, ValueNode index, Kind elementKind, ValueNode value)
b
- the contextarray
- the accessed arrayindex
- the index for the array accesselementKind
- the element kind of the accessed arrayvalue
- the value to be stored into the arraydefault boolean handleCheckCast(GraphBuilderContext b, ValueNode object, ResolvedJavaType type, JavaTypeProfile profile)
push
a value with the result of the cast using
Kind.Object
.b
- the contextobject
- the object to be type checkedtype
- the type that the object is checked againstprofile
- the profiling information for the type check, or null if no profiling
information is availabledefault boolean handleInstanceOf(GraphBuilderContext b, ValueNode object, ResolvedJavaType type, JavaTypeProfile profile)
push
a value with the result of the instanceof using
Kind.Int
.b
- the contextobject
- the object to be type checkedtype
- the type that the object is checked againstprofile
- the profiling information for the type check, or null if no profiling
information is availabledefault boolean canChangeStackKind(GraphBuilderContext b)
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.b
- the context