20 CHECK_LE(val, std::min(
static_cast<size_t>(std::numeric_limits<N>::max()),
22 return static_cast<N>(val);
28 size_t value_in,
size_t effect_in,
size_t control_in,
29 size_t value_out,
size_t effect_out,
size_t control_out)
30 : mnemonic_(mnemonic),
32 properties_(properties),
33 value_in_(CheckRange<uint32_t>(value_in)),
34 effect_in_(CheckRange<uint32_t>(effect_in)),
35 control_in_(CheckRange<uint32_t>(control_in)),
36 value_out_(CheckRange<uint32_t>(value_out)),
37 effect_out_(CheckRange<uint8_t>(effect_out)),
38 control_out_(CheckRange<uint32_t>(control_out)) {}
52#define PRINT_PROP_IF_SET(name) \
53 if (HasProperty(Operator::k##name)) { \
59#undef PRINT_PROP_IF_SET
const char * mnemonic() const
virtual void PrintToImpl(std::ostream &os, PrintVerbosity verbose) const
void PrintPropsTo(std::ostream &os) const
void PrintTo(std::ostream &os, PrintVerbosity verbose=PrintVerbosity::kVerbose) const
Operator(Opcode opcode, Properties properties, const char *mnemonic, size_t value_in, size_t effect_in, size_t control_in, size_t value_out, size_t effect_out, size_t control_out)
std::ostream & operator<<(std::ostream &os, AccessMode access_mode)
#define PRINT_PROP_IF_SET(name)
#define OPERATOR_PROPERTY_LIST(V)
#define CHECK_LE(lhs, rhs)