Skip to content

Commit 3230894

Browse files
ferakoczadinn
authored andcommitted
8348561: Add aarch64 intrinsics for ML-DSA
Reviewed-by: adinn
1 parent 8073914 commit 3230894

22 files changed

+2519
-581
lines changed

src/hotspot/cpu/aarch64/assembler_aarch64.hpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved.
33
* Copyright (c) 2014, 2024, Red Hat Inc. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
@@ -2552,6 +2552,11 @@ template<typename R, typename... Rx>
25522552
ldst_sstr(T, index, a, op1, op2, Vt, Vt2, Vt3, Vt4); \
25532553
}
25542554

2555+
INSN1(ld1, 0b001101010, 0b0000);
2556+
INSN2(ld2, 0b001101011, 0b0000);
2557+
INSN3(ld3, 0b001101010, 0b0010);
2558+
INSN4(ld4, 0b001101011, 0b0010);
2559+
25552560
INSN1(st1, 0b001101000, 0b0000);
25562561
INSN2(st2, 0b001101001, 0b0000);
25572562
INSN3(st3, 0b001101000, 0b0010);
@@ -2586,6 +2591,7 @@ template<typename R, typename... Rx>
25862591
void NAME(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn, FloatRegister Vm) { \
25872592
guarantee(T != T1Q && T != T1D, "incorrect arrangement"); \
25882593
if (!acceptT2D) guarantee(T != T2D, "incorrect arrangement"); \
2594+
if (opc2 == 0b101101) guarantee(T != T8B && T != T16B, "incorrect arrangement"); \
25892595
starti; \
25902596
f(0, 31), f((int)T & 1, 30), f(opc, 29), f(0b01110, 28, 24); \
25912597
f((int)T >> 1, 23, 22), f(1, 21), rf(Vm, 16), f(opc2, 15, 10); \
@@ -2609,6 +2615,8 @@ template<typename R, typename... Rx>
26092615
INSN(minv, 0, 0b011011, false); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S
26102616
INSN(smaxp, 0, 0b101001, false); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S
26112617
INSN(sminp, 0, 0b101011, false); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S
2618+
INSN(sqdmulh,0, 0b101101, false); // accepted arrangements: T4H, T8H, T2S, T4S
2619+
INSN(shsubv, 0, 0b001001, false); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S
26122620

26132621
#undef INSN
26142622

src/hotspot/cpu/aarch64/stubDeclarations_aarch64.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
do_arch_blob, \
4545
do_arch_entry, \
4646
do_arch_entry_init) \
47-
do_arch_blob(compiler, 35000 ZGC_ONLY(+5000)) \
47+
do_arch_blob(compiler, 55000 ZGC_ONLY(+5000)) \
4848
do_stub(compiler, vector_iota_indices) \
4949
do_arch_entry(aarch64, compiler, vector_iota_indices, \
5050
vector_iota_indices, vector_iota_indices) \

0 commit comments

Comments
 (0)