2157
2158 // VSX Extended Mnemonics
2159 inline void xxspltd( VectorSRegister d, VectorSRegister a, int x);
2160 inline void xxmrghd( VectorSRegister d, VectorSRegister a, VectorSRegister b);
2161 inline void xxmrgld( VectorSRegister d, VectorSRegister a, VectorSRegister b);
2162 inline void xxswapd( VectorSRegister d, VectorSRegister a);
2163
2164 // Vector-Scalar (VSX) instructions.
2165 inline void mtfprd( FloatRegister d, Register a);
2166 inline void mtfprwa( FloatRegister d, Register a);
2167 inline void mffprd( Register a, FloatRegister d);
2168
2169 // AES (introduced with Power 8)
2170 inline void vcipher( VectorRegister d, VectorRegister a, VectorRegister b);
2171 inline void vcipherlast( VectorRegister d, VectorRegister a, VectorRegister b);
2172 inline void vncipher( VectorRegister d, VectorRegister a, VectorRegister b);
2173 inline void vncipherlast(VectorRegister d, VectorRegister a, VectorRegister b);
2174 inline void vsbox( VectorRegister d, VectorRegister a);
2175
2176 // SHA (introduced with Power 8)
2177 // Not yet implemented.
2178
2179 // Vector Binary Polynomial Multiplication (introduced with Power 8)
2180 inline void vpmsumb( VectorRegister d, VectorRegister a, VectorRegister b);
2181 inline void vpmsumd( VectorRegister d, VectorRegister a, VectorRegister b);
2182 inline void vpmsumh( VectorRegister d, VectorRegister a, VectorRegister b);
2183 inline void vpmsumw( VectorRegister d, VectorRegister a, VectorRegister b);
2184
2185 // Vector Permute and Xor (introduced with Power 8)
2186 inline void vpermxor( VectorRegister d, VectorRegister a, VectorRegister b, VectorRegister c);
2187
2188 // Transactional Memory instructions (introduced with Power 8)
2189 inline void tbegin_(); // R=0
2190 inline void tbeginrot_(); // R=1 Rollback-Only Transaction
2191 inline void tend_(); // A=0
2192 inline void tendall_(); // A=1
2193 inline void tabort_();
2194 inline void tabort_(Register a);
2195 inline void tabortwc_(int t, Register a, Register b);
2196 inline void tabortwci_(int t, Register a, int si);
2197 inline void tabortdc_(int t, Register a, Register b);
|
2157
2158 // VSX Extended Mnemonics
2159 inline void xxspltd( VectorSRegister d, VectorSRegister a, int x);
2160 inline void xxmrghd( VectorSRegister d, VectorSRegister a, VectorSRegister b);
2161 inline void xxmrgld( VectorSRegister d, VectorSRegister a, VectorSRegister b);
2162 inline void xxswapd( VectorSRegister d, VectorSRegister a);
2163
2164 // Vector-Scalar (VSX) instructions.
2165 inline void mtfprd( FloatRegister d, Register a);
2166 inline void mtfprwa( FloatRegister d, Register a);
2167 inline void mffprd( Register a, FloatRegister d);
2168
2169 // AES (introduced with Power 8)
2170 inline void vcipher( VectorRegister d, VectorRegister a, VectorRegister b);
2171 inline void vcipherlast( VectorRegister d, VectorRegister a, VectorRegister b);
2172 inline void vncipher( VectorRegister d, VectorRegister a, VectorRegister b);
2173 inline void vncipherlast(VectorRegister d, VectorRegister a, VectorRegister b);
2174 inline void vsbox( VectorRegister d, VectorRegister a);
2175
2176 // SHA (introduced with Power 8)
2177 inline void vshasigmad(VectorRegister d, VectorRegister a, bool st, int six);
2178 inline void vshasigmaw(VectorRegister d, VectorRegister a, bool st, int six);
2179
2180 // Vector Binary Polynomial Multiplication (introduced with Power 8)
2181 inline void vpmsumb( VectorRegister d, VectorRegister a, VectorRegister b);
2182 inline void vpmsumd( VectorRegister d, VectorRegister a, VectorRegister b);
2183 inline void vpmsumh( VectorRegister d, VectorRegister a, VectorRegister b);
2184 inline void vpmsumw( VectorRegister d, VectorRegister a, VectorRegister b);
2185
2186 // Vector Permute and Xor (introduced with Power 8)
2187 inline void vpermxor( VectorRegister d, VectorRegister a, VectorRegister b, VectorRegister c);
2188
2189 // Transactional Memory instructions (introduced with Power 8)
2190 inline void tbegin_(); // R=0
2191 inline void tbeginrot_(); // R=1 Rollback-Only Transaction
2192 inline void tend_(); // A=0
2193 inline void tendall_(); // A=1
2194 inline void tabort_();
2195 inline void tabort_(Register a);
2196 inline void tabortwc_(int t, Register a, Register b);
2197 inline void tabortwci_(int t, Register a, int si);
2198 inline void tabortdc_(int t, Register a, Register b);
|