Index: src/IceTargetLoweringMIPS32.h |
diff --git a/src/IceTargetLoweringMIPS32.h b/src/IceTargetLoweringMIPS32.h |
index ea062e7d7d799f4c4495383adbb84e5f951f9d4e..54e07fab902b519ac160f0ecada2dedd8451c85f 100644 |
--- a/src/IceTargetLoweringMIPS32.h |
+++ b/src/IceTargetLoweringMIPS32.h |
@@ -220,10 +220,22 @@ public: |
Context.insert<InstMIPS32Sub>(Dest, Src0, Src1); |
} |
- void _sltu(Variable *Dest, Variable *Src0, Variable *Src1) { |
- Context.insert<InstMIPS32Sltu>(Dest, Src0, Src1); |
+ void _slt(Variable *Dest, Variable *Src0, Variable *Src1) { |
+ Context.insert<InstMIPS32Slt>(Dest, Src0, Src1); |
+ } |
+ |
+ void _slti(Variable *Dest, Variable *Src, uint32_t Imm) { |
+ Context.insert<InstMIPS32Slti>(Dest, Src, Imm); |
} |
+ void _sltiu(Variable *Dest, Variable *Src, uint32_t Imm) { |
+ Context.insert<InstMIPS32Sltiu>(Dest, Src, Imm); |
+ } |
+ |
+ void _sltu(Variable *Dest, Variable *Src0, Variable *Src1) { |
+ Context.insert<InstMIPS32Sltu>(Dest, Src0, Src1); |
+ } |
+ |
void _subu(Variable *Dest, Variable *Src0, Variable *Src1) { |
Context.insert<InstMIPS32Subu>(Dest, Src0, Src1); |
} |
@@ -232,6 +244,10 @@ public: |
Context.insert<InstMIPS32Xor>(Dest, Src0, Src1); |
} |
+ void _xori(Variable *Dest, Variable *Src, uint32_t Imm) { |
+ Context.insert<InstMIPS32Xori>(Dest, Src, Imm); |
+ } |
+ |
void lowerArguments() override; |
/// Operand legalization helpers. To deal with address mode constraints, |
@@ -257,6 +273,10 @@ public: |
Variable *makeReg(Type Ty, RegNumT RegNum = RegNumT()); |
+ Variable *getZero() { |
+ return getPhysicalRegister(RegMIPS32::Reg_ZERO, IceType_i32); |
+ } |
+ |
Variable *I32Reg(RegNumT RegNum = RegNumT()) { |
return makeReg(IceType_i32, RegNum); |
} |
@@ -293,6 +313,7 @@ protected: |
void lowerExtractElement(const InstExtractElement *Instr) override; |
void lowerFcmp(const InstFcmp *Instr) override; |
void lowerIcmp(const InstIcmp *Instr) override; |
+ void lower64Icmp(const InstIcmp *Instr); |
void lowerIntrinsicCall(const InstIntrinsicCall *Instr) override; |
void lowerInsertElement(const InstInsertElement *Instr) override; |
void lowerLoad(const InstLoad *Instr) override; |