Monero
Classes | Functions | Variables
perf-simulation.cpp File Reference
#include "utility.hpp"
#include "../common.hpp"
#include "../aes_hash.hpp"
#include "../program.hpp"
#include "../blake2/blake2.h"
#include <algorithm>
#include <iomanip>
#include "../bytecode_machine.hpp"
Include dependency graph for perf-simulation.cpp:

Classes

struct  RegisterUsage
 

Functions

int analyze (randomx::Program &p)
 
int executeInOrder (randomx::Program &p, randomx::Program &original, bool print, int executionPorts, int memoryPorts, bool speculate, int pipeline)
 
int executeOutOfOrder (randomx::Program &p, randomx::Program &original, bool print, int executionPorts, int memoryPorts, bool speculate, int pipeline)
 
void generate (randomx::Program &p, uint32_t nonce)
 
bool has (randomx::Instruction &instr, uint32_t mask, uint32_t prop)
 
bool has (randomx::Instruction &instr, uint32_t prop)
 
int main (int argc, char **argv)
 
int getConditionRegister (RegisterUsage(&registerUsage)[randomx::RegistersCount])
 

Variables

constexpr uint32_t DST_NOP = 0
 
constexpr uint32_t DST_INT = 1
 
constexpr uint32_t DST_FLT = 2
 
constexpr uint32_t DST_MEM = 3
 
constexpr uint32_t MASK_DST = 3
 
constexpr uint32_t SRC_NOP = 0
 
constexpr uint32_t SRC_INT = 4
 
constexpr uint32_t SRC_FLT = 8
 
constexpr uint32_t SRC_MEM = 12
 
constexpr uint32_t MASK_SRC = 12
 
constexpr uint32_t OP_CFROUND = 16
 
constexpr uint32_t OP_SWAP = 32
 
constexpr uint32_t OP_BRANCH = 48
 
constexpr uint32_t MASK_EXT = 48
 
constexpr uint32_t OP_FLOAT = 64
 
constexpr uint32_t BRANCH_TARGET = 128
 

Function Documentation

◆ analyze()

int analyze ( randomx::Program p)

◆ executeInOrder()

int executeInOrder ( randomx::Program p,
randomx::Program original,
bool  print,
int  executionPorts,
int  memoryPorts,
bool  speculate,
int  pipeline 
)

◆ executeOutOfOrder()

int executeOutOfOrder ( randomx::Program p,
randomx::Program original,
bool  print,
int  executionPorts,
int  memoryPorts,
bool  speculate,
int  pipeline 
)

◆ generate()

void generate ( randomx::Program p,
uint32_t  nonce 
)

◆ getConditionRegister()

int getConditionRegister ( RegisterUsage(&)  registerUsage[randomx::RegistersCount])
inline

◆ has() [1/2]

bool has ( randomx::Instruction instr,
uint32_t  mask,
uint32_t  prop 
)

◆ has() [2/2]

bool has ( randomx::Instruction instr,
uint32_t  prop 
)

◆ main()

int main ( int  argc,
char **  argv 
)

Variable Documentation

◆ BRANCH_TARGET

constexpr uint32_t BRANCH_TARGET = 128

◆ DST_FLT

constexpr uint32_t DST_FLT = 2

◆ DST_INT

constexpr uint32_t DST_INT = 1

◆ DST_MEM

constexpr uint32_t DST_MEM = 3

◆ DST_NOP

constexpr uint32_t DST_NOP = 0

◆ MASK_DST

constexpr uint32_t MASK_DST = 3

◆ MASK_EXT

constexpr uint32_t MASK_EXT = 48

◆ MASK_SRC

constexpr uint32_t MASK_SRC = 12

◆ OP_BRANCH

constexpr uint32_t OP_BRANCH = 48

◆ OP_CFROUND

constexpr uint32_t OP_CFROUND = 16

◆ OP_FLOAT

constexpr uint32_t OP_FLOAT = 64

◆ OP_SWAP

constexpr uint32_t OP_SWAP = 32

◆ SRC_FLT

constexpr uint32_t SRC_FLT = 8

◆ SRC_INT

constexpr uint32_t SRC_INT = 4

◆ SRC_MEM

constexpr uint32_t SRC_MEM = 12

◆ SRC_NOP

constexpr uint32_t SRC_NOP = 0