Skip to main content

Module opcodes

Module opcodes 

Source
Expand description

Opcode patterns have the following meanings:

  • 00xxxxx operations do not shift the stack; constraint degree can be up to 2.
  • 010xxxx operations shift the stack the left; constraint degree can be up to 2.
  • 011xxxx operations shift the stack to the right; constraint degree can be up to 2.
  • 100xxx-: operations consume 4 range checks; constraint degree can be up to 3. These are used to encode most u32 operations.
  • 101xxx-: operations where constraint degree can be up to 3. These include control flow operations and some other operations requiring high degree constraints.
  • 11xxx–: operations where constraint degree can be up to 5. These include control flow operations and some other operations requiring very high degree constraints.

Constants§

ADD
ADVPOP
ADVPOPW
AND
ASSERT
CALL
CALLER
CLK
CRYPTOSTREAM
CSWAP
CSWAPW
DROP
DUP0
DUP1
DUP2
DUP3
DUP4
DUP5
DUP6
DUP7
DUP9
DUP11
DUP13
DUP15
DYN
DYNCALL
EMIT
END
EQ
EQZ
EVALCIRCUIT
EXPACC
EXT2MUL
FRIE2F4
HALT
HORNERBASE
HORNEREXT
HPERM
INCR
INV
JOIN
LOGPRECOMPILE
LOOP
MLOAD
MLOADW
MOVDN2
MOVDN3
MOVDN4
MOVDN5
MOVDN6
MOVDN7
MOVDN8
MOVUP2
MOVUP3
MOVUP4
MOVUP5
MOVUP6
MOVUP7
MOVUP8
MPVERIFY
MRUPDATE
MSTORE
MSTOREW
MSTREAM
MUL
NEG
NOOP
NOT
OR
PAD
PIPE
PUSH
REPEAT
RESPAN
SDEPTH
SPAN
SPLIT
SWAP
SWAPDW
SWAPW
SWAPW2
SWAPW3
SYSCALL
U32ADD
U32ADD3
U32AND
U32ASSERT2
U32DIV
U32MADD
U32MUL
U32SPLIT
U32SUB
U32XOR