diff options
author | Chris Lattner <sabre@nondot.org> | 2004-03-12 05:52:14 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-03-12 05:52:14 +0000 |
commit | 9f24a077bda36334e6f7c8f27a97eccd820e9644 (patch) | |
tree | e5daf8e6c029a298b72804487f735b1dab3cc73e /lib/Target/CBackend/CBackend.cpp | |
parent | 46b787e986ff48a5c59d8a37610945a15ae04d9f (diff) | |
download | external_llvm-9f24a077bda36334e6f7c8f27a97eccd820e9644.zip external_llvm-9f24a077bda36334e6f7c8f27a97eccd820e9644.tar.gz external_llvm-9f24a077bda36334e6f7c8f27a97eccd820e9644.tar.bz2 |
ADd support for select instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12316 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CBackend/CBackend.cpp')
-rw-r--r-- | lib/Target/CBackend/CBackend.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp index 396cc69..e78eef6 100644 --- a/lib/Target/CBackend/CBackend.cpp +++ b/lib/Target/CBackend/CBackend.cpp @@ -140,6 +140,7 @@ namespace { void visitBinaryOperator(Instruction &I); void visitCastInst (CastInst &I); + void visitSelectInst(SelectInst &I); void visitCallInst (CallInst &I); void visitCallSite (CallSite CS); void visitShiftInst(ShiftInst &I) { visitBinaryOperator(I); } @@ -1185,6 +1186,17 @@ void CWriter::visitCastInst(CastInst &I) { writeOperand(I.getOperand(0)); } +void CWriter::visitSelectInst(SelectInst &I) { + Out << "(("; + writeOperand(I.getCondition()); + Out << ") ? ("; + writeOperand(I.getTrueValue()); + Out << ") : ("; + writeOperand(I.getFalseValue()); + Out << "))"; +} + + void CWriter::lowerIntrinsics(Module &M) { for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) for (Function::iterator BB = F->begin(), E = F->end(); BB != E; ++BB) |