Monero
Classes | Namespaces | Macros | Typedefs | Functions | Variables
bytecode_machine.hpp File Reference
#include "common.hpp"
#include "intrin_portable.h"
#include "instruction.hpp"
#include "program.hpp"
Include dependency graph for bytecode_machine.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  randomx::NativeRegisterFile
 
struct  randomx::InstructionByteCode
 
class  randomx::BytecodeMachine
 

Namespaces

 randomx
 

Macros

#define OPCODE_CEIL_DECLARE(curr, prev)   constexpr int ceil_ ## curr = ceil_ ## prev + RANDOMX_FREQ_ ## curr;
 
#define RANDOMX_EXE_ARGS   InstructionByteCode& ibc, int& pc, uint8_t* scratchpad, ProgramConfiguration& config
 
#define RANDOMX_GEN_ARGS   Instruction& instr, int i, InstructionByteCode& ibc
 

Typedefs

typedef void(BytecodeMachine::* randomx::InstructionGenBytecode) (RANDOMX_GEN_ARGS)
 

Functions

 randomx::OPCODE_CEIL_DECLARE (IADD_RS, NULL)
 
 randomx::OPCODE_CEIL_DECLARE (IADD_M, IADD_RS)
 
 randomx::OPCODE_CEIL_DECLARE (ISUB_R, IADD_M)
 
 randomx::OPCODE_CEIL_DECLARE (ISUB_M, ISUB_R)
 
 randomx::OPCODE_CEIL_DECLARE (IMUL_R, ISUB_M)
 
 randomx::OPCODE_CEIL_DECLARE (IMUL_M, IMUL_R)
 
 randomx::OPCODE_CEIL_DECLARE (IMULH_R, IMUL_M)
 
 randomx::OPCODE_CEIL_DECLARE (IMULH_M, IMULH_R)
 
 randomx::OPCODE_CEIL_DECLARE (ISMULH_R, IMULH_M)
 
 randomx::OPCODE_CEIL_DECLARE (ISMULH_M, ISMULH_R)
 
 randomx::OPCODE_CEIL_DECLARE (IMUL_RCP, ISMULH_M)
 
 randomx::OPCODE_CEIL_DECLARE (INEG_R, IMUL_RCP)
 
 randomx::OPCODE_CEIL_DECLARE (IXOR_R, INEG_R)
 
 randomx::OPCODE_CEIL_DECLARE (IXOR_M, IXOR_R)
 
 randomx::OPCODE_CEIL_DECLARE (IROR_R, IXOR_M)
 
 randomx::OPCODE_CEIL_DECLARE (IROL_R, IROR_R)
 
 randomx::OPCODE_CEIL_DECLARE (ISWAP_R, IROL_R)
 
 randomx::OPCODE_CEIL_DECLARE (FSWAP_R, ISWAP_R)
 
 randomx::OPCODE_CEIL_DECLARE (FADD_R, FSWAP_R)
 
 randomx::OPCODE_CEIL_DECLARE (FADD_M, FADD_R)
 
 randomx::OPCODE_CEIL_DECLARE (FSUB_R, FADD_M)
 
 randomx::OPCODE_CEIL_DECLARE (FSUB_M, FSUB_R)
 
 randomx::OPCODE_CEIL_DECLARE (FSCAL_R, FSUB_M)
 
 randomx::OPCODE_CEIL_DECLARE (FMUL_R, FSCAL_R)
 
 randomx::OPCODE_CEIL_DECLARE (FDIV_M, FMUL_R)
 
 randomx::OPCODE_CEIL_DECLARE (FSQRT_R, FDIV_M)
 
 randomx::OPCODE_CEIL_DECLARE (CBRANCH, FSQRT_R)
 
 randomx::OPCODE_CEIL_DECLARE (CFROUND, CBRANCH)
 
 randomx::OPCODE_CEIL_DECLARE (ISTORE, CFROUND)
 
 randomx::OPCODE_CEIL_DECLARE (NOP, ISTORE)
 

Variables

constexpr int randomx::ceil_NULL = 0
 

Macro Definition Documentation

◆ OPCODE_CEIL_DECLARE

#define OPCODE_CEIL_DECLARE (   curr,
  prev 
)    constexpr int ceil_ ## curr = ceil_ ## prev + RANDOMX_FREQ_ ## curr;

◆ RANDOMX_EXE_ARGS

#define RANDOMX_EXE_ARGS   InstructionByteCode& ibc, int& pc, uint8_t* scratchpad, ProgramConfiguration& config

◆ RANDOMX_GEN_ARGS

#define RANDOMX_GEN_ARGS   Instruction& instr, int i, InstructionByteCode& ibc