Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: src/IceTargetLoweringMIPS32.h

Issue 1898743002: [Subzero][MIPS] Implement conditional branches and integer comparisons (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698