Browse Source
Merge pull request #9005 from liamwhite/micro-fit
macro_jit_x64: cancel exit for taken branch
pull/15/merge
bunnei
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
5 additions and
11 deletions
-
src/video_core/macro/macro_jit_x64.cpp
|
|
|
@ -401,17 +401,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); |
|
|
|
|