Chromium Code Reviews

Unified Diff: src/IceInstARM32.h

Issue 1372083002: Subzero. Eliminates the use of Variable64On32 as operands in ARM. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Removes Variable64On32 Operands. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
« no previous file with comments | « no previous file | src/IceInstARM32.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 {
« no previous file with comments | « no previous file | src/IceInstARM32.cpp » ('j') | no next file with comments »

Powered by Google App Engine