6#include <unordered_map>
bool is_active(size_t index) const
bool need_tag_check(size_t index) const
size_t num_outputs() const
RegisterInfo & add_output()
size_t num_inputs() const
RegisterInfo & add_inputs(const std::vector< std::optional< ValueTag > > &tags)
bool operator==(const RegisterInfo &other) const =default
size_t total_registers() const
std::optional< ValueTag > expected_tag(size_t index) const
bool is_write(size_t index) const
RegisterInfo & add_input(std::optional< ValueTag > tag=std::nullopt)
static constexpr auto ANY_TAG
std::vector< std::optional< ValueTag > > inputs
constexpr size_t NUM_OP_DC_SELECTORS
const std::unordered_map< WireOpCode, WireInstructionSpec > WIRE_INSTRUCTION_SPEC
const std::unordered_map< ExecutionOpCode, ExecInstructionSpec > EXEC_INSTRUCTION_SPEC
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
bool operator==(const GasInfo &other) const =default
RegisterInfo register_info
bool operator==(const ExecInstructionSpec &other) const =default
ExecutionOpCode exec_opcode
std::optional< uint8_t > tag_operand_idx
std::array< uint8_t, NUM_OP_DC_SELECTORS > op_dc_selectors
bool operator==(const WireInstructionSpec &other) const =default