diff options
Diffstat (limited to 'src/emu/x64run0f.c')
| -rw-r--r-- | src/emu/x64run0f.c | 5 |
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; |