diff --git a/src/video_core/shader/shader_jit_x64.cpp b/src/video_core/shader/shader_jit_x64.cpp
index dda9bcef719829902e29168e3af6bf86f8c47f4d..fae7e8b414b8b2ddcb85e9c218c799667bc9e9f4 100644
--- a/src/video_core/shader/shader_jit_x64.cpp
+++ b/src/video_core/shader/shader_jit_x64.cpp
@@ -677,7 +677,7 @@ void JitCompiler::Compile_MAD(Instruction instr) {
 }
 
 void JitCompiler::Compile_IF(Instruction instr) {
-    RuntimeAssert(instr.flow_control.dest_offset > last_program_counter, "Backwards if-statements not supported");
+    RuntimeAssert(instr.flow_control.dest_offset >= program_counter, "Backwards if-statements not supported");
 
     // Evaluate the "IF" condition
     if (instr.opcode.Value() == OpCode::Id::IFU) {
@@ -708,7 +708,7 @@ void JitCompiler::Compile_IF(Instruction instr) {
 }
 
 void JitCompiler::Compile_LOOP(Instruction instr) {
-    RuntimeAssert(instr.flow_control.dest_offset > last_program_counter, "Backwards loops not supported");
+    RuntimeAssert(instr.flow_control.dest_offset >= program_counter, "Backwards loops not supported");
     RuntimeAssert(!looping, "Nested loops not supported");
 
     looping = true;
@@ -770,8 +770,6 @@ void JitCompiler::Compile_Return() {
 }
 
 void JitCompiler::Compile_NextInstr() {
-    last_program_counter = program_counter;
-
     auto search = return_offsets.find(program_counter);
     if (search != return_offsets.end()) {
         Compile_Return();
@@ -839,7 +837,6 @@ void JitCompiler::Compile() {
     FindReturnOffsets();
 
     // Reset flow control state
-    last_program_counter = 0;
     program_counter = 0;
     looping = false;
     code_ptr.fill(nullptr);
diff --git a/src/video_core/shader/shader_jit_x64.h b/src/video_core/shader/shader_jit_x64.h
index 159b902b2587f530a2ac2e0b6fe33a4a5b7681b3..920a269e23b39c1d61590389b307df2060d14158 100644
--- a/src/video_core/shader/shader_jit_x64.h
+++ b/src/video_core/shader/shader_jit_x64.h
@@ -108,7 +108,6 @@ private:
     /// Offsets in code where a return needs to be inserted
     std::set<unsigned> return_offsets;
 
-    unsigned last_program_counter = 0;  ///< Offset of the most recent instruction decoded
     unsigned program_counter = 0;       ///< Offset of the next instruction to decode
     bool looping = false;               ///< True if compiling a loop, used to check for nested loops