Class WasmCallInstruction
java.lang.Object
de.inetsoftware.jwebassembly.module.WasmInstruction
de.inetsoftware.jwebassembly.module.WasmCallInstruction
- Direct Known Subclasses:
WasmCallIndirectInstruction
WasmInstruction for a function call.
-
Nested Class Summary
Nested classes/interfaces inherited from class de.inetsoftware.jwebassembly.module.WasmInstruction
WasmInstruction.Type
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final String
private FunctionName
private final boolean
private int
private final TypeManager
private AnyType
-
Constructor Summary
ConstructorsConstructorDescriptionWasmCallInstruction
(FunctionName name, int javaCodePos, int lineNumber, TypeManager types, boolean needThisParameter) Create an instance of a function call instructionWasmCallInstruction
(FunctionName name, int javaCodePos, int lineNumber, TypeManager types, boolean needThisParameter, String comment) Create an instance of a function call instruction -
Method Summary
Modifier and TypeMethodDescriptionprivate void
Count the parameters in the signature(package private) FunctionName
Get the function name that should be called(package private) int
Get the count of values that are removed from the stack.(package private) AnyType[]
(package private) AnyType
Get the ValueType if this instruction push a value on the stack.(package private) WasmInstruction.Type
getType()
Get the type of instruction(package private) TypeManager
Get the type manager.void
writeTo
(ModuleWriter writer) Write this instruction to the WASM module.Methods inherited from class de.inetsoftware.jwebassembly.module.WasmInstruction
getCodePosition, getLineNumber, setCodePosition
-
Field Details
-
valueType
-
name
-
paramCount
private int paramCount -
types
-
needThisParameter
private final boolean needThisParameter -
comment
-
-
Constructor Details
-
WasmCallInstruction
WasmCallInstruction(FunctionName name, int javaCodePos, int lineNumber, @Nonnull TypeManager types, boolean needThisParameter) Create an instance of a function call instruction- Parameters:
name
- the function name that should be calledjavaCodePos
- the code position/offset in the Java methodlineNumber
- the line number in the Java source codetypes
- the type managerneedThisParameter
- true, if this function need additional to the parameter of the signature an extra "this" parameter
-
WasmCallInstruction
WasmCallInstruction(FunctionName name, int javaCodePos, int lineNumber, @Nonnull TypeManager types, boolean needThisParameter, String comment) Create an instance of a function call instruction- Parameters:
name
- the function name that should be calledjavaCodePos
- the code position/offset in the Java methodlineNumber
- the line number in the Java source codetypes
- the type managerneedThisParameter
- true, if this function need additional to the parameter of the signature an extra "this" parametercomment
- optional comment for the text format
-
-
Method Details
-
getType
WasmInstruction.Type getType()Get the type of instruction- Specified by:
getType
in classWasmInstruction
- Returns:
- the type
-
getFunctionName
Get the function name that should be called- Returns:
- the name
-
getTypeManager
TypeManager getTypeManager()Get the type manager.- Returns:
- the manager
-
writeTo
Write this instruction to the WASM module.- Specified by:
writeTo
in classWasmInstruction
- Parameters:
writer
- the target writer- Throws:
IOException
- if any I/O error occur
-
getPushValueType
AnyType getPushValueType()Get the ValueType if this instruction push a value on the stack.- Specified by:
getPushValueType
in classWasmInstruction
- Returns:
- the ValueType or null if no value is push
-
getPopCount
int getPopCount()Get the count of values that are removed from the stack.- Specified by:
getPopCount
in classWasmInstruction
- Returns:
- the count
-
getPopValueTypes
AnyType[] getPopValueTypes()- Specified by:
getPopValueTypes
in classWasmInstruction
-
countParams
private void countParams()Count the parameters in the signature
-