Class WasmCallInstruction
- java.lang.Object
-
- de.inetsoftware.jwebassembly.module.WasmInstruction
-
- de.inetsoftware.jwebassembly.module.WasmCallInstruction
-
- Direct Known Subclasses:
WasmCallIndirectInstruction
class WasmCallInstruction extends WasmInstruction
WasmInstruction for a function call.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class de.inetsoftware.jwebassembly.module.WasmInstruction
WasmInstruction.Type
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
comment
private FunctionName
name
private boolean
needThisParameter
private int
paramCount
private TypeManager
types
private AnyType
valueType
-
Constructor Summary
Constructors Constructor Description WasmCallInstruction(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, java.lang.String comment)
Create an instance of a function call instruction
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
countParams()
Count the parameters in the signature(package private) FunctionName
getFunctionName()
Get the function name that should be called(package private) int
getPopCount()
Get the count of values that are removed from the stack.(package private) AnyType[]
getPopValueTypes()
(package private) AnyType
getPushValueType()
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
getTypeManager()
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 Detail
-
valueType
private AnyType valueType
-
name
private FunctionName name
-
paramCount
private int paramCount
-
types
@Nonnull private final TypeManager types
-
needThisParameter
private final boolean needThisParameter
-
comment
private final java.lang.String comment
-
-
Constructor Detail
-
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, java.lang.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 Detail
-
getType
WasmInstruction.Type getType()
Get the type of instruction- Specified by:
getType
in classWasmInstruction
- Returns:
- the type
-
getFunctionName
@Nonnull FunctionName getFunctionName()
Get the function name that should be called- Returns:
- the name
-
getTypeManager
TypeManager getTypeManager()
Get the type manager.- Returns:
- the manager
-
writeTo
public void writeTo(@Nonnull ModuleWriter writer) throws java.io.IOException
Write this instruction to the WASM module.- Specified by:
writeTo
in classWasmInstruction
- Parameters:
writer
- the target writer- Throws:
java.io.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
-
-