diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-28 15:08:20 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-28 15:08:20 +0200 |
| commit | fb7a0318a0e93b099cf781ea5bb285b97092d277 (patch) | |
| tree | e87e0f83cd1495aa664362e76d93b28e69d0d4ca | |
| parent | 479ade9cb7dde26f0766957410a6343007731338 (diff) | |
| download | box64-fb7a0318a0e93b099cf781ea5bb285b97092d277.tar.gz box64-fb7a0318a0e93b099cf781ea5bb285b97092d277.zip | |
[DYNAREC] Enhanced the special case of CMP follow by CALL handling (need to find a better solution)
| -rwxr-xr-x | src/dynarec/dynarec_arm64_00.c | 5 |
1 files changed, 4 insertions, 1 deletions
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 |