Class WasmLocalInstruction
- java.lang.Object
-
- de.inetsoftware.jwebassembly.module.WasmInstruction
-
- de.inetsoftware.jwebassembly.module.WasmLocalInstruction
-
- Direct Known Subclasses:
WasmLoadStoreInstruction
class WasmLocalInstruction extends WasmInstruction
WasmInstruction for load and store local variables.
-
-
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 int
idx
The variable slot (Java) for WasmLoadStoreInstruction and the WebAssembly variable index for a WasmLocalInstruction instance.(package private) LocaleVariableManager
localVariables
private VariableOperator
op
private AnyType
pushValueType
-
Constructor Summary
Constructors Constructor Description WasmLocalInstruction(VariableOperator op, int idx, LocaleVariableManager localVariables, int javaCodePos, int lineNumber)
Create an instance of a load/store instruction for a local variable.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) int
getIndex()
Get the number of the locals(package private) VariableOperator
getOperator()
Get the operator(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) int
getSlot()
Get the slot of the locals(package private) WasmInstruction.Type
getType()
Get the type of instruction(package private) void
setOperator(VariableOperator op)
Set the operatorvoid
writeTo(ModuleWriter writer)
Write this instruction to the WASM module.-
Methods inherited from class de.inetsoftware.jwebassembly.module.WasmInstruction
getCodePosition, getLineNumber, setCodePosition
-
-
-
-
Field Detail
-
op
@Nonnull private VariableOperator op
-
idx
private int idx
The variable slot (Java) for WasmLoadStoreInstruction and the WebAssembly variable index for a WasmLocalInstruction instance.
-
localVariables
final LocaleVariableManager localVariables
-
pushValueType
private AnyType pushValueType
-
-
Constructor Detail
-
WasmLocalInstruction
WasmLocalInstruction(@Nonnull VariableOperator op, @Nonnegative int idx, LocaleVariableManager localVariables, int javaCodePos, int lineNumber)
Create an instance of a load/store instruction for a local variable.- Parameters:
op
- the operationidx
- the memory/slot idx of the variablelocalVariables
- the manager for local variablesjavaCodePos
- the code position/offset in the Java methodlineNumber
- the line number in the Java source code
-
-
Method Detail
-
getType
WasmInstruction.Type getType()
Get the type of instruction- Specified by:
getType
in classWasmInstruction
- Returns:
- the type
-
getOperator
@Nonnull VariableOperator getOperator()
Get the operator- Returns:
- the operator
-
setOperator
void setOperator(@Nonnull VariableOperator op)
Set the operator- Parameters:
op
- the operator
-
getSlot
@Nonnegative int getSlot()
Get the slot of the locals- Returns:
- the Java slot for the variable
-
getIndex
@Nonnegative int getIndex()
Get the number of the locals- Returns:
- the index, mostly the Wasm Index
-
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
-
-