Chromium Code Reviews| 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; |