aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/PIC16/PIC16.h
diff options
context:
space:
mode:
authorSanjiv Gupta <sanjiv.gupta@microchip.com>2009-01-21 05:44:05 +0000
committerSanjiv Gupta <sanjiv.gupta@microchip.com>2009-01-21 05:44:05 +0000
commit08b9b0521847cbe6c991fcd0e8c6c728525d268c (patch)
treefa76567fa35af4c2d7fe08a0035a8b5252f0dce4 /lib/Target/PIC16/PIC16.h
parentd1e8d9c0a5dc821b6b52f7872181edeeec5df7ba (diff)
Implement LowerOperationWrapper for legalizer.
Also a few signed comparison fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62665 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PIC16/PIC16.h')
-rw-r--r--lib/Target/PIC16/PIC16.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/lib/Target/PIC16/PIC16.h b/lib/Target/PIC16/PIC16.h
index f9f51ab9cc..e37ef4f209 100644
--- a/lib/Target/PIC16/PIC16.h
+++ b/lib/Target/PIC16/PIC16.h
@@ -31,7 +31,11 @@ namespace PIC16CC {
LT,
LE,
GT,
- GE
+ GE,
+ ULT,
+ UGT,
+ ULE,
+ UGE
};
}
@@ -41,12 +45,32 @@ namespace PIC16CC {
case PIC16CC::NE: return "ne";
case PIC16CC::EQ: return "eq";
case PIC16CC::LT: return "lt";
+ case PIC16CC::ULT: return "lt";
case PIC16CC::LE: return "le";
case PIC16CC::GT: return "gt";
+ case PIC16CC::UGT: return "gt";
case PIC16CC::GE: return "ge";
}
}
+ inline static bool isSignedComparison(PIC16CC::CondCodes CC) {
+ switch (CC) {
+ default: assert(0 && "Unknown condition code");
+ case PIC16CC::NE:
+ case PIC16CC::EQ:
+ case PIC16CC::LT:
+ case PIC16CC::LE:
+ case PIC16CC::GE:
+ case PIC16CC::GT:
+ return true;
+ case PIC16CC::ULT:
+ case PIC16CC::UGT:
+ case PIC16CC::ULE:
+ case PIC16CC::UGE:
+ return false; // condition codes for unsigned comparison.
+ }
+ }
+
FunctionPass *createPIC16ISelDag(PIC16TargetMachine &TM);
FunctionPass *createPIC16CodePrinterPass(raw_ostream &OS,