IL Statements. NOTE: You MUST create Expr/Stmt through the AST module. *NEVER* directly construct Expr nor Stmt.
Union case | Description |
Full Usage:
IEMark uint32
Parameters:
uint32
|
Metadata representing the end of a machine instruction. It contains the length of the current instruction.
|
Full Usage:
ISMark uint32
Parameters:
uint32
|
Metadata representing the start of a machine instruction. More specifically, it contains the length of the instruction. There must be a single IMark per a machine instruction.
|
|
This is an unconditional jump instruction to another instruction. This is an inter-instruction jump unlike Jmp statement. The first argument is the jump target address.
|
This statement represents a jump (unconditional) to an LMark. The first argument specifies the target address.
|
|
|
Metadata representing a label (as in an assembly language). LMark is only valid within a machine instruction.
|
This statement puts a value into a register. The first argument is a destination operand, and the second argument is a source operand. The destination operand should have either a Var or a TempVar. Example: [Put(T_1:I32, Load(LE, T_2:I32))] loads a 32-bit value from the address T2, and store the value to the temporary register T1. |
|
|
|