mirror of
https://github.com/ModOrganizer2/udis86.git
synced 2026-07-27 14:05:57 -07:00
Fix issue #22: Add cmpxchg16b, fix pextrw definition
This commit is contained in:
+16
-2
@@ -842,7 +842,21 @@
|
||||
<mnemonic>cmpxchg8b</mnemonic>
|
||||
<def>
|
||||
<pfx>aso rexr rexx rexb</pfx>
|
||||
<opc>0f c7 /reg=1</opc>
|
||||
<opc>0f c7 /reg=1 /o=16</opc>
|
||||
<opr>M</opr>
|
||||
</def>
|
||||
<def>
|
||||
<pfx>aso rexr rexx rexb</pfx>
|
||||
<opc>0f c7 /reg=1 /o=32</opc>
|
||||
<opr>M</opr>
|
||||
</def>
|
||||
</instruction>
|
||||
|
||||
<instruction>
|
||||
<mnemonic>cmpxchg16b</mnemonic>
|
||||
<def>
|
||||
<pfx>aso rexr rexx rexb</pfx>
|
||||
<opc>0f c7 /reg=1 /o=64</opc>
|
||||
<opr>M</opr>
|
||||
</def>
|
||||
</instruction>
|
||||
@@ -5627,7 +5641,7 @@
|
||||
<def>
|
||||
<pfx>aso rexx rexr rexb</pfx>
|
||||
<opc>/sse=66 0f 3a 15</opc>
|
||||
<opr>MwRv V Ib</opr>
|
||||
<opr>MwRd V Ib</opr>
|
||||
</def>
|
||||
</instruction>
|
||||
|
||||
|
||||
@@ -122,6 +122,7 @@ enum ud_operand_size {
|
||||
*/
|
||||
SZ_BD = (SZ_B << 8) | SZ_D,
|
||||
SZ_BV = (SZ_B << 8) | SZ_V,
|
||||
SZ_WD = (SZ_W << 8) | SZ_D,
|
||||
SZ_WV = (SZ_W << 8) | SZ_V,
|
||||
SZ_WY = (SZ_W << 8) | SZ_Y,
|
||||
SZ_DY = (SZ_D << 8) | SZ_Y,
|
||||
|
||||
@@ -61,6 +61,7 @@ class UdItabGenerator( ud_opcode.UdOpcodeTables ):
|
||||
"MbRd" : [ "OP_MR" , "SZ_BD" ],
|
||||
"MbRv" : [ "OP_MR" , "SZ_BV" ],
|
||||
"MwRv" : [ "OP_MR" , "SZ_WV" ],
|
||||
"MwRd" : [ "OP_MR" , "SZ_WD" ],
|
||||
"MwRy" : [ "OP_MR" , "SZ_WY" ],
|
||||
"MdRy" : [ "OP_MR" , "SZ_DY" ],
|
||||
"I1" : [ "OP_I1" , "SZ_NA" ],
|
||||
|
||||
@@ -435,6 +435,9 @@ class UdTestGenerator( ud_opcode.UdOpcodeTables ):
|
||||
def Insn_MwRv(self):
|
||||
return [self.Opr_MwRv(cast=True)]
|
||||
|
||||
def Insn_MwRd_V_Ib(self):
|
||||
return [self.Opr_MwRd(cast=False), self.Opr_V(), self.Opr_Ib()]
|
||||
|
||||
def Insn_S_MwRv(self):
|
||||
if self.mode == 64:
|
||||
return [self.Opr_S(), self.Opr_MwRd(cast=False)]
|
||||
|
||||
Reference in New Issue
Block a user