Fabcoin Core  0.16.2
P2P Digital Currency
Namespaces | Macros | Enumerations | Functions
Instruction.h File Reference
#include "Common.h"
Include dependency graph for Instruction.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 llvm
 
 dev
 Adapted from code found on http://stackoverflow.com/questions/180947/base64-decode-snippet-in-c Originally by RenĂ© Nyffenegger.
 
 dev::evmjit
 

Macros

#define ANY_PUSH
 
#define ANY_DUP
 
#define ANY_SWAP
 

Enumerations

enum  dev::evmjit::Instruction : uint8_t {
  dev::evmjit::Instruction::STOP = 0x00, dev::evmjit::Instruction::ADD, dev::evmjit::Instruction::MUL, dev::evmjit::Instruction::SUB,
  dev::evmjit::Instruction::DIV, dev::evmjit::Instruction::SDIV, dev::evmjit::Instruction::MOD, dev::evmjit::Instruction::SMOD,
  dev::evmjit::Instruction::ADDMOD, dev::evmjit::Instruction::MULMOD, dev::evmjit::Instruction::EXP, dev::evmjit::Instruction::SIGNEXTEND,
  dev::evmjit::Instruction::LT = 0x10, dev::evmjit::Instruction::GT, dev::evmjit::Instruction::SLT, dev::evmjit::Instruction::SGT,
  dev::evmjit::Instruction::EQ, dev::evmjit::Instruction::ISZERO, dev::evmjit::Instruction::AND, dev::evmjit::Instruction::OR,
  dev::evmjit::Instruction::XOR, dev::evmjit::Instruction::NOT, dev::evmjit::Instruction::BYTE, dev::evmjit::Instruction::SHA3 = 0x20,
  dev::evmjit::Instruction::ADDRESS = 0x30, dev::evmjit::Instruction::BALANCE, dev::evmjit::Instruction::ORIGIN, dev::evmjit::Instruction::CALLER,
  dev::evmjit::Instruction::CALLVALUE, dev::evmjit::Instruction::CALLDATALOAD, dev::evmjit::Instruction::CALLDATASIZE, dev::evmjit::Instruction::CALLDATACOPY,
  dev::evmjit::Instruction::CODESIZE, dev::evmjit::Instruction::CODECOPY, dev::evmjit::Instruction::GASPRICE, dev::evmjit::Instruction::EXTCODESIZE,
  dev::evmjit::Instruction::EXTCODECOPY, dev::evmjit::Instruction::BLOCKHASH = 0x40, dev::evmjit::Instruction::COINBASE, dev::evmjit::Instruction::TIMESTAMP,
  dev::evmjit::Instruction::NUMBER, dev::evmjit::Instruction::DIFFICULTY, dev::evmjit::Instruction::GASLIMIT, dev::evmjit::Instruction::POP = 0x50,
  dev::evmjit::Instruction::MLOAD, dev::evmjit::Instruction::MSTORE, dev::evmjit::Instruction::MSTORE8, dev::evmjit::Instruction::SLOAD,
  dev::evmjit::Instruction::SSTORE, dev::evmjit::Instruction::JUMP, dev::evmjit::Instruction::JUMPI, dev::evmjit::Instruction::PC,
  dev::evmjit::Instruction::MSIZE, dev::evmjit::Instruction::GAS, dev::evmjit::Instruction::JUMPDEST, dev::evmjit::Instruction::PUSH1 = 0x60,
  dev::evmjit::Instruction::PUSH2, dev::evmjit::Instruction::PUSH3, dev::evmjit::Instruction::PUSH4, dev::evmjit::Instruction::PUSH5,
  dev::evmjit::Instruction::PUSH6, dev::evmjit::Instruction::PUSH7, dev::evmjit::Instruction::PUSH8, dev::evmjit::Instruction::PUSH9,
  dev::evmjit::Instruction::PUSH10, dev::evmjit::Instruction::PUSH11, dev::evmjit::Instruction::PUSH12, dev::evmjit::Instruction::PUSH13,
  dev::evmjit::Instruction::PUSH14, dev::evmjit::Instruction::PUSH15, dev::evmjit::Instruction::PUSH16, dev::evmjit::Instruction::PUSH17,
  dev::evmjit::Instruction::PUSH18, dev::evmjit::Instruction::PUSH19, dev::evmjit::Instruction::PUSH20, dev::evmjit::Instruction::PUSH21,
  dev::evmjit::Instruction::PUSH22, dev::evmjit::Instruction::PUSH23, dev::evmjit::Instruction::PUSH24, dev::evmjit::Instruction::PUSH25,
  dev::evmjit::Instruction::PUSH26, dev::evmjit::Instruction::PUSH27, dev::evmjit::Instruction::PUSH28, dev::evmjit::Instruction::PUSH29,
  dev::evmjit::Instruction::PUSH30, dev::evmjit::Instruction::PUSH31, dev::evmjit::Instruction::PUSH32, dev::evmjit::Instruction::DUP1 = 0x80,
  dev::evmjit::Instruction::DUP2, dev::evmjit::Instruction::DUP3, dev::evmjit::Instruction::DUP4, dev::evmjit::Instruction::DUP5,
  dev::evmjit::Instruction::DUP6, dev::evmjit::Instruction::DUP7, dev::evmjit::Instruction::DUP8, dev::evmjit::Instruction::DUP9,
  dev::evmjit::Instruction::DUP10, dev::evmjit::Instruction::DUP11, dev::evmjit::Instruction::DUP12, dev::evmjit::Instruction::DUP13,
  dev::evmjit::Instruction::DUP14, dev::evmjit::Instruction::DUP15, dev::evmjit::Instruction::DUP16, dev::evmjit::Instruction::SWAP1 = 0x90,
  dev::evmjit::Instruction::SWAP2, dev::evmjit::Instruction::SWAP3, dev::evmjit::Instruction::SWAP4, dev::evmjit::Instruction::SWAP5,
  dev::evmjit::Instruction::SWAP6, dev::evmjit::Instruction::SWAP7, dev::evmjit::Instruction::SWAP8, dev::evmjit::Instruction::SWAP9,
  dev::evmjit::Instruction::SWAP10, dev::evmjit::Instruction::SWAP11, dev::evmjit::Instruction::SWAP12, dev::evmjit::Instruction::SWAP13,
  dev::evmjit::Instruction::SWAP14, dev::evmjit::Instruction::SWAP15, dev::evmjit::Instruction::SWAP16, dev::evmjit::Instruction::LOG0 = 0xa0,
  dev::evmjit::Instruction::LOG1, dev::evmjit::Instruction::LOG2, dev::evmjit::Instruction::LOG3, dev::evmjit::Instruction::LOG4,
  dev::evmjit::Instruction::CREATE = 0xf0, dev::evmjit::Instruction::CALL, dev::evmjit::Instruction::CALLCODE, dev::evmjit::Instruction::RETURN,
  dev::evmjit::Instruction::DELEGATECALL, dev::evmjit::Instruction::SUICIDE = 0xff
}
 Virtual machine bytecode instruction. More...
 

Functions

llvm::APInt dev::evmjit::readPushData (code_iterator &_curr, code_iterator _end)
 Reads PUSH data from pointed fragment of bytecode and constructs number out of it Reading out of bytecode means reading 0. More...
 
void dev::evmjit::skipPushData (code_iterator &_curr, code_iterator _end)
 Skips PUSH data in pointed fragment of bytecode. More...
 

Macro Definition Documentation

#define ANY_DUP
Value:
DUP1: \
case Instruction::DUP2: \
case Instruction::DUP3: \
case Instruction::DUP4: \
case Instruction::DUP5: \
case Instruction::DUP6: \
case Instruction::DUP7: \
case Instruction::DUP8: \
case Instruction::DUP9: \
case Instruction::DUP10: \
case Instruction::DUP11: \
case Instruction::DUP12: \
case Instruction::DUP13: \
case Instruction::DUP14: \
case Instruction::DUP15: \
case Instruction::DUP16
copies the highest item in the stack to the top of the stack

Definition at line 202 of file Instruction.h.

#define ANY_PUSH

Definition at line 169 of file Instruction.h.

#define ANY_SWAP
Value:
case Instruction::SWAP2: \
case Instruction::SWAP3: \
case Instruction::SWAP4: \
case Instruction::SWAP5: \
case Instruction::SWAP6: \
case Instruction::SWAP7: \
case Instruction::SWAP8: \
case Instruction::SWAP9: \
case Instruction::SWAP10: \
case Instruction::SWAP11: \
case Instruction::SWAP12: \
case Instruction::SWAP13: \
case Instruction::SWAP14: \
case Instruction::SWAP15: \
case Instruction::SWAP16
swaps the highest and second highest value on the stack

Definition at line 219 of file Instruction.h.