--- old/src/hotspot/cpu/x86/macroAssembler_x86.hpp 2018-11-20 18:13:22.618191800 -0800 +++ new/src/hotspot/cpu/x86/macroAssembler_x86.hpp 2018-11-20 18:13:21.997129700 -0800 @@ -943,12 +943,17 @@ 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 @@ -1498,6 +1503,15 @@ // 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);