QuISP
Loading...
Searching...
No Matches
opcode.h File Reference
#include <sstream>
#include <string>
#include <tuple>
#include <variant>
#include "macro_utils.h"
#include "types.h"
#include "def_opcodes.h"
#include "def_instructions.h"
Include dependency graph for opcode.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  quisp::runtime::Op< I >
 
struct  quisp::runtime::Instruction< OpLit, Operands >
 This class represents IR (intermediate representation) instruction. Program consists of Instructions. More...
 

Namespaces

namespace  quisp
 
namespace  quisp::runtime
 

Macros

#define OP(Opcode)
 
#define OP_LAST   OP
 
#define OP(Opcode)
 
#define OP_LAST   OP
 
#define OP(Opcode)
 
#define OP_LAST(Opcode)
 
#define INSTR(Opcode, ...)
 
#define INSTR_LAST   INSTR
 
#define INSTR(Opcode, ...)
 
#define INSTR_LAST(Opcode, ...)
 

Typedefs

using quisp::runtime::InstructionTypes
 a variant that is capable of storing all instructions
 

Enumerations

enum  quisp::runtime::OpType : int
 

Variables

static const std::string quisp::runtime::OpTypeStr []
 

Macro Definition Documentation

◆ INSTR [1/2]

#define INSTR ( Opcode,
... )
Value:
using INSTRUCTION_TYPE_ALIAS(Opcode, __VA_ARGS__) = Instruction<OP_##Opcode, __VA_ARGS__>;
#define INSTRUCTION_TYPE_ALIAS(...)
Definition macro_utils.h:28

◆ INSTR [2/2]

#define INSTR ( Opcode,
... )
Value:
INSTRUCTION_TYPE_ALIAS(Opcode, __VA_ARGS__),

◆ INSTR_LAST [1/2]

#define INSTR_LAST   INSTR

◆ INSTR_LAST [2/2]

#define INSTR_LAST ( Opcode,
... )
Value:
INSTRUCTION_TYPE_ALIAS(Opcode, __VA_ARGS__)

◆ OP [1/3]

#define OP ( Opcode)
Value:
Opcode,

◆ OP [2/3]

#define OP ( Opcode)
Value:
#Opcode,

◆ OP [3/3]

#define OP ( Opcode)
Value:
using OP_##Opcode = Op<OpType::Opcode>;

◆ OP_LAST [1/3]

#define OP_LAST   OP

◆ OP_LAST [2/3]

#define OP_LAST   OP

◆ OP_LAST [3/3]

#define OP_LAST ( Opcode)
Value:
using OP_##Opcode = Op<OpType::Opcode>;