55 lines
1.1 KiB
C++
55 lines
1.1 KiB
C++
#include "utility.hh"
|
|
|
|
std::ostream&
|
|
operator<<(std::ostream& os, const Condition cond) {
|
|
|
|
#define CASE(cond) \
|
|
case Condition::cond: \
|
|
os << #cond; \
|
|
break;
|
|
|
|
switch (cond) {
|
|
CASE(EQ)
|
|
CASE(NE)
|
|
CASE(CS)
|
|
CASE(CC)
|
|
CASE(MI)
|
|
CASE(PL)
|
|
CASE(VS)
|
|
CASE(VC)
|
|
CASE(HI)
|
|
CASE(LS)
|
|
CASE(GE)
|
|
CASE(LT)
|
|
CASE(GT)
|
|
CASE(LE)
|
|
case Condition::AL: {
|
|
// empty
|
|
}
|
|
}
|
|
|
|
#undef CASE
|
|
|
|
return os;
|
|
}
|
|
|
|
std::ostream&
|
|
operator<<(std::ostream& os, const ShiftType shift_type) {
|
|
|
|
#define CASE(type) \
|
|
case ShiftType::type: \
|
|
os << #type; \
|
|
break;
|
|
|
|
switch (shift_type) {
|
|
CASE(LSL)
|
|
CASE(LSR)
|
|
CASE(ASR)
|
|
CASE(ROR)
|
|
}
|
|
|
|
#undef CASE
|
|
|
|
return os;
|
|
}
|