constexpr Operand()
: reg_(PhysReg{128}), isTemp_(false), isFixed_(true), isConstant_(false),
isKill_(false), isUndef_(true), isFirstKill_(false), constSize(0),
- isLateKill_(false) {}
+ isLateKill_(false), is16bit_(false) {}
explicit Operand(Temp r) noexcept
{
else
return other.isTemp() && other.getTemp() == getTemp();
}
+
+ constexpr void set16bit(bool flag) noexcept
+ {
+ is16bit_ = flag;
+ }
+
+ constexpr bool is16bit() const noexcept
+ {
+ return is16bit_;
+ }
+
private:
union {
uint32_t i;
uint8_t isFirstKill_:1;
uint8_t constSize:2;
uint8_t isLateKill_:1;
+ uint8_t is16bit_:1;
};
/* can't initialize bit-fields in c++11, so work around using a union */
uint16_t control_ = 0;
} else {
if (operand->isLateKill())
fprintf(output, "(latekill)");
+ if (operand->is16bit())
+ fprintf(output, "(is16bit)");
fprintf(output, "%%%d", operand->tempId());