Index: src/IceInstARM32.h |
diff --git a/src/IceInstARM32.h b/src/IceInstARM32.h |
index c8be52bba907307d4778dc172d17bab40944612a..0cddb5764f87f0b92a077ab5b97724d4f09913ee 100644 |
--- a/src/IceInstARM32.h |
+++ b/src/IceInstARM32.h |
@@ -1133,26 +1133,24 @@ public: |
void dump(const Cfg *Func) const override; |
static bool classof(const Inst *Inst) { return isClassof(Inst, Mov); } |
- bool isMultiDest() const { |
- assert(getDest() != nullptr); |
- return llvm::isa<Variable64On32>(getDest()); |
- } |
+ bool isMultiDest() const { return DestHi != nullptr; } |
bool isMultiSource() const { |
- assert(getSrcSize() == 1); |
- return llvm::isa<Variable64On32>(getSrc(0)); |
+ assert(getSrcSize() == 1 || getSrcSize() == 2); |
+ return getSrcSize() == 2; |
} |
+ Variable *getDestHi() const { return DestHi; } |
+ |
private: |
InstARM32Mov(Cfg *Func, Variable *Dest, Operand *Src, |
- CondARM32::Cond Predicate) |
- : InstARM32Pred(Func, InstARM32::Mov, 1, Dest, Predicate) { |
- addSource(Src); |
- } |
+ CondARM32::Cond Predicate); |
void emitMultiDestSingleSource(const Cfg *Func) const; |
void emitSingleDestMultiSource(const Cfg *Func) const; |
void emitSingleDestSingleSource(const Cfg *Func) const; |
+ |
+ Variable *DestHi = nullptr; |
}; |
class InstARM32Vcmp final : public InstARM32Pred { |