summaryrefslogtreecommitdiffstats
path: root/src/mesa/pipe/llvm/instructions.cpp
diff options
context:
space:
mode:
authorZack Rusin <[email protected]>2007-10-25 07:18:01 -0400
committerZack Rusin <[email protected]>2007-10-25 09:04:41 -0400
commit7073ef96824242669735a8681519e1a0cee14309 (patch)
tree3c80ec3fceb62102d8a92ee0d8850028d7a194d6 /src/mesa/pipe/llvm/instructions.cpp
parent731352f03ee998050331104d90abb47ee1377b3f (diff)
Implement else ops.
Diffstat (limited to 'src/mesa/pipe/llvm/instructions.cpp')
-rw-r--r--src/mesa/pipe/llvm/instructions.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/mesa/pipe/llvm/instructions.cpp b/src/mesa/pipe/llvm/instructions.cpp
index 622d420f64d..a0645c58045 100644
--- a/src/mesa/pipe/llvm/instructions.cpp
+++ b/src/mesa/pipe/llvm/instructions.cpp
@@ -956,7 +956,7 @@ Function* makeLitFunction(Module *mod) {
void Instructions::ifop(llvm::Value *in)
{
BasicBlock *ifthen = new BasicBlock(name("ifthen"), m_func,0);
- BasicBlock *ifend = new BasicBlock(name("ifend"), m_func,0);
+ BasicBlock *ifend = new BasicBlock(name("ifthenend"), m_func,0);
//BasicBlock *yblock = new BasicBlock(name("yblock"), m_func,0);
//BasicBlock *zblock = new BasicBlock(name("zblock"), m_func,0);
@@ -981,6 +981,17 @@ llvm::BasicBlock * Instructions::currentBlock() const
return m_block;
}
+void Instructions::elseop()
+{
+ assert(!m_ifStack.empty());
+ BasicBlock *ifend = new BasicBlock(name("ifend"), m_func,0);
+ new BranchInst(ifend, m_block);
+ m_block = m_ifStack.top();
+ m_block->setName(name("ifelse"));
+ m_ifStack.pop();
+ m_ifStack.push(ifend);
+}
+
void Instructions::endif()
{
assert(!m_ifStack.empty());