trunk/src/emu/cpu/i386/i386dasm.c
| r241816 | r241817 | |
| 17 | 17 | PARAM_REG3264, /* 32-bit or 64-bit register */ |
| 18 | 18 | PARAM_REG2_32, /* 32-bit register */ |
| 19 | 19 | PARAM_MMX, /* MMX register */ |
| 20 | PARAM_MMX2, /* MMX register in modrm */ |
| 20 | 21 | PARAM_XMM, /* XMM register */ |
| 21 | 22 | PARAM_RM, /* 16 or 32-bit memory or register */ |
| 22 | 23 | PARAM_RM8, /* 8-bit memory or register */ |
| r241816 | r241817 | |
| 739 | 740 | "cmpsd\0" |
| 740 | 741 | "cmpss", MODRM|VAR_NAME4,PARAM_XMM, PARAM_XMMM, 0 }, |
| 741 | 742 | {"movnti", MODRM, PARAM_RM, PARAM_REG, 0 }, |
| 742 | | {"pinsrw", MODRM, PARAM_MMX, PARAM_MMXM, PARAM_UI8 }, |
| 743 | {"pinsrw", MODRM, PARAM_MMX, PARAM_RM, PARAM_UI8 }, |
| 743 | 744 | {"pextrw", MODRM, PARAM_MMX, PARAM_MMXM, PARAM_UI8 }, |
| 744 | 745 | {"shufps\0" |
| 745 | 746 | "shufpd\0" |
| r241816 | r241817 | |
| 1825 | 1826 | { |
| 1826 | 1827 | {"???", 0, 0, 0, 0 }, |
| 1827 | 1828 | {"???", 0, 0, 0, 0 }, |
| 1828 | | {"psrlw", 0, PARAM_MMX, PARAM_UI8, 0 }, |
| 1829 | {"psrlw", 0, PARAM_MMX2, PARAM_UI8, 0 }, |
| 1829 | 1830 | {"???", 0, 0, 0, 0 }, |
| 1830 | | {"psraw", 0, PARAM_MMX, PARAM_UI8, 0 }, |
| 1831 | {"psraw", 0, PARAM_MMX2, PARAM_UI8, 0 }, |
| 1831 | 1832 | {"???", 0, 0, 0, 0 }, |
| 1832 | | {"psllw", 0, PARAM_MMX, PARAM_UI8, 0 }, |
| 1833 | {"psllw", 0, PARAM_MMX2, PARAM_UI8, 0 }, |
| 1833 | 1834 | {"???", 0, 0, 0, 0 } |
| 1834 | 1835 | }; |
| 1835 | 1836 | |
| r241816 | r241817 | |
| 1837 | 1838 | { |
| 1838 | 1839 | {"???", 0, 0, 0, 0 }, |
| 1839 | 1840 | {"???", 0, 0, 0, 0 }, |
| 1840 | | {"psrld", 0, PARAM_MMX, PARAM_UI8, 0 }, |
| 1841 | | {"psrldq", 0, PARAM_MMX, PARAM_UI8, 0 }, |
| 1841 | {"psrld", 0, PARAM_MMX2, PARAM_UI8, 0 }, |
| 1842 | 1842 | {"???", 0, 0, 0, 0 }, |
| 1843 | {"psrad", 0, PARAM_MMX2, PARAM_UI8, 0 }, |
| 1843 | 1844 | {"???", 0, 0, 0, 0 }, |
| 1844 | | {"pslld", 0, PARAM_MMX, PARAM_UI8, 0 }, |
| 1845 | | {"pslldq", 0, PARAM_MMX, PARAM_UI8, 0 }, |
| 1845 | {"pslld", 0, PARAM_MMX2, PARAM_UI8, 0 }, |
| 1846 | {"???", 0, 0, 0, 0 } |
| 1846 | 1847 | }; |
| 1847 | 1848 | |
| 1848 | 1849 | static const I386_OPCODE group0F73_table[8] = |
| 1849 | 1850 | { |
| 1850 | 1851 | {"???", 0, 0, 0, 0 }, |
| 1851 | 1852 | {"???", 0, 0, 0, 0 }, |
| 1852 | | {"psrlq", 0, PARAM_MMX, PARAM_UI8, 0 }, |
| 1853 | {"psrlq", 0, PARAM_MMX2, PARAM_UI8, 0 }, |
| 1854 | {"psrldq", 0, PARAM_MMX2, PARAM_UI8, 0 }, |
| 1853 | 1855 | {"???", 0, 0, 0, 0 }, |
| 1854 | | {"psraq", 0, PARAM_MMX, PARAM_UI8, 0 }, |
| 1855 | 1856 | {"???", 0, 0, 0, 0 }, |
| 1856 | | {"psllq", 0, PARAM_MMX, PARAM_UI8, 0 }, |
| 1857 | | {"???", 0, 0, 0, 0 } |
| 1857 | {"psllq", 0, PARAM_MMX2, PARAM_UI8, 0 }, |
| 1858 | {"pslldq", 0, PARAM_MMX2, PARAM_UI8, 0 }, |
| 1858 | 1859 | }; |
| 1859 | 1860 | |
| 1860 | 1861 | static const I386_OPCODE group0FAE_table[8] = |
| r241816 | r241817 | |
| 2216 | 2217 | s += sprintf( s, "mm%d", MODRM_REG1 | regex ); |
| 2217 | 2218 | break; |
| 2218 | 2219 | |
| 2220 | case PARAM_MMX2: |
| 2221 | if (pre0f == 0x66 || pre0f == 0xf2 || pre0f == 0xf3) |
| 2222 | s += sprintf( s, "xmm%d", MODRM_REG2 | regex ); |
| 2223 | else |
| 2224 | s += sprintf( s, "mm%d", MODRM_REG2 | regex ); |
| 2225 | break; |
| 2226 | |
| 2219 | 2227 | case PARAM_XMM: |
| 2220 | 2228 | s += sprintf( s, "xmm%d", MODRM_REG1 | regex ); |
| 2221 | 2229 | break; |