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.
- Burn coins of the current contract’s asset ID.
- 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.
- The 64-byte public key (x, y) recovered from 64-byte signature on 32-byte 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 a contract’s code as executable.
- 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.
- Mint coins of the current contract’s asset ID.
- 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.
- 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.
- 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.
- Burn coins of the current contract’s asset ID.
- 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.
- The 64-byte public key (x, y) recovered from 64-byte signature on 32-byte 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 a contract’s code as executable.
- 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.
- Mint coins of the current contract’s asset ID.
- 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.
- 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.
- Bitwise XORs two registers.
- Bitwise XORs a register and an immediate value.