< prev index next >
src/hotspot/cpu/x86/macroAssembler_x86.hpp
Print this page
@@ -941,16 +941,21 @@
Register reg_g, /* r10d */
Register reg_h, /* r11d */
int iter);
void addm(int disp, Register r1, Register r2);
+ void gfmul(XMMRegister tmp0, XMMRegister t);
+ void schoolbookAAD(int i, Register subkeyH, XMMRegister data, XMMRegister tmp0,
+ XMMRegister tmp1, XMMRegister tmp2, XMMRegister tmp3);
+ void generateHtbl(Register htbl);
public:
void sha256_AVX2(XMMRegister msg, XMMRegister state0, XMMRegister state1, XMMRegister msgtmp0,
XMMRegister msgtmp1, XMMRegister msgtmp2, XMMRegister msgtmp3, XMMRegister msgtmp4,
Register buf, Register state, Register ofs, Register limit, Register rsp,
bool multi_block, XMMRegister shuf_mask);
+ void avx_ghash(Register state, Register htbl, Register data, Register blocks);
#endif
#ifdef _LP64
private:
void sha512_AVX2_one_round_compute(Register old_h, Register a, Register b, Register c, Register d,
@@ -1496,10 +1501,19 @@
}
void vpclmulhdq(XMMRegister dst, XMMRegister nds, XMMRegister src) {
// 0x11 - multiply upper 64 bits [64:127]
Assembler::vpclmulqdq(dst, nds, src, 0x11);
}
+ void vpclmullqhqdq(XMMRegister dst, XMMRegister nds, XMMRegister src) {
+ // 0x10 - multiply nds[0:63] and src[64:127]
+ Assembler::vpclmulqdq(dst, nds, src, 0x10);
+ }
+ void vpclmulhqlqdq(XMMRegister dst, XMMRegister nds, XMMRegister src) {
+ //0x01 - multiply nds[64:127] and src[0:63]
+ Assembler::vpclmulqdq(dst, nds, src, 0x01);
+ }
+
void evpclmulldq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) {
// 0x00 - multiply lower 64 bits [0:63]
Assembler::evpclmulqdq(dst, nds, src, 0x00, vector_len);
}
void evpclmulhdq(XMMRegister dst, XMMRegister nds, XMMRegister src, int vector_len) {
< prev index next >