Răsfoiți Sursa

macro_jit_x64: cancel exit for taken branch

Liam 3 ani în urmă
părinte
comite
b80f7faebe
1 a modificat fișierele cu 5 adăugiri și 11 ștergeri
  1. 5 11
      src/video_core/macro/macro_jit_x64.cpp

+ 5 - 11
src/video_core/macro/macro_jit_x64.cpp

@@ -429,17 +429,11 @@ void MacroJITx64Impl::Compile_Branch(Macro::Opcode opcode) {
             Xbyak::Label handle_post_exit{};
             Xbyak::Label skip{};
             jmp(skip, T_NEAR);
-            if (opcode.is_exit) {
-                L(handle_post_exit);
-                // Execute 1 instruction
-                mov(BRANCH_HOLDER, end_of_code);
-                // Jump to next instruction to skip delay slot check
-                jmp(labels[jump_address], T_NEAR);
-            } else {
-                L(handle_post_exit);
-                xor_(BRANCH_HOLDER, BRANCH_HOLDER);
-                jmp(labels[jump_address], T_NEAR);
-            }
+
+            L(handle_post_exit);
+            xor_(BRANCH_HOLDER, BRANCH_HOLDER);
+            jmp(labels[jump_address], T_NEAR);
+
             L(skip);
             mov(BRANCH_HOLDER, handle_post_exit);
             jmp(delay_skip[pc], T_NEAR);