diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-18 17:03:16 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-18 17:03:16 +0100 |
| commit | c22782d2abac37dd35154e126ce9bf697f6641e7 (patch) | |
| tree | 2712697f111501952d4b7c6f51829ccd7205c107 /src | |
| parent | 994a575d32cd27247734364f6cba4fae23d4eafe (diff) | |
| download | box64-c22782d2abac37dd35154e126ce9bf697f6641e7.tar.gz box64-c22782d2abac37dd35154e126ce9bf697f6641e7.zip | |
[DYNAREC] Added 9B/9C/9D FWAIT/PUSHF/POPF opcodes
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/dynarec_arm64_00.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_arm64_00.c b/src/dynarec/dynarec_arm64_00.c index cdd25353..ddb6538a 100755 --- a/src/dynarec/dynarec_arm64_00.c +++ b/src/dynarec/dynarec_arm64_00.c @@ -478,6 +478,24 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin } break; + case 0x9B: + INST_NAME("FWAIT"); + break; + case 0x9C: + INST_NAME("PUSHF"); + READFLAGS(X_ALL); + PUSH1(xFlags); + break; + case 0x9D: + INST_NAME("POPF"); + SETFLAGS(X_ALL, SF_SET); + POP1(xFlags); + MOV32w(x1, 0x3F7FD7); + ANDw_REG(xFlags, xFlags, x1); + ORRw_mask(xFlags, xFlags, 0b011111, 0); //mask=0x00000002 + SET_DFNONE(x1); + break; + case 0xB8: case 0xB9: case 0xBA: |