diff options
| author | 2021-02-24 05:21:30 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:22 -0400 | |
| commit | e87a502da2d5a8356a639d53c0a16a77890de4c7 (patch) | |
| tree | 00fd1a9a32c0334c49189098829b782a37533c46 /src/shader_recompiler/frontend/maxwell | |
| parent | shader: Implement more of XMAD and FFMA32I and fix XMAD.CBCC (diff) | |
| download | yuzu-e87a502da2d5a8356a639d53c0a16a77890de4c7.tar.gz yuzu-e87a502da2d5a8356a639d53c0a16a77890de4c7.tar.xz yuzu-e87a502da2d5a8356a639d53c0a16a77890de4c7.zip | |
shader: Fix control flow
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell')
3 files changed, 4 insertions, 4 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/control_flow.cpp b/src/shader_recompiler/frontend/maxwell/control_flow.cpp index e766b555b..52be41b84 100644 --- a/src/shader_recompiler/frontend/maxwell/control_flow.cpp +++ b/src/shader_recompiler/frontend/maxwell/control_flow.cpp | |||
| @@ -354,7 +354,7 @@ void CFG::AnalyzeCondInst(Block* block, FunctionId function_id, Location pc, | |||
| 354 | // Impersonate the visited block with a virtual block | 354 | // Impersonate the visited block with a virtual block |
| 355 | *block = std::move(virtual_block); | 355 | *block = std::move(virtual_block); |
| 356 | // Set the end properties of the conditional instruction | 356 | // Set the end properties of the conditional instruction |
| 357 | conditional_block->end = pc; | 357 | conditional_block->end = pc + 1; |
| 358 | conditional_block->end_class = insn_end_class; | 358 | conditional_block->end_class = insn_end_class; |
| 359 | // Add a label to the instruction after the conditional instruction | 359 | // Add a label to the instruction after the conditional instruction |
| 360 | Block* const endif_block{AddLabel(conditional_block, block->stack, pc + 1, function_id)}; | 360 | Block* const endif_block{AddLabel(conditional_block, block->stack, pc + 1, function_id)}; |
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/impl.h b/src/shader_recompiler/frontend/maxwell/translate/impl/impl.h index 4e722e205..672e140b2 100644 --- a/src/shader_recompiler/frontend/maxwell/translate/impl/impl.h +++ b/src/shader_recompiler/frontend/maxwell/translate/impl/impl.h | |||
| @@ -209,7 +209,7 @@ public: | |||
| 209 | void P2R_cbuf(u64 insn); | 209 | void P2R_cbuf(u64 insn); |
| 210 | void P2R_imm(u64 insn); | 210 | void P2R_imm(u64 insn); |
| 211 | void PBK(); | 211 | void PBK(); |
| 212 | void PCNT(u64 insn); | 212 | void PCNT(); |
| 213 | void PEXIT(u64 insn); | 213 | void PEXIT(u64 insn); |
| 214 | void PIXLD(u64 insn); | 214 | void PIXLD(u64 insn); |
| 215 | void PLONGJMP(u64 insn); | 215 | void PLONGJMP(u64 insn); |
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/not_implemented.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/not_implemented.cpp index 4114e10be..3f6dedfdd 100644 --- a/src/shader_recompiler/frontend/maxwell/translate/impl/not_implemented.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate/impl/not_implemented.cpp | |||
| @@ -637,8 +637,8 @@ void TranslatorVisitor::PBK() { | |||
| 637 | // PBK is a no-op | 637 | // PBK is a no-op |
| 638 | } | 638 | } |
| 639 | 639 | ||
| 640 | void TranslatorVisitor::PCNT(u64) { | 640 | void TranslatorVisitor::PCNT() { |
| 641 | ThrowNotImplemented(Opcode::PCNT); | 641 | // PCNT is a no-op |
| 642 | } | 642 | } |
| 643 | 643 | ||
| 644 | void TranslatorVisitor::PEXIT(u64) { | 644 | void TranslatorVisitor::PEXIT(u64) { |