1821 1822 void setb(Condition cc, Register dst); 1823 1824 void palignr(XMMRegister dst, XMMRegister src, int imm8); 1825 void vpalignr(XMMRegister dst, XMMRegister src1, XMMRegister src2, int imm8, int vector_len); 1826 void evalignq(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8); 1827 1828 void pblendw(XMMRegister dst, XMMRegister src, int imm8); 1829 1830 void sha1rnds4(XMMRegister dst, XMMRegister src, int imm8); 1831 void sha1nexte(XMMRegister dst, XMMRegister src); 1832 void sha1msg1(XMMRegister dst, XMMRegister src); 1833 void sha1msg2(XMMRegister dst, XMMRegister src); 1834 // xmm0 is implicit additional source to the following instruction. 1835 void sha256rnds2(XMMRegister dst, XMMRegister src); 1836 void sha256msg1(XMMRegister dst, XMMRegister src); 1837 void sha256msg2(XMMRegister dst, XMMRegister src); 1838 1839 void shldl(Register dst, Register src); 1840 void shldl(Register dst, Register src, int8_t imm8); 1841 1842 void shll(Register dst, int imm8); 1843 void shll(Register dst); 1844 1845 void shlq(Register dst, int imm8); 1846 void shlq(Register dst); 1847 1848 void shrdl(Register dst, Register src); 1849 1850 void shrl(Register dst, int imm8); 1851 void shrl(Register dst); 1852 1853 void shrq(Register dst, int imm8); 1854 void shrq(Register dst); 1855 1856 void smovl(); // QQQ generic? 1857 1858 // Compute Square Root of Scalar Double-Precision Floating-Point Value 1859 void sqrtsd(XMMRegister dst, Address src); 1860 void sqrtsd(XMMRegister dst, XMMRegister src); 1861 1862 void roundsd(XMMRegister dst, Address src, int32_t rmode); 1863 void roundsd(XMMRegister dst, XMMRegister src, int32_t rmode); 1864 1865 // Compute Square Root of Scalar Single-Precision Floating-Point Value 1866 void sqrtss(XMMRegister dst, Address src); 1867 void sqrtss(XMMRegister dst, XMMRegister src); 1868 1869 void std(); 2122 void vpsrld(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2123 void vpsrlq(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2124 void vpsrlw(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2125 void vpsrld(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2126 void vpsrlq(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2127 void vpsrldq(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2128 void evpsrlvw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2129 void evpsllvw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2130 2131 // Arithmetic shift right packed integers (only shorts and ints, no instructions for longs) 2132 void psraw(XMMRegister dst, int shift); 2133 void psrad(XMMRegister dst, int shift); 2134 void psraw(XMMRegister dst, XMMRegister shift); 2135 void psrad(XMMRegister dst, XMMRegister shift); 2136 void vpsraw(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2137 void vpsrad(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2138 void vpsraw(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2139 void vpsrad(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2140 void evpsraq(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2141 void evpsraq(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2142 2143 // And packed integers 2144 void pand(XMMRegister dst, XMMRegister src); 2145 void vpand(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2146 void vpand(XMMRegister dst, XMMRegister nds, Address src, int vector_len); 2147 void vpandq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2148 2149 // Andn packed integers 2150 void pandn(XMMRegister dst, XMMRegister src); 2151 void vpandn(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2152 2153 // Or packed integers 2154 void por(XMMRegister dst, XMMRegister src); 2155 void vpor(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2156 void vpor(XMMRegister dst, XMMRegister nds, Address src, int vector_len); 2157 void vporq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2158 2159 // Xor packed integers 2160 void pxor(XMMRegister dst, XMMRegister src); 2161 void vpxor(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); | 1821 1822 void setb(Condition cc, Register dst); 1823 1824 void palignr(XMMRegister dst, XMMRegister src, int imm8); 1825 void vpalignr(XMMRegister dst, XMMRegister src1, XMMRegister src2, int imm8, int vector_len); 1826 void evalignq(XMMRegister dst, XMMRegister nds, XMMRegister src, uint8_t imm8); 1827 1828 void pblendw(XMMRegister dst, XMMRegister src, int imm8); 1829 1830 void sha1rnds4(XMMRegister dst, XMMRegister src, int imm8); 1831 void sha1nexte(XMMRegister dst, XMMRegister src); 1832 void sha1msg1(XMMRegister dst, XMMRegister src); 1833 void sha1msg2(XMMRegister dst, XMMRegister src); 1834 // xmm0 is implicit additional source to the following instruction. 1835 void sha256rnds2(XMMRegister dst, XMMRegister src); 1836 void sha256msg1(XMMRegister dst, XMMRegister src); 1837 void sha256msg2(XMMRegister dst, XMMRegister src); 1838 1839 void shldl(Register dst, Register src); 1840 void shldl(Register dst, Register src, int8_t imm8); 1841 void shrdl(Register dst, Register src); 1842 void shrdl(Register dst, Register src, int8_t imm8); 1843 1844 void shll(Register dst, int imm8); 1845 void shll(Register dst); 1846 1847 void shlq(Register dst, int imm8); 1848 void shlq(Register dst); 1849 1850 void shrl(Register dst, int imm8); 1851 void shrl(Register dst); 1852 1853 void shrq(Register dst, int imm8); 1854 void shrq(Register dst); 1855 1856 void smovl(); // QQQ generic? 1857 1858 // Compute Square Root of Scalar Double-Precision Floating-Point Value 1859 void sqrtsd(XMMRegister dst, Address src); 1860 void sqrtsd(XMMRegister dst, XMMRegister src); 1861 1862 void roundsd(XMMRegister dst, Address src, int32_t rmode); 1863 void roundsd(XMMRegister dst, XMMRegister src, int32_t rmode); 1864 1865 // Compute Square Root of Scalar Single-Precision Floating-Point Value 1866 void sqrtss(XMMRegister dst, Address src); 1867 void sqrtss(XMMRegister dst, XMMRegister src); 1868 1869 void std(); 2122 void vpsrld(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2123 void vpsrlq(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2124 void vpsrlw(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2125 void vpsrld(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2126 void vpsrlq(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2127 void vpsrldq(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2128 void evpsrlvw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2129 void evpsllvw(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2130 2131 // Arithmetic shift right packed integers (only shorts and ints, no instructions for longs) 2132 void psraw(XMMRegister dst, int shift); 2133 void psrad(XMMRegister dst, int shift); 2134 void psraw(XMMRegister dst, XMMRegister shift); 2135 void psrad(XMMRegister dst, XMMRegister shift); 2136 void vpsraw(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2137 void vpsrad(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2138 void vpsraw(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2139 void vpsrad(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2140 void evpsraq(XMMRegister dst, XMMRegister src, int shift, int vector_len); 2141 void evpsraq(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2142 2143 void vpshldvd(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2144 void vpshrdvd(XMMRegister dst, XMMRegister src, XMMRegister shift, int vector_len); 2145 2146 // And packed integers 2147 void pand(XMMRegister dst, XMMRegister src); 2148 void vpand(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2149 void vpand(XMMRegister dst, XMMRegister nds, Address src, int vector_len); 2150 void vpandq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2151 2152 // Andn packed integers 2153 void pandn(XMMRegister dst, XMMRegister src); 2154 void vpandn(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2155 2156 // Or packed integers 2157 void por(XMMRegister dst, XMMRegister src); 2158 void vpor(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2159 void vpor(XMMRegister dst, XMMRegister nds, Address src, int vector_len); 2160 void vporq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); 2161 2162 // Xor packed integers 2163 void pxor(XMMRegister dst, XMMRegister src); 2164 void vpxor(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len); |