Changeset 95319 in vbox
- Timestamp:
- Jun 21, 2022 9:53:39 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 151909
- Location:
- trunk/src/VBox/Disassembler
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Disassembler/DisasmCore.cpp
r95314 r95319 2485 2485 2486 2486 uint8_t const bRm = disReadByte(pDis, offInstr); 2487 pOp = &g_aMapX86_Group17[ MODRM_REG(bRm)];2487 pOp = &g_aMapX86_Group17[(MODRM_REG(bRm) << 1) | (pDis->bVexDestReg & 1)]; 2488 2488 2489 2489 return disParseInstruction(offInstr, pOp, pDis); -
trunk/src/VBox/Disassembler/DisasmInternal.h
r95314 r95319 187 187 extern const DISOPCODE g_aMapX86_Group15_mod11_rm000[8]; 188 188 extern const DISOPCODE g_aMapX86_Group16[8]; 189 extern const DISOPCODE g_aMapX86_Group17[8 ];189 extern const DISOPCODE g_aMapX86_Group17[8*2]; 190 190 extern const DISOPCODE g_aMapX86_NopPause[2]; 191 191 /** @} */ -
trunk/src/VBox/Disassembler/DisasmTables.cpp
r95314 r95319 3785 3785 const DISOPMAPDESC g_DisasVexMap1F3Range = { &g_aDisasVexMap1F3[0], 0x10, RT_ELEMENTS(g_aDisasVexMap1F3) }; 3786 3786 3787 const DISOPCODE g_aMapX86_Group17[8] = 3788 { 3789 INVALID_OPCODE, 3787 /** Indexed by: (/r << 1) | VEX.L */ 3788 const DISOPCODE g_aMapX86_Group17[8*2] = 3789 { 3790 INVALID_OPCODE_MOD_RM(0x00), 3791 INVALID_OPCODE_MOD_RM(0x01), 3790 3792 OPVEX("blsr %By,%Ey", IDX_ParseVexDest, IDX_ParseModRM, 0, 0, OP_BLSR, OP_PARM_By, OP_PARM_Ey, OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS), 3793 INVALID_OPCODE_MOD_RM(0x03), 3791 3794 OPVEX("blsmsk %By,%Ey", IDX_ParseVexDest, IDX_ParseModRM, 0, 0, OP_BLSMSK, OP_PARM_By, OP_PARM_Ey, OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS), 3795 INVALID_OPCODE_MOD_RM(0x05), 3792 3796 OPVEX("blsi %By,%Ey", IDX_ParseVexDest, IDX_ParseModRM, 0, 0, OP_BLSI, OP_PARM_By, OP_PARM_Ey, OP_PARM_NONE, OP_PARM_NONE, DISOPTYPE_HARMLESS), 3793 INVALID_OPCODE, 3794 INVALID_OPCODE, 3795 INVALID_OPCODE, 3796 INVALID_OPCODE, 3797 INVALID_OPCODE_MOD_RM(0x07), 3798 INVALID_OPCODE_MOD_RM(0x08), 3799 INVALID_OPCODE_MOD_RM(0x09), 3800 INVALID_OPCODE_MOD_RM(0x0a), 3801 INVALID_OPCODE_MOD_RM(0x0b), 3802 INVALID_OPCODE_MOD_RM(0x0c), 3803 INVALID_OPCODE_MOD_RM(0x0d), 3804 INVALID_OPCODE_MOD_RM(0x0e), 3805 INVALID_OPCODE_MOD_RM(0x0f), 3797 3806 }; 3798 3807 -
trunk/src/VBox/Disassembler/testcase/tstDisasm-1A.asm
r95314 r95319 427 427 blsi eax, [rbx] 428 428 blsi rax, [rbx] 429 db 0c4h, 0e2h, 0f8h | 4, 0f3h, 01bh ; blsi rax, [rbx] with VEX.L=1 - should be invalid 429 430 blsmsk eax, [rbx+rdi*2] 430 431 blsmsk rax, [rbx+rdi*2]
Note:
See TracChangeset
for help on using the changeset viewer.