From 5ce5951f5db4377b1c745ed71e69376e875ce93a Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Tue, 9 Mar 2021 16:30:04 +0100 Subject: Added REX 0F BA opcodes --- src/emu/x64run0f.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) (limited to 'src') diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c index f30b8906..e48c0eb6 100644 --- a/src/emu/x64run0f.c +++ b/src/emu/x64run0f.c @@ -498,6 +498,103 @@ int Run0F(x64emu_t *emu, rex_t rex) GD->q[0] = EW->word[0]; break; + case 0xBA: + nextop = F8; + switch((nextop>>3)&7) { + case 4: /* BT Ed,Ib */ + CHECK_FLAGS(emu); + GETED(1); + tmp8u = F8; + if(!MODREG) + ED=(reg64_t*)(((uintptr_t*)(ED))+(tmp8u>>5)); + if(rex.w) { + tmp8u&=63; + if(ED->q[0] & (1L<dword[0] & (1<>5)); + if(rex.w) { + tmp8u&=63; + if(ED->q[0] & (1L<q[0] ^= (1L<dword[0] & (1<dword[0] ^= (1<>5)); + if(rex.w) { + tmp8u&=63; + if(ED->q[0] & (1L<q[0] ^= (1L<dword[0] & (1<dword[0] ^= (1<>5)); + if(rex.w) { + tmp8u&=63; + if(ED->q[0] & (1L<q[0] ^= (1L<dword[0] & (1<dword[0] ^= (1<