Index: src/IceInstMIPS32.h |
diff --git a/src/IceInstMIPS32.h b/src/IceInstMIPS32.h |
index 05f9bdf35120bd55ad7256fb73c2f06aa109ff68..583a09e8e5af3da526b1e1c0e3760416ea0e4eb1 100644 |
--- a/src/IceInstMIPS32.h |
+++ b/src/IceInstMIPS32.h |
@@ -1200,9 +1200,12 @@ class InstMIPS32Mov final : public InstMIPS32 { |
InstMIPS32Mov &operator=(const InstMIPS32Mov &) = delete; |
public: |
- static InstMIPS32Mov *create(Cfg *Func, Variable *Dest, Operand *Src) { |
- return new (Func->allocate<InstMIPS32Mov>()) InstMIPS32Mov(Func, Dest, Src); |
+ static InstMIPS32Mov *create(Cfg *Func, Variable *Dest, Operand *Src, |
+ Operand *Src2) { |
+ return new (Func->allocate<InstMIPS32Mov>()) |
+ InstMIPS32Mov(Func, Dest, Src, Src2); |
} |
+ |
bool isRedundantAssign() const override { |
return !isMultiDest() && !isMultiSource() && |
checkForRedundantAssign(getDest(), getSrc(0)); |
@@ -1213,17 +1216,14 @@ public: |
void dump(const Cfg *Func) const override; |
static bool classof(const Inst *Inst) { return isClassof(Inst, Mov); } |
- bool isMultiDest() const { return DestHi != nullptr; } |
+ bool isMultiDest() const { return false; } |
Jim Stichnoth
2016/10/10 17:07:49
Are these meant to be permanent changes? (i.e. is
sagar.thakur
2016/10/12 06:07:06
Yes, a mov instruction will always have single des
|
- bool isMultiSource() const { |
- assert(getSrcSize() == 1 || getSrcSize() == 2); |
- return getSrcSize() == 2; |
- } |
+ bool isMultiSource() const { return false; } |
Variable *getDestHi() const { return DestHi; } |
private: |
- InstMIPS32Mov(Cfg *Func, Variable *Dest, Operand *Src); |
+ InstMIPS32Mov(Cfg *Func, Variable *Dest, Operand *Src, Operand *Src2); |
void emitMultiDestSingleSource(const Cfg *Func) const; |
void emitSingleDestMultiSource(const Cfg *Func) const; |