Expand description
Definitions and implementations for each unique instruction type, one for each
unique Opcode
variant.
Structs§
- Adds two registers.
- Adds a register and an immediate value.
- Allocate a number of bytes from the heap.
- Bitwise ANDs two registers.
- Bitwise ANDs a register and an immediate value.
- Get the balance of contract of an asset ID.
- Get current block height.
- Get block header hash for height.
- Load blob as data
- Get blob size
- Burns
amount
coins of the asset ID created fromsub_id
for the current contract. - Call a contract.
- Get current block proposer’s address.
- Copy contract code for a contract.
- Extend the current call frame’s stack
- Extend the current call frame’s stack by an immediate value.
- Shrink the current call frame’s stack
- Shrink the current call frame’s stack by an immediate value.
- Get code root of a contract.
- Get code size of a contract.
- Divides two registers.
- Divides a register and an immediate value.
- Call external function
- The 64-byte public key (x, y) recovered from 64-byte signature on 32-byte message hash.
- The 64-byte Secp256r1 public key (x, y) recovered from 64-byte signature on 32-byte message hash.
- Verify ED25519 public key and signature match a message.
- Compares two registers for equality.
- Raises one register to the power of another.
- Raises one register to the power of an immediate value.
- Set flag register to a register.
- Get metadata from memory.
- Compares two registers for greater-than.
- Get transaction fields.
- Jump.
- Dynamic jump.
- Unconditional dynamic relative jump backwards, with a constant offset.
- Unconditional dynamic relative jump forwards, with a constant offset.
- Conditional dynamic jump.
- Dynamic relative jump backwards, conditional on comparsion, with a constant offset.
- Dynamic relative jump forwards, conditional on comparsion, with a constant offset.
- Conditional jump.
- Dynamic relative jump backwards, conditional against zero, with a constant offset.
- Dynamic relative jump forwards, conditional against zero, with a constant offset.
- Conditional jump against zero.
- The keccak-256 hash of a slice.
- A byte is loaded from the specified address offset by an immediate value.
- Load code as executable either from contract, blob, or memory.
- Log an event.
- Log data.
- Compares two registers for less-than.
- A word is loaded from the specified address offset by an immediate value.
- Clear a variable number of bytes in memory.
- Clear an immediate number of bytes in memory.
- Copy a variable number of bytes in memory.
- Copy an immediate number of bytes in memory.
- Compare bytes in memory.
- Mints
amount
coins of the asset ID created fromsub_id
for the current contract. - Fused multiply-divide with arbitrary precision intermediate step.
- The integer logarithm of a register.
- Modulo remainder of two registers.
- Modulo remainder of a register and an immediate value.
- Copy from one register to another.
- Copy immediate value into a register
- The integer root of a register.
- Multiplies two registers.
- Multiplies a register and an immediate value.
- Performs no operation.
- Bitwise NOT a register.
- Bitwise ORs two registers.
- Bitwise ORs a register and an immediate value.
- Pop a bitmask-selected set of registers in range 40..64 to the stack.
- Pop a bitmask-selected set of registers in range 16..40 to the stack.
- Push a bitmask-selected set of registers in range 40..64 to the stack.
- Push a bitmask-selected set of registers in range 16..40 to the stack.
- Return from context.
- Return from context with data.
- Halt execution, reverting state changes and returning a value.
- The SHA-2-256 hash of a slice.
- Write the least significant byte of a register to memory.
- Clear a series of slots from contract storage.
- Left shifts a register by a register.
- Left shifts a register by an immediate value.
- Send a message to recipient address with call abi, coins, and output.
- Right shifts a register by a register.
- Right shifts a register by an immediate value.
- Load a word from contract storage.
- Load a series of 32 byte slots from contract storage.
- Subtracts two registers.
- Subtracts a register and an immediate value.
- Write a register to memory.
- Store a word in contract storage.
- Store a series of 32 byte slots in contract storage.
- Get timestamp of block at given height.
- Transfer coins to a contract unconditionally.
- Transfer coins to a variable output.
- AddMod 128bit
- Compare 128bit integers
- Divide 128bit
- Fused multiply-divide 128bit
- Multiply 128bit
- MulMod 128bit
- Simple 128bit operations
- AddMod 256bit
- Compare 256bit integers
- Divide 256bit
- Fused multiply-divide 256bit
- Multiply 256bit
- MulMod 256bit
- Simple 256bit operations
- Bitwise XORs two registers.
- Bitwise XORs a register and an immediate value.
Functions§
- Adds two registers.
- Adds a register and an immediate value.
- Allocate a number of bytes from the heap.
- Bitwise ANDs two registers.
- Bitwise ANDs a register and an immediate value.
- Get the balance of contract of an asset ID.
- Get current block height.
- Get block header hash for height.
- Load blob as data
- Get blob size
- Burns
amount
coins of the asset ID created fromsub_id
for the current contract. - Call a contract.
- Get current block proposer’s address.
- Copy contract code for a contract.
- Extend the current call frame’s stack
- Extend the current call frame’s stack by an immediate value.
- Shrink the current call frame’s stack
- Shrink the current call frame’s stack by an immediate value.
- Get code root of a contract.
- Get code size of a contract.
- Divides two registers.
- Divides a register and an immediate value.
- Call external function
- The 64-byte public key (x, y) recovered from 64-byte signature on 32-byte message hash.
- The 64-byte Secp256r1 public key (x, y) recovered from 64-byte signature on 32-byte message hash.
- Verify ED25519 public key and signature match a message.
- Compares two registers for equality.
- Raises one register to the power of another.
- Raises one register to the power of an immediate value.
- Set flag register to a register.
- Get metadata from memory.
- Construct a
GM
instruction from its arguments. - Compares two registers for greater-than.
- Get transaction fields.
- Construct a
GM
instruction from its arguments. - Jump.
- Dynamic jump.
- Unconditional dynamic relative jump backwards, with a constant offset.
- Unconditional dynamic relative jump forwards, with a constant offset.
- Conditional dynamic jump.
- Dynamic relative jump backwards, conditional on comparsion, with a constant offset.
- Dynamic relative jump forwards, conditional on comparsion, with a constant offset.
- Conditional jump.
- Dynamic relative jump backwards, conditional against zero, with a constant offset.
- Dynamic relative jump forwards, conditional against zero, with a constant offset.
- Conditional jump against zero.
- The keccak-256 hash of a slice.
- A byte is loaded from the specified address offset by an immediate value.
- Load code as executable either from contract, blob, or memory.
- Log an event.
- Log data.
- Compares two registers for less-than.
- A word is loaded from the specified address offset by an immediate value.
- Clear a variable number of bytes in memory.
- Clear an immediate number of bytes in memory.
- Copy a variable number of bytes in memory.
- Copy an immediate number of bytes in memory.
- Compare bytes in memory.
- Mints
amount
coins of the asset ID created fromsub_id
for the current contract. - Fused multiply-divide with arbitrary precision intermediate step.
- The integer logarithm of a register.
- Modulo remainder of two registers.
- Modulo remainder of a register and an immediate value.
- Copy from one register to another.
- Copy immediate value into a register
- The integer root of a register.
- Multiplies two registers.
- Multiplies a register and an immediate value.
- Performs no operation.
- Bitwise NOT a register.
- Bitwise ORs two registers.
- Bitwise ORs a register and an immediate value.
- Pop a bitmask-selected set of registers in range 40..64 to the stack.
- Pop a bitmask-selected set of registers in range 16..40 to the stack.
- Push a bitmask-selected set of registers in range 40..64 to the stack.
- Push a bitmask-selected set of registers in range 16..40 to the stack.
- Return from context.
- Return from context with data.
- Halt execution, reverting state changes and returning a value.
- The SHA-2-256 hash of a slice.
- Write the least significant byte of a register to memory.
- Clear a series of slots from contract storage.
- Left shifts a register by a register.
- Left shifts a register by an immediate value.
- Send a message to recipient address with call abi, coins, and output.
- Right shifts a register by a register.
- Right shifts a register by an immediate value.
- Load a word from contract storage.
- Load a series of 32 byte slots from contract storage.
- Subtracts two registers.
- Subtracts a register and an immediate value.
- Write a register to memory.
- Store a word in contract storage.
- Store a series of 32 byte slots in contract storage.
- Get timestamp of block at given height.
- Transfer coins to a contract unconditionally.
- Transfer coins to a variable output.
- AddMod 128bit
- Compare 128bit integers
- Construct a
WDCM
instruction from its arguments. - Divide 128bit
- Construct a
WDDV
instruction from its arguments. - Fused multiply-divide 128bit
- Multiply 128bit
- Construct a
WDML
instruction from its arguments. - MulMod 128bit
- Simple 128bit operations
- Construct a
WDOP
instruction from its arguments. - AddMod 256bit
- Compare 256bit integers
- Construct a
WQCM
instruction from its arguments. - Divide 256bit
- Construct a
WQDV
instruction from its arguments. - Fused multiply-divide 256bit
- Multiply 256bit
- Construct a
WQML
instruction from its arguments. - MulMod 256bit
- Simple 256bit operations
- Construct a
WQOP
instruction from its arguments. - Bitwise XORs two registers.
- Bitwise XORs a register and an immediate value.