diff options
| author | ptitSeb <seebastien.chev@gmail.com> | 2023-08-13 14:15:30 +0200 |
|---|---|---|
| committer | ptitSeb <seebastien.chev@gmail.com> | 2023-08-13 14:15:30 +0200 |
| commit | 692eb90dcdffeaf72c8769113a54770163eb3e24 (patch) | |
| tree | 3b9cc391f1743afc3b30c38a1be7b7c883ea6de3 /src/emu | |
| parent | eee1c62325ad9d3b4128a5635d42cec424f64713 (diff) | |
| download | box64-692eb90dcdffeaf72c8769113a54770163eb3e24.tar.gz box64-692eb90dcdffeaf72c8769113a54770163eb3e24.zip | |
Added 0F A0/A1 opcodes
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/x64run0f.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c index caa4eb98..06424813 100644 --- a/src/emu/x64run0f.c +++ b/src/emu/x64run0f.c @@ -813,7 +813,19 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) , EB->byte[0]=0; , ) /* 0x90 -> 0x9F SETxx Eb */ - + case 0xA0: /* PUSH FS */ + if(rex.is32bits) + Push32(emu, emu->segs[_FS]); + else + Push64(emu, emu->segs[_FS]); + break; + case 0xA1: /* POP FS */ + if(rex.is32bits) + emu->segs[_FS] = Pop32(emu); + else + emu->segs[_FS] = Pop64(emu); + emu->segs_serial[_FS] = 0; + break; case 0xA2: /* CPUID */ tmp32u = R_EAX; my_cpuid(emu, tmp32u); |