summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_core/shader/shader_jit_x64.cpp10
-rw-r--r--src/video_core/shader/shader_jit_x64.h2
2 files changed, 6 insertions, 6 deletions
diff --git a/src/video_core/shader/shader_jit_x64.cpp b/src/video_core/shader/shader_jit_x64.cpp
index 6554830b2..4249675a5 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) {
653 FixupBranch b = J_CC(CC_Z, true); 653 FixupBranch b = J_CC(CC_Z, true);
654 654
655 // Compile the code that corresponds to the condition evaluating as true 655 // Compile the code that corresponds to the condition evaluating as true
656 Compile_Block(instr.flow_control.dest_offset - 1); 656 Compile_Block(instr.flow_control.dest_offset);
657 657
658 // If there isn't an "ELSE" condition, we are done here 658 // If there isn't an "ELSE" condition, we are done here
659 if (instr.flow_control.num_instructions == 0) { 659 if (instr.flow_control.num_instructions == 0) {
@@ -667,7 +667,7 @@ void JitCompiler::Compile_IF(Instruction instr) {
667 667
668 // This code corresponds to the "ELSE" condition 668 // This code corresponds to the "ELSE" condition
669 // Comple the code that corresponds to the condition evaluating as false 669 // Comple the code that corresponds to the condition evaluating as false
670 Compile_Block(instr.flow_control.dest_offset + instr.flow_control.num_instructions - 1); 670 Compile_Block(instr.flow_control.dest_offset + instr.flow_control.num_instructions);
671 671
672 SetJumpTarget(b2); 672 SetJumpTarget(b2);
673} 673}
@@ -691,7 +691,7 @@ void JitCompiler::Compile_LOOP(Instruction instr) {
691 691
692 auto loop_start = GetCodePtr(); 692 auto loop_start = GetCodePtr();
693 693
694 Compile_Block(instr.flow_control.dest_offset); 694 Compile_Block(instr.flow_control.dest_offset + 1);
695 695
696 ADD(32, R(LOOPCOUNT_REG), R(LOOPINC)); // Increment LOOPCOUNT_REG by Z-component 696 ADD(32, R(LOOPCOUNT_REG), R(LOOPINC)); // Increment LOOPCOUNT_REG by Z-component
697 SUB(32, R(LOOPCOUNT), Imm8(1)); // Increment loop count by 1 697 SUB(32, R(LOOPCOUNT), Imm8(1)); // Increment loop count by 1
@@ -719,12 +719,12 @@ void JitCompiler::Compile_JMP(Instruction instr) {
719 SetJumpTarget(b); 719 SetJumpTarget(b);
720} 720}
721 721
722void JitCompiler::Compile_Block(unsigned stop) { 722void JitCompiler::Compile_Block(unsigned end) {
723 // Save current offset pointer 723 // Save current offset pointer
724 unsigned* prev_offset_ptr = offset_ptr; 724 unsigned* prev_offset_ptr = offset_ptr;
725 unsigned offset = *prev_offset_ptr; 725 unsigned offset = *prev_offset_ptr;
726 726
727 while (offset <= stop) 727 while (offset < end)
728 Compile_NextInstr(&offset); 728 Compile_NextInstr(&offset);
729 729
730 // Restore current offset pointer 730 // Restore current offset pointer
diff --git a/src/video_core/shader/shader_jit_x64.h b/src/video_core/shader/shader_jit_x64.h
index 3afbceccf..5ad2d9606 100644
--- a/src/video_core/shader/shader_jit_x64.h
+++ b/src/video_core/shader/shader_jit_x64.h
@@ -61,7 +61,7 @@ public:
61 void Compile_MAD(Instruction instr); 61 void Compile_MAD(Instruction instr);
62 62
63private: 63private:
64 void Compile_Block(unsigned stop); 64 void Compile_Block(unsigned end);
65 void Compile_NextInstr(unsigned* offset); 65 void Compile_NextInstr(unsigned* offset);
66 66
67 void Compile_SwizzleSrc(Instruction instr, unsigned src_num, SourceRegister src_reg, Gen::X64Reg dest); 67 void Compile_SwizzleSrc(Instruction instr, unsigned src_num, SourceRegister src_reg, Gen::X64Reg dest);