Changeset 53150 in vbox
- Timestamp:
- Oct 27, 2014 9:49:17 AM (10 years ago)
- Location:
- trunk/src/VBox/Disassembler
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Disassembler/DisasmTables.cpp
r53131 r53150 1669 1669 }; 1670 1670 1671 const DISOPCODE g_aThreeByteMapX86_660F3A_10[16] = 1672 { 1673 INVALID_OPCODE, 1674 INVALID_OPCODE, 1675 INVALID_OPCODE, 1676 INVALID_OPCODE, 1677 OP("pextrb %Eb,%Vdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_PEXTRB, OP_PARM_Eb, OP_PARM_Vdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1678 OP("pextrw %Ew,%Vdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_PEXTRW, OP_PARM_Ew, OP_PARM_Vdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1679 OP("pextrd %Ed,%Vdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_PEXTRD, OP_PARM_Ed, OP_PARM_Vdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1680 OP("extractps %Ed,%Vdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_EXTRACTPS, OP_PARM_Ed, OP_PARM_Vdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1681 INVALID_OPCODE, 1682 INVALID_OPCODE, 1683 INVALID_OPCODE, 1684 INVALID_OPCODE, 1685 INVALID_OPCODE, 1686 INVALID_OPCODE, 1687 INVALID_OPCODE, 1688 INVALID_OPCODE, 1689 }; 1690 1691 const DISOPCODE g_aThreeByteMapX86_660F3A_20[16] = 1692 { 1693 // vpinsrb %Vdq,%Hdq,%Ry/Mb,%Ib 1694 OP("pinsrb %Vdq,%Ey,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_PINSRB, OP_PARM_Vdq, OP_PARM_Ey, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1695 // vinsertps %Vdq,%Hdq,%Udq/Md,%Ib 1696 OP("insertps %Vdq,%Wdq,%Ib",IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_INSERTPS, OP_PARM_Vdq, OP_PARM_Wdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1697 OP("pinsrd %Vdq,%Ey,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_PINSRD, OP_PARM_Vdq, OP_PARM_Ey, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1698 INVALID_OPCODE, 1699 INVALID_OPCODE, 1700 INVALID_OPCODE, 1701 INVALID_OPCODE, 1702 INVALID_OPCODE, 1703 INVALID_OPCODE, 1704 INVALID_OPCODE, 1705 INVALID_OPCODE, 1706 INVALID_OPCODE, 1707 INVALID_OPCODE, 1708 INVALID_OPCODE, 1709 INVALID_OPCODE, 1710 INVALID_OPCODE, 1711 }; 1712 1713 const DISOPCODE g_aThreeByteMapX86_660F3A_40[16] = 1714 { 1715 OP("dpps %Vdq,%Wdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_DPPS, OP_PARM_Vdq, OP_PARM_Wdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1716 OP("dppd %Vdq,%Wdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_DPPD, OP_PARM_Vdq, OP_PARM_Wdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1717 OP("mpsadbw %Vdq,%Wdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_MPSADBW, OP_PARM_Vdq, OP_PARM_Wdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1718 INVALID_OPCODE, 1719 OP("pclmulqdq %Vdq,%Wdq,%Ib",IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_PCLMULQDQ, OP_PARM_Vdq, OP_PARM_Wdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1720 INVALID_OPCODE, 1721 INVALID_OPCODE, 1722 INVALID_OPCODE, 1723 INVALID_OPCODE, 1724 INVALID_OPCODE, 1725 INVALID_OPCODE, 1726 INVALID_OPCODE, 1727 INVALID_OPCODE, 1728 INVALID_OPCODE, 1729 INVALID_OPCODE, 1730 INVALID_OPCODE, 1731 }; 1732 1733 const DISOPCODE g_aThreeByteMapX86_660F3A_60[16] = 1734 { 1735 OP("pcmpestrm %Vdq,%Wdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_PCMPESTRM, OP_PARM_Vdq, OP_PARM_Wdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1736 OP("pcmpestri %Vdq,%Wdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_PCMPESTRI, OP_PARM_Vdq, OP_PARM_Wdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1737 OP("pcmpistrm %Vdq,%Wdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_PCMPISTRM, OP_PARM_Vdq, OP_PARM_Wdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1738 OP("pcmpistri %Vdq,%Wdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_PCMPISTRI, OP_PARM_Vdq, OP_PARM_Wdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1739 INVALID_OPCODE, 1740 INVALID_OPCODE, 1741 INVALID_OPCODE, 1742 INVALID_OPCODE, 1743 INVALID_OPCODE, 1744 INVALID_OPCODE, 1745 INVALID_OPCODE, 1746 INVALID_OPCODE, 1747 INVALID_OPCODE, 1748 INVALID_OPCODE, 1749 INVALID_OPCODE, 1750 INVALID_OPCODE, 1751 }; 1752 1753 const DISOPCODE g_aThreeByteMapX86_660F3A_D0[16] = 1754 { 1755 INVALID_OPCODE, 1756 INVALID_OPCODE, 1757 INVALID_OPCODE, 1758 INVALID_OPCODE, 1759 INVALID_OPCODE, 1760 INVALID_OPCODE, 1761 INVALID_OPCODE, 1762 INVALID_OPCODE, 1763 INVALID_OPCODE, 1764 INVALID_OPCODE, 1765 INVALID_OPCODE, 1766 INVALID_OPCODE, 1767 INVALID_OPCODE, 1768 INVALID_OPCODE, 1769 INVALID_OPCODE, 1770 OP("aeskeygen %Vdq,%Wdq,%Ib", IDX_ParseModRM, IDX_UseModRM, IDX_ParseImmByte, OP_AESKEYGEN, OP_PARM_Vdq, OP_PARM_Wdq, OP_PARM_Ib, DISOPTYPE_HARMLESS), 1771 }; 1772 1671 1773 /** Three byte opcode map with prefix 0x66 (0xF 0x3A) */ 1672 1774 /** @todo remainder missing (too lazy now) */ … … 1676 1778 NULL, 1677 1779 /* 1 */ 1678 NULL,1780 g_aThreeByteMapX86_660F3A_10, 1679 1781 /* 2 */ 1680 NULL,1782 g_aThreeByteMapX86_660F3A_20, 1681 1783 /* 3 */ 1682 1784 NULL, 1683 1785 /* 4 */ 1684 NULL,1786 g_aThreeByteMapX86_660F3A_40, 1685 1787 /* 5 */ 1686 1788 NULL, 1687 1789 /* 6 */ 1688 NULL,1790 g_aThreeByteMapX86_660F3A_60, 1689 1791 /* 7 */ 1690 1792 NULL, … … 1700 1802 NULL, 1701 1803 /* d */ 1702 NULL,1804 g_aThreeByteMapX86_660F3A_D0, 1703 1805 /* e */ 1704 1806 NULL, -
trunk/src/VBox/Disassembler/testcase/tstDisasm-1A.asm
r53131 r53150 383 383 vblendvpd xmm0, xmm1, [100h], xmm3 384 384 385 dpps xmm0, xmm1, 1 386 387 extractps eax, xmm2, 3 388 385 389 ret 386 390 ENDPROC TestProc64
Note:
See TracChangeset
for help on using the changeset viewer.