From acccd75e7d9f2753d2cb5e54379dfd3689576229 Mon Sep 17 00:00:00 2001 From: Elisha Hollander Date: Thu, 5 Feb 2026 23:55:59 +0200 Subject: [PATCH] use `aam`, `aad` and `salc` they're no `aadb` nor `aamb` instructions, also 0xd6 is the undocumented `salc` instruction --- src/core/vendor/DisassembleX86-64.mjs | 32 +-------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/src/core/vendor/DisassembleX86-64.mjs b/src/core/vendor/DisassembleX86-64.mjs index aeae426be..9ba9785b0 100644 --- a/src/core/vendor/DisassembleX86-64.mjs +++ b/src/core/vendor/DisassembleX86-64.mjs @@ -246,7 +246,7 @@ const Mnemonics = [ ["ROL","ROR","RCL","RCR","SHL","SHR","SAL","SAR"], ["ROL","ROR","RCL","RCR","SHL","SHR","SAL","SAR"], ["ROL","ROR","RCL","RCR","SHL","SHR","SAL","SAR"], - "AAMB","AADB","???", + "AAM","AAD","SALC", "XLAT", /*------------------------------------------------------------------------------------------------------------------------ X87 FPU. @@ -4751,36 +4751,6 @@ function DecodePrefixAdjustments() return(null); } } - - //The L1OM vector prefix settings decoding. - - if( Opcode === 0xD6 ) - { - //------------------------------------------------------------------------------------------------------------------------- - Opcode = BinCode[CodePos]; //read L1OM byte settings. - NextByte(); //Move to the next byte. - //------------------------------------------------------------------------------------------------------------------------- - Opcode |= ( BinCode[CodePos] << 8 ); //Read next L1OM byte settings. - NextByte(); //Move to the next byte. - //------------------------------------------------------------------------------------------------------------------------- - - WidthBit = SIMD & 1; - VectorRegister = ( Opcode & 0xF800 ) >> 11; - RoundMode = VectorRegister >> 3; - MaskRegister = ( Opcode & 0x0700 ) >> 8; - HInt_ZeroMerg = ( Opcode & 0x0080 ) >> 7; - ConversionMode = ( Opcode & 0x0070 ) >> 4; - RegExtend = ( Opcode & 0x000C ) << 1; - BaseExtend = ( Opcode & 0x0003 ) << 3; - IndexExtend = ( Opcode & 0x0002 ) << 2; - - //------------------------------------------------------------------------------------------------------------------------- - Opcode = 0x700 | BinCode[CodePos]; //read the 8 bit opcode. - NextByte(); //Move to the next byte. - //------------------------------------------------------------------------------------------------------------------------- - - return(null); - } //Only decode L1OM instead of MVEX/EVEX if L1OM compatibility mode is set.