about summary refs log tree commit diff stats
path: root/src/emu/x64run0f.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/x64run0f.c')
-rw-r--r--src/emu/x64run0f.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index aff7419e..caba2238 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -168,10 +168,11 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step)
             GETGD;

             CHECK_FLAGS(emu);

             tmp8u = ED->word[0]>>3;

-            if (tmp8u>0x10 || !my_context->segtls[tmp8u].present) {

+            tmp8s = !!(ED->word[0]&2);

+            if (tmp8u>0x10 || !tmp8s?emu->segldt[tmp8u].present:my_context->seggdt[tmp8u].present) {

                 CLEAR_FLAG(F_ZF);

             } else {

-                GD->dword[0] = my_context->segtls[tmp8u].limit;

+                GD->dword[0] = tmp8s?emu->segldt[tmp8u].limit:my_context->seggdt[tmp8u].limit;

                 SET_FLAG(F_ZF);

             }

             break;