From fb7a0318a0e93b099cf781ea5bb285b97092d277 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 28 Mar 2021 15:08:20 +0200 Subject: [DYNAREC] Enhanced the special case of CMP follow by CALL handling (need to find a better solution) --- src/dynarec/dynarec_arm64_00.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/dynarec/dynarec_arm64_00.c b/src/dynarec/dynarec_arm64_00.c index 60f3a5a3..018a3304 100755 --- a/src/dynarec/dynarec_arm64_00.c +++ b/src/dynarec/dynarec_arm64_00.c @@ -2110,7 +2110,10 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin break; case 2: // CALL Ed INST_NAME("CALL Ed"); - PASS2IF(ninst && dyn->insts && dyn->insts[ninst-1].x64.set_flags, 1) { + PASS2IF(dyn->insts && + ((ninst && dyn->insts[ninst-1].x64.set_flags) + || ((ninst>1) && dyn->insts[ninst-2].x64.set_flags)), 1) + { READFLAGS(X_PEND); // that's suspicious } else { SETFLAGS(X_ALL, SF_SET); //Hack to put flag in "don't care" state -- cgit 1.4.1