burrow: github.com/hyperledger/burrow/execution/evm/asm Index | Files | Directories

package asm

import "github.com/hyperledger/burrow/execution/evm/asm"

Index

Package Files

opcodes.go

Constants

const (
    // 0xf0 range - closures
    CREATE OpCode = 0xf0 + iota
    CALL
    CALLCODE
    RETURN
    DELEGATECALL

    // 0x70 range - other
    STATICCALL   = 0xfa
    CREATE2      = 0xfb
    REVERT       = 0xfd
    INVALID      = 0xfe
    SELFDESTRUCT = 0xff
)

type OpCode Uses

type OpCode byte
const (
    // Op codes
    // 0x0 range - arithmetic ops
    STOP OpCode = iota
    ADD
    MUL
    SUB
    DIV
    SDIV
    MOD
    SMOD
    ADDMOD
    MULMOD
    EXP
    SIGNEXTEND
)
const (
    LT  OpCode = iota + 0x10
    GT
    SLT
    SGT
    EQ
    ISZERO
    AND
    OR
    XOR
    NOT
    BYTE
    SHL
    SHR
    SAR

    SHA3 = 0x20
)
const (
    // 0x30 range - closure state
    ADDRESS OpCode = 0x30 + iota
    BALANCE
    ORIGIN
    CALLER
    CALLVALUE
    CALLDATALOAD
    CALLDATASIZE
    CALLDATACOPY
    CODESIZE
    CODECOPY
    GASPRICE_DEPRECATED
    EXTCODESIZE
    EXTCODECOPY
    RETURNDATASIZE
    RETURNDATACOPY
    EXTCODEHASH // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1052.md
)
const (
    // 0x40 range - block operations
    BLOCKHASH OpCode = 0x40 + iota
    COINBASE
    TIMESTAMP
    BLOCKHEIGHT
    DIFFICULTY_DEPRECATED
    GASLIMIT
)
const (
    // 0x50 range - 'storage' and execution
    POP OpCode = 0x50 + iota
    MLOAD
    MSTORE
    MSTORE8
    SLOAD
    SSTORE
    JUMP
    JUMPI
    PC
    MSIZE
    GAS
    JUMPDEST
)
const (
    // 0x60 range
    PUSH1 OpCode = 0x60 + iota
    PUSH2
    PUSH3
    PUSH4
    PUSH5
    PUSH6
    PUSH7
    PUSH8
    PUSH9
    PUSH10
    PUSH11
    PUSH12
    PUSH13
    PUSH14
    PUSH15
    PUSH16
    PUSH17
    PUSH18
    PUSH19
    PUSH20
    PUSH21
    PUSH22
    PUSH23
    PUSH24
    PUSH25
    PUSH26
    PUSH27
    PUSH28
    PUSH29
    PUSH30
    PUSH31
    PUSH32
    DUP1
    DUP2
    DUP3
    DUP4
    DUP5
    DUP6
    DUP7
    DUP8
    DUP9
    DUP10
    DUP11
    DUP12
    DUP13
    DUP14
    DUP15
    DUP16
    SWAP1
    SWAP2
    SWAP3
    SWAP4
    SWAP5
    SWAP6
    SWAP7
    SWAP8
    SWAP9
    SWAP10
    SWAP11
    SWAP12
    SWAP13
    SWAP14
    SWAP15
    SWAP16
)
const (
    LOG0 OpCode = 0xa0 + iota
    LOG1
    LOG2
    LOG3
    LOG4
)

func GetOpCode Uses

func GetOpCode(b byte) (OpCode, bool)

func (OpCode) Name Uses

func (o OpCode) Name() string

func (OpCode) Pushes Uses

func (o OpCode) Pushes() int

If OpCode is a Push<N> returns the number of bytes pushed (between 1 and 32 inclusive)

func (OpCode) String Uses

func (o OpCode) String() string

Directories

PathSynopsis
bc

Package asm imports 1 packages (graph) and is imported by 16 packages. Updated 2019-10-17. Refresh now. Tools for package owners.