diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2016-01-24 11:10:56 +0100 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2016-01-24 11:15:56 +0100 |
commit | c1071c1ff7701e2e31dd8909a1cc58fee34c9db9 (patch) | |
tree | d20f4fd5bc59ed41a807d989ca552545bea4218e /src/video_core/shader/shader_jit_x64.cpp | |
parent | Merge pull request #1334 from tfarley/hw-depth-modifiers (diff) | |
download | yuzu-c1071c1ff7701e2e31dd8909a1cc58fee34c9db9.tar yuzu-c1071c1ff7701e2e31dd8909a1cc58fee34c9db9.tar.gz yuzu-c1071c1ff7701e2e31dd8909a1cc58fee34c9db9.tar.bz2 yuzu-c1071c1ff7701e2e31dd8909a1cc58fee34c9db9.tar.lz yuzu-c1071c1ff7701e2e31dd8909a1cc58fee34c9db9.tar.xz yuzu-c1071c1ff7701e2e31dd8909a1cc58fee34c9db9.tar.zst yuzu-c1071c1ff7701e2e31dd8909a1cc58fee34c9db9.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/shader/shader_jit_x64.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/video_core/shader/shader_jit_x64.cpp b/src/video_core/shader/shader_jit_x64.cpp index 00415e402..09a127032 100644 --- a/src/video_core/shader/shader_jit_x64.cpp +++ b/src/video_core/shader/shader_jit_x64.cpp @@ -653,7 +653,7 @@ void JitCompiler::Compile_IF(Instruction instr) { FixupBranch b = J_CC(CC_Z, true); // Compile the code that corresponds to the condition evaluating as true - Compile_Block(instr.flow_control.dest_offset - 1); + Compile_Block(instr.flow_control.dest_offset); // If there isn't an "ELSE" condition, we are done here if (instr.flow_control.num_instructions == 0) { @@ -667,7 +667,7 @@ void JitCompiler::Compile_IF(Instruction instr) { // This code corresponds to the "ELSE" condition // Comple the code that corresponds to the condition evaluating as false - Compile_Block(instr.flow_control.dest_offset + instr.flow_control.num_instructions - 1); + Compile_Block(instr.flow_control.dest_offset + instr.flow_control.num_instructions); SetJumpTarget(b2); } @@ -691,7 +691,7 @@ void JitCompiler::Compile_LOOP(Instruction instr) { auto loop_start = GetCodePtr(); - Compile_Block(instr.flow_control.dest_offset); + Compile_Block(instr.flow_control.dest_offset + 1); ADD(32, R(LOOPCOUNT_REG), R(LOOPINC)); // Increment LOOPCOUNT_REG by Z-component SUB(32, R(LOOPCOUNT), Imm8(1)); // Increment loop count by 1 @@ -717,12 +717,12 @@ void JitCompiler::Compile_JMP(Instruction instr) { SetJumpTarget(b); } -void JitCompiler::Compile_Block(unsigned stop) { +void JitCompiler::Compile_Block(unsigned end) { // Save current offset pointer unsigned* prev_offset_ptr = offset_ptr; unsigned offset = *prev_offset_ptr; - while (offset <= stop) + while (offset < end) Compile_NextInstr(&offset); // Restore current offset pointer |