< prev index next >

src/hotspot/cpu/aarch64/assembler_aarch64.hpp

Print this page
rev 60737 : 8252204: AArch64: Implement SHA3 accelerator/intrinsic
Reviewed-by: duke
Contributed-by: dongbo4@huawei.com

*** 2401,2410 **** --- 2401,2444 ---- INSN(sha512su0, 0b1100111011000000100000); #undef INSN #define INSN(NAME, opc) \ + void NAME(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn, FloatRegister Vm, FloatRegister Va) { \ + starti; \ + assert(T == T16B, "arrangement must be T16B"); \ + f(0b11001110, 31, 24), f(opc, 23, 21), rf(Vm, 16), f(0b0, 15, 15), rf(Va, 10), rf(Vn, 5), rf(Vd, 0); \ + } + + INSN(eor3, 0b000); + INSN(bcax, 0b001); + + #undef INSN + + #define INSN(NAME, opc) \ + void NAME(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn, FloatRegister Vm, unsigned imm) { \ + starti; \ + assert(T == T2D, "arrangement must be T2D"); \ + f(0b11001110, 31, 24), f(opc, 23, 21), rf(Vm, 16), f(imm, 15, 10), rf(Vn, 5), rf(Vd, 0); \ + } + + INSN(xar, 0b100); + + #undef INSN + + #define INSN(NAME, opc) \ + void NAME(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn, FloatRegister Vm) { \ + starti; \ + assert(T == T2D, "arrangement must be T2D"); \ + f(0b11001110, 31, 24), f(opc, 23, 21), rf(Vm, 16), f(0b100011, 15, 10), rf(Vn, 5), rf(Vd, 0); \ + } + + INSN(rax1, 0b011); + + #undef INSN + + #define INSN(NAME, opc) \ void NAME(FloatRegister Vd, FloatRegister Vn) { \ starti; \ f(opc, 31, 10), rf(Vn, 5), rf(Vd, 0); \ }
< prev index next >