From 1eb1c9d0d2f2ec9cd997d457a0b4b8906bf04254 Mon Sep 17 00:00:00 2001 From: Andrei Vlad LUTAS Date: Fri, 15 Jan 2021 19:09:53 +0200 Subject: [PATCH] Fixed https://github.com/bitdefender/bddisasm/issues/38. --- bddisasm/include/instructions.h | 21 ++- bddisasm/include/table_root.h | 25 ++- bddisasm_test/basic/basic1_64.result | 18 +- bddisasm_test/simd/3dnow_64 | 2 +- bddisasm_test/simd/3dnow_64.asm | 2 - bddisasm_test/simd/3dnow_64.result | 189 ++++++------------- bddisasm_test/special/avx2gather_1_64.result | 12 +- bddisasm_test/special/avx2gather_2_64.result | 12 +- bddisasm_test/special/avx2gather_3_64.result | 12 +- bdshemu_test/basic/test_64_mov.result | 2 +- inc/version.h | 2 +- isagenerator/instructions/table_0F.dat | 3 +- pybddisasm/setup.py | 4 +- 13 files changed, 129 insertions(+), 175 deletions(-) diff --git a/bddisasm/include/instructions.h b/bddisasm/include/instructions.h index 9279744..b517715 100644 --- a/bddisasm/include/instructions.h +++ b/bddisasm/include/instructions.h @@ -5,7 +5,7 @@ #ifndef INSTRUCTIONS_H #define INSTRUCTIONS_H -const ND_INSTRUCTION gInstructions[2584] = +const ND_INSTRUCTION gInstructions[2585] = { // Pos:0 Instruction:"AAA" Encoding:"0x37"/"" { @@ -43536,6 +43536,21 @@ const ND_INSTRUCTION gInstructions[2584] = }, // Pos:2581 Instruction:"XSTORE" Encoding:"0x0F 0xA7 /0xC0"/"" + { + ND_INS_XSTORE, ND_CAT_PADLOCK, ND_SET_CYRIX, 1583, + 0, + ND_MOD_ANY, + 0, ND_OPS_CNT(0, 0), 0, 0, 0, 0, 0, 0, ND_FLAG_MODRM, 0, + 0, + 0, + 0, + 0, + { + 0 + }, + }, + + // Pos:2582 Instruction:"XSTORE" Encoding:"0xF3 0x0F 0xA7 /0xC0"/"" { ND_INS_XSTORE, ND_CAT_PADLOCK, ND_SET_CYRIX, 1583, ND_PREF_REP, @@ -43550,7 +43565,7 @@ const ND_INSTRUCTION gInstructions[2584] = }, }, - // Pos:2582 Instruction:"XSUSLDTRK" Encoding:"0xF2 0x0F 0x01 /0xE8"/"" + // Pos:2583 Instruction:"XSUSLDTRK" Encoding:"0xF2 0x0F 0x01 /0xE8"/"" { ND_INS_XSUSLDTRK, ND_CAT_MISC, ND_SET_TSXLDTRK, 1584, 0, @@ -43565,7 +43580,7 @@ const ND_INSTRUCTION gInstructions[2584] = }, }, - // Pos:2583 Instruction:"XTEST" Encoding:"NP 0x0F 0x01 /0xD6"/"" + // Pos:2584 Instruction:"XTEST" Encoding:"NP 0x0F 0x01 /0xD6"/"" { ND_INS_XTEST, ND_CAT_LOGIC, ND_SET_TSX, 1585, 0, diff --git a/bddisasm/include/table_root.h b/bddisasm/include/table_root.h index 731536d..3fec085 100644 --- a/bddisasm/include/table_root.h +++ b/bddisasm/include/table_root.h @@ -4077,7 +4077,7 @@ const ND_TABLE_INSTRUCTION gRootTable_root_0f_01_reg_05_00_F3_leaf = const ND_TABLE_INSTRUCTION gRootTable_root_0f_01_reg_05_00_F2_leaf = { ND_ILUT_INSTRUCTION, - (const void *)&gInstructions[2582] + (const void *)&gInstructions[2583] }; const ND_TABLE_MPREFIX gRootTable_root_0f_01_reg_05_00_mprefix = @@ -4405,7 +4405,7 @@ const ND_TABLE_MPREFIX gRootTable_root_0f_01_reg_02_01_mprefix = const ND_TABLE_INSTRUCTION gRootTable_root_0f_01_reg_02_06_NP_leaf = { ND_ILUT_INSTRUCTION, - (const void *)&gInstructions[2583] + (const void *)&gInstructions[2584] }; const ND_TABLE_MPREFIX gRootTable_root_0f_01_reg_02_06_mprefix = @@ -11141,17 +11141,34 @@ const ND_TABLE_MODRM_RM gRootTable_root_0f_a7_reg_05_modrmrm = } }; -const ND_TABLE_INSTRUCTION gRootTable_root_0f_a7_reg_00_00_leaf = +const ND_TABLE_INSTRUCTION gRootTable_root_0f_a7_reg_00_00_None_leaf = { ND_ILUT_INSTRUCTION, (const void *)&gInstructions[2581] }; +const ND_TABLE_INSTRUCTION gRootTable_root_0f_a7_reg_00_00_F3_leaf = +{ + ND_ILUT_INSTRUCTION, + (const void *)&gInstructions[2582] +}; + +const ND_TABLE_MPREFIX gRootTable_root_0f_a7_reg_00_00_mprefix = +{ + ND_ILUT_MAN_PREFIX, + { + /* 00 */ (const void *)&gRootTable_root_0f_a7_reg_00_00_None_leaf, + /* 01 */ NULL, + /* 02 */ (const void *)&gRootTable_root_0f_a7_reg_00_00_F3_leaf, + /* 03 */ NULL, + } +}; + const ND_TABLE_MODRM_RM gRootTable_root_0f_a7_reg_00_modrmrm = { ND_ILUT_MODRM_RM, { - /* 00 */ (const void *)&gRootTable_root_0f_a7_reg_00_00_leaf, + /* 00 */ (const void *)&gRootTable_root_0f_a7_reg_00_00_mprefix, /* 01 */ NULL, /* 02 */ NULL, /* 03 */ NULL, diff --git a/bddisasm_test/basic/basic1_64.result b/bddisasm_test/basic/basic1_64.result index 1b9735c..72d5c68 100644 --- a/bddisasm_test/basic/basic1_64.result +++ b/bddisasm_test/basic/basic1_64.result @@ -4601,7 +4601,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 1, RawSize: 1, Encoding: M, RegType: General Purpose, RegSize: 1, RegId: 1, RegCount: 1 Operand: 1, Acc: RW, Type: Register, Size: 1, RawSize: 1, Encoding: R, RegType: General Purpose, RegSize: 1, RegId: 0, RegCount: 1 -0000000000000364 6691 XCHG ax, cx +0000000000000364 6691 XCHG cx, ax DSIZE: 16, ASIZE: 64, VLEN: - ISA Set: I86, Ins cat: DATAXFER, CET tracked: no Valid modes @@ -4613,10 +4613,10 @@ REP: no, REPcc: no, LOCK: no HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: General Purpose, RegSize: 2, RegId: 0, RegCount: 1 - Operand: 1, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: O, RegType: General Purpose, RegSize: 2, RegId: 1, RegCount: 1 + Operand: 0, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: O, RegType: General Purpose, RegSize: 2, RegId: 1, RegCount: 1 + Operand: 1, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: General Purpose, RegSize: 2, RegId: 0, RegCount: 1 -0000000000000366 91 XCHG eax, ecx +0000000000000366 91 XCHG ecx, eax DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: I86, Ins cat: DATAXFER, CET tracked: no Valid modes @@ -4628,10 +4628,10 @@ REP: no, REPcc: no, LOCK: no HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 - Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 + Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 + Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 -0000000000000367 4891 XCHG rax, rcx +0000000000000367 4891 XCHG rcx, rax DSIZE: 64, ASIZE: 64, VLEN: - ISA Set: I86, Ins cat: DATAXFER, CET tracked: no Valid modes @@ -4643,8 +4643,8 @@ REP: no, REPcc: no, LOCK: no HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 0, RegCount: 1 - Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: O, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 + Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: O, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 + Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 0, RegCount: 1 0000000000000369 488703 XCHG qword ptr [rbx], rax DSIZE: 64, ASIZE: 64, VLEN: - diff --git a/bddisasm_test/simd/3dnow_64 b/bddisasm_test/simd/3dnow_64 index e881d43..e6a78f5 100644 --- a/bddisasm_test/simd/3dnow_64 +++ b/bddisasm_test/simd/3dnow_64 @@ -1 +1 @@ -  džLJNJǎǐǔǔǗǚǞǠǤǦǧǪǮǰǴǶǻǿ   \ No newline at end of file +  LJNJǎǐǔǔǗǚǞǠǤǦǧǪǮǰǴǶǻǿ   \ No newline at end of file diff --git a/bddisasm_test/simd/3dnow_64.asm b/bddisasm_test/simd/3dnow_64.asm index 6c18ff5..693a6e4 100644 --- a/bddisasm_test/simd/3dnow_64.asm +++ b/bddisasm_test/simd/3dnow_64.asm @@ -4,7 +4,6 @@ pi2fd mm0,mm7 pf2iw mm0,mm7 pf2id mm0,mm7 - pfrcpv mm0,mm7 pfrsqrtv mm0,mm7 pfnacc mm0,mm7 pfpnacc mm0,mm7 @@ -30,7 +29,6 @@ pi2fd mm0,[rbx] pf2iw mm0,[rbx] pf2id mm0,[rbx] - pfrcpv mm0,[rbx] pfrsqrtv mm0,[rbx] pfnacc mm0,[rbx] pfpnacc mm0,[rbx] diff --git a/bddisasm_test/simd/3dnow_64.result b/bddisasm_test/simd/3dnow_64.result index 84e971b..1621a2c 100644 --- a/bddisasm_test/simd/3dnow_64.result +++ b/bddisasm_test/simd/3dnow_64.result @@ -62,42 +62,11 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000010 0f0fc786 PFRCPV mm0, mm7 +0000000000000010 0f db 0x0f (0x80000009) +0000000000000011 0f db 0x0f (0x80000002) +0000000000000012 c7870f0fc78a0f0fc78e MOV dword ptr [rdi-0x7538f0f1], 0x8ec70f0f DSIZE: 32, ASIZE: 64, VLEN: - - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no - CPUID leaf: 0x80000001, reg: edx, bit: 31 - Valid modes - R0: yes, R1: yes, R2: yes, R3: yes - Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes - SMM on: yes, SMM off: yes, SGX on: yes, SGX off: yes, TSX on: yes, TSX off: yes - VMXRoot: yes, VMXNonRoot: yes, VMXRoot SEAM: yes, VMXNonRoot SEAM: yes, VMX off: yes - Valid prefixes - REP: no, REPcc: no, LOCK: no - HLE: no, XACQUIRE only: no, XRELEASE only: no - BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 - Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 - -0000000000000014 0f0fc787 PFRSQRTV mm0, mm7 - DSIZE: 32, ASIZE: 64, VLEN: - - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no - CPUID leaf: 0x80000001, reg: edx, bit: 31 - Valid modes - R0: yes, R1: yes, R2: yes, R3: yes - Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes - SMM on: yes, SMM off: yes, SGX on: yes, SGX off: yes, TSX on: yes, TSX off: yes - VMXRoot: yes, VMXNonRoot: yes, VMXRoot SEAM: yes, VMXNonRoot SEAM: yes, VMX off: yes - Valid prefixes - REP: no, REPcc: no, LOCK: no - HLE: no, XACQUIRE only: no, XRELEASE only: no - BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 - Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 - -0000000000000018 0f0fc78a PFNACC mm0, mm7 - DSIZE: 32, ASIZE: 64, VLEN: - - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no - CPUID leaf: 0x80000001, reg: edx, bit: 31 + ISA Set: I86, Ins cat: DATAXFER, CET tracked: no Valid modes R0: yes, R1: yes, R2: yes, R3: yes Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes @@ -105,12 +74,13 @@ VMXRoot: yes, VMXNonRoot: yes, VMXRoot SEAM: yes, VMXNonRoot SEAM: yes, VMX off: yes Valid prefixes REP: no, REPcc: no, LOCK: no - HLE: no, XACQUIRE only: no, XRELEASE only: no + HLE: no, XACQUIRE only: no, XRELEASE only: yes BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 - Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 + Operand: 0, Acc: -W, Type: Memory, Size: 4, RawSize: 4, Encoding: M, + Segment: 3, Base: 7, Displacement: 0xffffffff8ac70f0f, + Operand: 1, Acc: R-, Type: Immediate, Size: 4, RawSize: 4, Encoding: I -000000000000001C 0f0fc78e PFPNACC mm0, mm7 +000000000000001C 0f0fc790 PFCMPGE mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -126,7 +96,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000020 0f0fc790 PFCMPGE mm0, mm7 +0000000000000020 0f0fc794 PFMIN mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -158,23 +128,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000028 0f0fc794 PFMIN mm0, mm7 - DSIZE: 32, ASIZE: 64, VLEN: - - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no - CPUID leaf: 0x80000001, reg: edx, bit: 31 - Valid modes - R0: yes, R1: yes, R2: yes, R3: yes - Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes - SMM on: yes, SMM off: yes, SGX on: yes, SGX off: yes, TSX on: yes, TSX off: yes - VMXRoot: yes, VMXNonRoot: yes, VMXRoot SEAM: yes, VMXNonRoot SEAM: yes, VMX off: yes - Valid prefixes - REP: no, REPcc: no, LOCK: no - HLE: no, XACQUIRE only: no, XRELEASE only: no - BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 - Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 - -000000000000002C 0f0fc797 PFRSQRT mm0, mm7 +0000000000000028 0f0fc797 PFRSQRT mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -190,7 +144,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000030 0f0fc79a PFSUB mm0, mm7 +000000000000002C 0f0fc79a PFSUB mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -206,7 +160,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000034 0f0fc79e PFADD mm0, mm7 +0000000000000030 0f0fc79e PFADD mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -222,7 +176,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000038 0f0fc7a0 PFCMPGT mm0, mm7 +0000000000000034 0f0fc7a0 PFCMPGT mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -238,7 +192,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -000000000000003C 0f0fc7a4 PFMAX mm0, mm7 +0000000000000038 0f0fc7a4 PFMAX mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -254,7 +208,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000040 0f0fc7a6 PFRCPIT1 mm0, mm7 +000000000000003C 0f0fc7a6 PFRCPIT1 mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -270,7 +224,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000044 0f0fc7a7 PFRSQIT1 mm0, mm7 +0000000000000040 0f0fc7a7 PFRSQIT1 mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -286,7 +240,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000048 0f0fc7aa PFSUBR mm0, mm7 +0000000000000044 0f0fc7aa PFSUBR mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -302,7 +256,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -000000000000004C 0f0fc7ae PFACC mm0, mm7 +0000000000000048 0f0fc7ae PFACC mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -318,7 +272,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000050 0f0fc7b0 PFCMPEQ mm0, mm7 +000000000000004C 0f0fc7b0 PFCMPEQ mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -334,7 +288,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000054 0f0fc7b4 PFMUL mm0, mm7 +0000000000000050 0f0fc7b4 PFMUL mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -350,7 +304,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000058 0f0fc7b6 PFRCPIT2 mm0, mm7 +0000000000000054 0f0fc7b6 PFRCPIT2 mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -366,7 +320,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -000000000000005C 0f0fc7bb PSWAPD mm0, mm7 +0000000000000058 0f0fc7bb PSWAPD mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -382,7 +336,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000060 0f0fc7bf PAVGUSB mm0, mm7 +000000000000005C 0f0fc7bf PAVGUSB mm0, mm7 DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -398,24 +352,7 @@ Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: M, RegType: MMX, RegSize: 8, RegId: 7, RegCount: 1 -0000000000000064 0f0f030c PI2FW mm0, qword ptr [rbx] - DSIZE: 32, ASIZE: 64, VLEN: - - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no - CPUID leaf: 0x80000001, reg: edx, bit: 31 - Valid modes - R0: yes, R1: yes, R2: yes, R3: yes - Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes - SMM on: yes, SMM off: yes, SGX on: yes, SGX off: yes, TSX on: yes, TSX off: yes - VMXRoot: yes, VMXNonRoot: yes, VMXRoot SEAM: yes, VMXNonRoot SEAM: yes, VMX off: yes - Valid prefixes - REP: no, REPcc: no, LOCK: no - HLE: no, XACQUIRE only: no, XRELEASE only: no - BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 - Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, - Segment: 3, Base: 3, - -0000000000000068 0f0f030d PI2FD mm0, qword ptr [rbx] +0000000000000060 0f0f030c PI2FW mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -432,7 +369,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -000000000000006C 0f0f031c PF2IW mm0, qword ptr [rbx] +0000000000000064 0f0f030d PI2FD mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -449,7 +386,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -0000000000000070 0f0f031d PF2ID mm0, qword ptr [rbx] +0000000000000068 0f0f031c PF2IW mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -466,7 +403,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -0000000000000074 0f0f0386 PFRCPV mm0, qword ptr [rbx] +000000000000006C 0f0f031d PF2ID mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -483,41 +420,27 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -0000000000000078 0f0f0387 PFRSQRTV mm0, qword ptr [rbx] +0000000000000070 0f db 0x0f (0x80000009) +0000000000000071 0f03870f0f038a LSL eax, word ptr [rdi-0x75fcf0f1] DSIZE: 32, ASIZE: 64, VLEN: - - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no - CPUID leaf: 0x80000001, reg: edx, bit: 31 - Valid modes - R0: yes, R1: yes, R2: yes, R3: yes - Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes - SMM on: yes, SMM off: yes, SGX on: yes, SGX off: yes, TSX on: yes, TSX off: yes - VMXRoot: yes, VMXNonRoot: yes, VMXRoot SEAM: yes, VMXNonRoot SEAM: yes, VMX off: yes - Valid prefixes - REP: no, REPcc: no, LOCK: no - HLE: no, XACQUIRE only: no, XRELEASE only: no - BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 - Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, - Segment: 3, Base: 3, - -000000000000007C 0f0f038a PFNACC mm0, qword ptr [rbx] - DSIZE: 32, ASIZE: 64, VLEN: - - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no - CPUID leaf: 0x80000001, reg: edx, bit: 31 + ISA Set: I286PROT, Ins cat: SYSTEM, CET tracked: no + FLAGS access + ZF: m, Valid modes R0: yes, R1: yes, R2: yes, R3: yes - Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes + Real: no, V8086: no, Prot: yes, Compat: yes, Long: yes SMM on: yes, SMM off: yes, SGX on: yes, SGX off: yes, TSX on: yes, TSX off: yes VMXRoot: yes, VMXNonRoot: yes, VMXRoot SEAM: yes, VMXNonRoot SEAM: yes, VMX off: yes Valid prefixes REP: no, REPcc: no, LOCK: no HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: R, RegType: MMX, RegSize: 8, RegId: 0, RegCount: 1 - Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, - Segment: 3, Base: 3, + Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: R, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 + Operand: 1, Acc: R-, Type: Memory, Size: 2, RawSize: 2, Encoding: M, + Segment: 3, Base: 7, Displacement: 0xffffffff8a030f0f, + Operand: 2, Acc: -W, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: Flags, RegSize: 4, RegId: 0, RegCount: 1 -0000000000000080 0f0f038e PFPNACC mm0, qword ptr [rbx] +0000000000000078 0f0f038e PFPNACC mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -534,7 +457,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -0000000000000084 0f0f0390 PFCMPGE mm0, qword ptr [rbx] +000000000000007C 0f0f0390 PFCMPGE mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -551,7 +474,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -0000000000000088 0f0f0394 PFMIN mm0, qword ptr [rbx] +0000000000000080 0f0f0394 PFMIN mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -568,7 +491,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -000000000000008C 0f0f0394 PFMIN mm0, qword ptr [rbx] +0000000000000084 0f0f0394 PFMIN mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -585,7 +508,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -0000000000000090 0f0f0397 PFRSQRT mm0, qword ptr [rbx] +0000000000000088 0f0f0397 PFRSQRT mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -602,7 +525,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -0000000000000094 0f0f039a PFSUB mm0, qword ptr [rbx] +000000000000008C 0f0f039a PFSUB mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -619,7 +542,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -0000000000000098 0f0f039e PFADD mm0, qword ptr [rbx] +0000000000000090 0f0f039e PFADD mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -636,7 +559,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -000000000000009C 0f0f03a0 PFCMPGT mm0, qword ptr [rbx] +0000000000000094 0f0f03a0 PFCMPGT mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -653,7 +576,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -00000000000000A0 0f0f03a4 PFMAX mm0, qword ptr [rbx] +0000000000000098 0f0f03a4 PFMAX mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -670,7 +593,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -00000000000000A4 0f0f03a6 PFRCPIT1 mm0, qword ptr [rbx] +000000000000009C 0f0f03a6 PFRCPIT1 mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -687,7 +610,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -00000000000000A8 0f0f03a7 PFRSQIT1 mm0, qword ptr [rbx] +00000000000000A0 0f0f03a7 PFRSQIT1 mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -704,7 +627,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -00000000000000AC 0f0f03aa PFSUBR mm0, qword ptr [rbx] +00000000000000A4 0f0f03aa PFSUBR mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -721,7 +644,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -00000000000000B0 0f0f03ae PFACC mm0, qword ptr [rbx] +00000000000000A8 0f0f03ae PFACC mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -738,7 +661,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -00000000000000B4 0f0f03b0 PFCMPEQ mm0, qword ptr [rbx] +00000000000000AC 0f0f03b0 PFCMPEQ mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -755,7 +678,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -00000000000000B8 0f0f03b4 PFMUL mm0, qword ptr [rbx] +00000000000000B0 0f0f03b4 PFMUL mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -772,7 +695,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -00000000000000BC 0f0f03b6 PFRCPIT2 mm0, qword ptr [rbx] +00000000000000B4 0f0f03b6 PFRCPIT2 mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -789,7 +712,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -00000000000000C0 0f0f03bb PSWAPD mm0, qword ptr [rbx] +00000000000000B8 0f0f03bb PSWAPD mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 @@ -806,7 +729,7 @@ Operand: 1, Acc: R-, Type: Memory, Size: 8, RawSize: 8, Encoding: M, Segment: 3, Base: 3, -00000000000000C4 0f0f03bf PAVGUSB mm0, qword ptr [rbx] +00000000000000BC 0f0f03bf PAVGUSB mm0, qword ptr [rbx] DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: 3DNOW, Ins cat: 3DNOW, CET tracked: no CPUID leaf: 0x80000001, reg: edx, bit: 31 diff --git a/bddisasm_test/special/avx2gather_1_64.result b/bddisasm_test/special/avx2gather_1_64.result index 1333571..3f37c58 100644 --- a/bddisasm_test/special/avx2gather_1_64.result +++ b/bddisasm_test/special/avx2gather_1_64.result @@ -18,7 +18,7 @@ Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 -0000000000000003 91 XCHG eax, ecx +0000000000000003 91 XCHG ecx, eax DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: I86, Ins cat: DATAXFER, CET tracked: no Valid modes @@ -30,10 +30,10 @@ REP: no, REPcc: no, LOCK: no HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 - Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 + Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 + Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 -0000000000000004 94 XCHG eax, esp +0000000000000004 94 XCHG esp, eax DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: I86, Ins cat: DATAXFER, CET tracked: no Valid modes @@ -45,8 +45,8 @@ REP: no, REPcc: no, LOCK: no HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 - Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 4, RegCount: 1 + Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 4, RegCount: 1 + Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 0000000000000005 d300 ROL dword ptr [rax], cl DSIZE: 32, ASIZE: 64, VLEN: - diff --git a/bddisasm_test/special/avx2gather_2_64.result b/bddisasm_test/special/avx2gather_2_64.result index af3a7f3..31840eb 100644 --- a/bddisasm_test/special/avx2gather_2_64.result +++ b/bddisasm_test/special/avx2gather_2_64.result @@ -18,7 +18,7 @@ Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 -0000000000000003 91 XCHG eax, ecx +0000000000000003 91 XCHG ecx, eax DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: I86, Ins cat: DATAXFER, CET tracked: no Valid modes @@ -30,10 +30,10 @@ REP: no, REPcc: no, LOCK: no HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 - Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 + Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 + Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 -0000000000000004 94 XCHG eax, esp +0000000000000004 94 XCHG esp, eax DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: I86, Ins cat: DATAXFER, CET tracked: no Valid modes @@ -45,8 +45,8 @@ REP: no, REPcc: no, LOCK: no HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 - Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 4, RegCount: 1 + Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 4, RegCount: 1 + Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 0000000000000005 fb STI DSIZE: 32, ASIZE: 64, VLEN: - diff --git a/bddisasm_test/special/avx2gather_3_64.result b/bddisasm_test/special/avx2gather_3_64.result index 3f4155c..a576998 100644 --- a/bddisasm_test/special/avx2gather_3_64.result +++ b/bddisasm_test/special/avx2gather_3_64.result @@ -18,7 +18,7 @@ Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 -0000000000000003 91 XCHG eax, ecx +0000000000000003 91 XCHG ecx, eax DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: I86, Ins cat: DATAXFER, CET tracked: no Valid modes @@ -30,10 +30,10 @@ REP: no, REPcc: no, LOCK: no HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 - Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 + Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 + Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 -0000000000000004 94 XCHG eax, esp +0000000000000004 94 XCHG esp, eax DSIZE: 32, ASIZE: 64, VLEN: - ISA Set: I86, Ins cat: DATAXFER, CET tracked: no Valid modes @@ -45,8 +45,8 @@ REP: no, REPcc: no, LOCK: no HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no - Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 - Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 4, RegCount: 1 + Operand: 0, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: O, RegType: General Purpose, RegSize: 4, RegId: 4, RegCount: 1 + Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 0000000000000005 fb STI DSIZE: 32, ASIZE: 64, VLEN: - diff --git a/bdshemu_test/basic/test_64_mov.result b/bdshemu_test/basic/test_64_mov.result index 30316b7..6da7782 100644 --- a/bdshemu_test/basic/test_64_mov.result +++ b/bdshemu_test/basic/test_64_mov.result @@ -69,7 +69,7 @@ Emulating: 0x0000000000200022 MOV ebx, 0x09abcdef R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000 R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000 RIP = 0x0000000000200027 RFLAGS = 0x0000000000000202 -Emulating: 0x0000000000200027 XCHG eax, ebx +Emulating: 0x0000000000200027 XCHG ebx, eax RAX = 0x0000000009abcdef RCX = 0x000000000000ffff RDX = 0x0000000000000000 RBX = 0x0000000012345678 RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000 R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000 diff --git a/inc/version.h b/inc/version.h index ed5af09..86f46da 100644 --- a/inc/version.h +++ b/inc/version.h @@ -7,6 +7,6 @@ #define DISASM_VERSION_MAJOR 1 #define DISASM_VERSION_MINOR 31 -#define DISASM_VERSION_REVISION 6 +#define DISASM_VERSION_REVISION 7 #endif // DISASM_VER_H diff --git a/isagenerator/instructions/table_0F.dat b/isagenerator/instructions/table_0F.dat index 1ae990a..8e75894 100644 --- a/isagenerator/instructions/table_0F.dat +++ b/isagenerator/instructions/table_0F.dat @@ -471,7 +471,8 @@ SHLD Ev,Gv,CL Fv [ 0x0F 0xA5 /r MONTMUL nil nil [ 0xF3 0x0F 0xA6 /0xC0] s:CYRIX, t:PADLOCK, p:REP XSHA1 nil nil [ 0xF3 0x0F 0xA6 /0xC8] s:CYRIX, t:PADLOCK, p:REP XSHA256 nil nil [ 0xF3 0x0F 0xA6 /0xD0] s:CYRIX, t:PADLOCK, p:REP -XSTORE nil nil [ 0x0F 0xA7 /0xC0] s:CYRIX, t:PADLOCK, p:REP +XSTORE nil nil [ 0x0F 0xA7 /0xC0] s:CYRIX, t:PADLOCK +XSTORE nil nil [ 0xF3 0x0F 0xA7 /0xC0] s:CYRIX, t:PADLOCK, p:REP XCRYPTECB nil nil [ 0xF3 0x0F 0xA7 /0xC8] s:CYRIX, t:PADLOCK, p:REP XCRYPTCBC nil nil [ 0xF3 0x0F 0xA7 /0xD0] s:CYRIX, t:PADLOCK, p:REP XCRYPTCTR nil nil [ 0xF3 0x0F 0xA7 /0xD8] s:CYRIX, t:PADLOCK, p:REP diff --git a/pybddisasm/setup.py b/pybddisasm/setup.py index cde7e27..02b9bea 100644 --- a/pybddisasm/setup.py +++ b/pybddisasm/setup.py @@ -12,7 +12,7 @@ from setuptools import find_packages, setup, Command, Extension, Distribution from codecs import open VERSION = (0, 1, 3) -LIBRARY_VERSION = (1, 31, 6) +LIBRARY_VERSION = (1, 31, 7) LIBRARY_INSTRUX_SIZE = 864 packages = ['pybddisasm'] @@ -89,7 +89,7 @@ setup( 'Operating System :: POSIX :: Linux' ], ext_modules = [Extension("_pybddisasm", - extra_compile_args = ["-march=westmere", "-maes"], + extra_compile_args = ["-march=westmere"], sources = ["_pybddisasm/_pybddisasm.c", "_pybddisasm/pybddisasm.c"], define_macros = [('AMD64', None), ('LIBRARY_INSTRUX_SIZE', LIBRARY_INSTRUX_SIZE)], include_dirs = ['../inc'],