about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <seebastien.chev@gmail.com>2023-08-13 14:20:30 +0200
committerptitSeb <seebastien.chev@gmail.com>2023-08-13 14:20:30 +0200
commit607ac40ab31be86ba3c201237f420361b4bb0f14 (patch)
tree121ef82f22cb76d03a8eae5be94eebcb1b7fe1f8 /src
parent69c7ca8bdc23de6fb9e7d637042b6d5e2910ca4d (diff)
downloadbox64-607ac40ab31be86ba3c201237f420361b4bb0f14.tar.gz
box64-607ac40ab31be86ba3c201237f420361b4bb0f14.zip
Added 0F A8/A9 opcodes
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run0f.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index 06424813..466220bc 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -881,6 +881,20 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step)
             }

             break;

 

+        case 0xA8:                      /* PUSH GS */

+            if(rex.is32bits)

+                Push32(emu, emu->segs[_GS]);

+            else

+                Push64(emu, emu->segs[_GS]);

+            break;

+        case 0xA9:                      /* POP GS */

+            if(rex.is32bits)

+                emu->segs[_GS] = Pop32(emu);

+            else

+                emu->segs[_GS] = Pop64(emu);

+            emu->segs_serial[_FS] = 0;

+            break;

+

         case 0xAB:                      /* BTS Ed,Gd */

             CHECK_FLAGS(emu);

             nextop = F8;