| Index: src/IceInstX8632.h
|
| diff --git a/src/IceInstX8632.h b/src/IceInstX8632.h
|
| index eb133c21d16465a5009a7b6aa9dc5e9131ea2b87..abce706ea73c661e6562f3a08ed324fa84dd56ea 100644
|
| --- a/src/IceInstX8632.h
|
| +++ b/src/IceInstX8632.h
|
| @@ -1109,18 +1109,21 @@ private:
|
| // operand needs to be done separately.
|
| class InstX8632Cvt : public InstX8632 {
|
| public:
|
| + enum CvtVariant { Si2ss, Tss2si, Float2float, Dq2ps, Tps2dq };
|
| static InstX8632Cvt *create(Cfg *Func, Variable *Dest, Operand *Source,
|
| - bool Trunc) {
|
| + CvtVariant Variant) {
|
| return new (Func->allocate<InstX8632Cvt>())
|
| - InstX8632Cvt(Func, Dest, Source, Trunc);
|
| + InstX8632Cvt(Func, Dest, Source, Variant);
|
| }
|
| void emit(const Cfg *Func) const override;
|
| + void emitIAS(const Cfg *Func) const override;
|
| void dump(const Cfg *Func) const override;
|
| static bool classof(const Inst *Inst) { return isClassof(Inst, Cvt); }
|
| + bool isTruncating() const { return Variant == Tss2si || Variant == Tps2dq; }
|
|
|
| private:
|
| - bool Trunc;
|
| - InstX8632Cvt(Cfg *Func, Variable *Dest, Operand *Source, bool Trunc);
|
| + CvtVariant Variant;
|
| + InstX8632Cvt(Cfg *Func, Variable *Dest, Operand *Source, CvtVariant Variant);
|
| InstX8632Cvt(const InstX8632Cvt &) = delete;
|
| InstX8632Cvt &operator=(const InstX8632Cvt &) = delete;
|
| ~InstX8632Cvt() override {}
|
|
|