Index: src/IceTargetLoweringMIPS32.h |
diff --git a/src/IceTargetLoweringMIPS32.h b/src/IceTargetLoweringMIPS32.h |
index 72fc1cd72414d3e3d67e2c00bd5f5d8614d22289..919426660be8a37ec95cd62cd3867b3a24cda976 100644 |
--- a/src/IceTargetLoweringMIPS32.h |
+++ b/src/IceTargetLoweringMIPS32.h |
@@ -365,6 +365,21 @@ public: |
} |
} |
+ void _mov_redefined(Variable *Dest, Operand *Src0, Operand *Src1 = nullptr) { |
+ if (llvm::isa<ConstantRelocatable>(Src0)) { |
+ Context.insert<InstMIPS32La>(Dest, Src0); |
+ } else { |
+ auto *Instr = Context.insert<InstMIPS32Mov>(Dest, Src0, Src1); |
+ Instr->setDestRedefined(); |
+ if (Instr->getDestHi() != nullptr) { |
+ // If Instr is multi-dest, then Dest must be a Variable64On32. We add a |
jaydeep.patil
2016/10/27 09:59:39
Reflow comment to 80-col
Jim Stichnoth
2016/10/27 14:03:38
Actually this needs a "make -f Makefile.standalone
|
+ // fake-def for Instr.DestHi here. |
+ assert(llvm::isa<Variable64On32>(Dest)); |
+ Context.insert<InstFakeDef>(Instr->getDestHi()); |
+ } |
+ } |
+ } |
+ |
void _mov_d(Variable *Dest, Variable *Src) { |
Context.insert<InstMIPS32Mov_d>(Dest, Src); |
} |