summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/llvm/llvmtgsi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/pipe/llvm/llvmtgsi.cpp')
-rw-r--r--src/mesa/pipe/llvm/llvmtgsi.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/mesa/pipe/llvm/llvmtgsi.cpp b/src/mesa/pipe/llvm/llvmtgsi.cpp
index 6ff4bc2270..6eae46d3ae 100644
--- a/src/mesa/pipe/llvm/llvmtgsi.cpp
+++ b/src/mesa/pipe/llvm/llvmtgsi.cpp
@@ -447,7 +447,10 @@ translate_instruction(llvm::Module *module,
break;
case TGSI_OPCODE_TXL:
break;
- case TGSI_OPCODE_BRK:
+ case TGSI_OPCODE_BRK: {
+ instr->brk();
+ return;
+ }
break;
case TGSI_OPCODE_IF: {
instr->ifop(inputs[0]);
@@ -485,7 +488,9 @@ translate_instruction(llvm::Module *module,
break;
case TGSI_OPCODE_NOT:
break;
- case TGSI_OPCODE_TRUNC:
+ case TGSI_OPCODE_TRUNC: {
+ out = instr->trunc(inputs[0]);
+ }
break;
case TGSI_OPCODE_SHL:
break;
@@ -511,11 +516,19 @@ translate_instruction(llvm::Module *module,
break;
case TGSI_OPCODE_ENDPRIM:
break;
- case TGSI_OPCODE_BGNLOOP2:
+ case TGSI_OPCODE_BGNLOOP2: {
+ instr->beginLoop();
+ storage->setCurrentBlock(instr->currentBlock());
+ return;
+ }
break;
case TGSI_OPCODE_BGNSUB:
break;
- case TGSI_OPCODE_ENDLOOP2:
+ case TGSI_OPCODE_ENDLOOP2: {
+ instr->endLoop();
+ storage->setCurrentBlock(instr->currentBlock());
+ return;
+ }
break;
case TGSI_OPCODE_ENDSUB:
break;