Module fuel_asm::op

source ·
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.
  • Burns amount coins of the asset ID created from sub_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.
  • The 64-byte Secp256r1 public key (x, y) recovered from 64-byte signature on 32-byte message.
  • Verify ED25519 public key and signature match a 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.
  • Mints amount coins of the asset ID created from sub_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.
  • Burns amount coins of the asset ID created from sub_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.
  • The 64-byte Secp256r1 public key (x, y) recovered from 64-byte signature on 32-byte message.
  • Verify ED25519 public key and signature match a 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.
  • Mints amount coins of the asset ID created from sub_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.