Skip to content

Commit 4c5b583

Browse files
committed
Stabilize RISC-V Zk and Zb intrinsics
1 parent 964ad8c commit 4c5b583

8 files changed

Lines changed: 48 additions & 48 deletions

File tree

‎crates/core_arch/src/riscv32/mod.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
mod zb;
44
mod zk;
55

6-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
6+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
77
pub use zb::*;
88

9-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
9+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
1010
pub use zk::*;

‎crates/core_arch/src/riscv32/zb.rs‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ unsafe extern "llvm-intrinsic" {
3333
/// Version: v1.0.1
3434
///
3535
/// Section: 3.47
36-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
36+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
3737
#[target_feature(enable = "zbkx")]
3838
#[cfg_attr(test, assert_instr(xperm8))]
3939
#[inline]
@@ -53,7 +53,7 @@ pub fn xperm8(rs1: u32, rs2: u32) -> u32 {
5353
/// Version: v1.0.1
5454
///
5555
/// Section: 3.48
56-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
56+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
5757
#[target_feature(enable = "zbkx")]
5858
#[cfg_attr(test, assert_instr(xperm4))]
5959
#[inline]
@@ -72,7 +72,7 @@ pub fn xperm4(rs1: u32, rs2: u32) -> u32 {
7272
/// Version: v1.0.0
7373
///
7474
/// Section: 2.24
75-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
75+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
7676
#[target_feature(enable = "zbb")]
7777
#[cfg_attr(test, assert_instr(orc.b))]
7878
#[inline]
@@ -89,7 +89,7 @@ pub fn orc_b(rs: u32) -> u32 {
8989
/// Version: v1.0.0
9090
///
9191
/// Section: 2.11
92-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
92+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
9393
#[target_feature(enable = "zbkc")]
9494
#[cfg_attr(test, assert_instr(clmul))]
9595
#[inline]
@@ -106,7 +106,7 @@ pub fn clmul(rs1: u32, rs2: u32) -> u32 {
106106
/// Version: v1.0.0
107107
///
108108
/// Section: 2.12
109-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
109+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
110110
#[target_feature(enable = "zbkc")]
111111
#[cfg_attr(test, assert_instr(clmulh))]
112112
#[inline]
@@ -123,7 +123,7 @@ pub fn clmulh(rs1: u32, rs2: u32) -> u32 {
123123
/// Version: v1.0.0
124124
///
125125
/// Section: 2.13
126-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
126+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
127127
#[target_feature(enable = "zbc")]
128128
#[cfg_attr(test, assert_instr(clmulr))]
129129
#[inline]

‎crates/core_arch/src/riscv32/zk.rs‎

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ unsafe extern "llvm-intrinsic" {
6161
// See #1464
6262
// #[cfg_attr(test, assert_instr(aes32esi, BS = 0))]
6363
#[inline]
64-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
64+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
6565
pub fn aes32esi<const BS: u8>(rs1: u32, rs2: u32) -> u32 {
6666
static_assert!(BS < 4);
6767

@@ -90,7 +90,7 @@ pub fn aes32esi<const BS: u8>(rs1: u32, rs2: u32) -> u32 {
9090
// See #1464
9191
// #[cfg_attr(test, assert_instr(aes32esmi, BS = 0))]
9292
#[inline]
93-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
93+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
9494
pub fn aes32esmi<const BS: u8>(rs1: u32, rs2: u32) -> u32 {
9595
static_assert!(BS < 4);
9696

@@ -118,7 +118,7 @@ pub fn aes32esmi<const BS: u8>(rs1: u32, rs2: u32) -> u32 {
118118
// See #1464
119119
// #[cfg_attr(test, assert_instr(aes32dsi, BS = 0))]
120120
#[inline]
121-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
121+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
122122
pub fn aes32dsi<const BS: u8>(rs1: u32, rs2: u32) -> u32 {
123123
static_assert!(BS < 4);
124124

@@ -147,7 +147,7 @@ pub fn aes32dsi<const BS: u8>(rs1: u32, rs2: u32) -> u32 {
147147
// See #1464
148148
// #[cfg_attr(test, assert_instr(aes32dsmi, BS = 0))]
149149
#[inline]
150-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
150+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
151151
pub fn aes32dsmi<const BS: u8>(rs1: u32, rs2: u32) -> u32 {
152152
static_assert!(BS < 4);
153153

@@ -171,7 +171,7 @@ pub fn aes32dsmi<const BS: u8>(rs1: u32, rs2: u32) -> u32 {
171171
// See #1464
172172
// #[cfg_attr(test, assert_instr(zip))]
173173
#[inline]
174-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
174+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
175175
pub fn zip(rs: u32) -> u32 {
176176
unsafe { _zip(rs as i32) as u32 }
177177
}
@@ -190,7 +190,7 @@ pub fn zip(rs: u32) -> u32 {
190190
#[target_feature(enable = "zbkb")]
191191
#[cfg_attr(test, assert_instr(unzip))]
192192
#[inline]
193-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
193+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
194194
pub fn unzip(rs: u32) -> u32 {
195195
unsafe { _unzip(rs as i32) as u32 }
196196
}
@@ -213,7 +213,7 @@ pub fn unzip(rs: u32) -> u32 {
213213
// See #1464
214214
// #[cfg_attr(test, assert_instr(sha512sig0h))]
215215
#[inline]
216-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
216+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
217217
pub fn sha512sig0h(rs1: u32, rs2: u32) -> u32 {
218218
unsafe { _sha512sig0h(rs1 as i32, rs2 as i32) as u32 }
219219
}
@@ -236,7 +236,7 @@ pub fn sha512sig0h(rs1: u32, rs2: u32) -> u32 {
236236
// See #1464
237237
// #[cfg_attr(test, assert_instr(sha512sig0l))]
238238
#[inline]
239-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
239+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
240240
pub fn sha512sig0l(rs1: u32, rs2: u32) -> u32 {
241241
unsafe { _sha512sig0l(rs1 as i32, rs2 as i32) as u32 }
242242
}
@@ -259,7 +259,7 @@ pub fn sha512sig0l(rs1: u32, rs2: u32) -> u32 {
259259
// See #1464
260260
// #[cfg_attr(test, assert_instr(sha512sig1h))]
261261
#[inline]
262-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
262+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
263263
pub fn sha512sig1h(rs1: u32, rs2: u32) -> u32 {
264264
unsafe { _sha512sig1h(rs1 as i32, rs2 as i32) as u32 }
265265
}
@@ -281,7 +281,7 @@ pub fn sha512sig1h(rs1: u32, rs2: u32) -> u32 {
281281
#[target_feature(enable = "zknh")]
282282
#[cfg_attr(test, assert_instr(sha512sig1l))]
283283
#[inline]
284-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
284+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
285285
pub fn sha512sig1l(rs1: u32, rs2: u32) -> u32 {
286286
unsafe { _sha512sig1l(rs1 as i32, rs2 as i32) as u32 }
287287
}
@@ -303,7 +303,7 @@ pub fn sha512sig1l(rs1: u32, rs2: u32) -> u32 {
303303
// See #1464
304304
// #[cfg_attr(test, assert_instr(sha512sum0r))]
305305
#[inline]
306-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
306+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
307307
pub fn sha512sum0r(rs1: u32, rs2: u32) -> u32 {
308308
unsafe { _sha512sum0r(rs1 as i32, rs2 as i32) as u32 }
309309
}
@@ -325,7 +325,7 @@ pub fn sha512sum0r(rs1: u32, rs2: u32) -> u32 {
325325
// See #1464
326326
// #[cfg_attr(test, assert_instr(sha512sum1r))]
327327
#[inline]
328-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
328+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
329329
pub fn sha512sum1r(rs1: u32, rs2: u32) -> u32 {
330330
unsafe { _sha512sum1r(rs1 as i32, rs2 as i32) as u32 }
331331
}

‎crates/core_arch/src/riscv64/mod.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ use crate::arch::asm;
44
mod zb;
55
mod zk;
66

7-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
7+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
88
pub use zb::*;
99

10-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
10+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
1111
pub use zk::*;
1212

1313
/// Loads virtual machine memory by unsigned word integer

‎crates/core_arch/src/riscv64/zb.rs‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ unsafe extern "llvm-intrinsic" {
3333
/// Version: v1.0.1
3434
///
3535
/// Section: 3.47
36-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
36+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
3737
#[target_feature(enable = "zbkx")]
3838
#[cfg_attr(test, assert_instr(xperm8))]
3939
#[inline]
@@ -53,7 +53,7 @@ pub fn xperm8(rs1: u64, rs2: u64) -> u64 {
5353
/// Version: v1.0.1
5454
///
5555
/// Section: 3.48
56-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
56+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
5757
#[target_feature(enable = "zbkx")]
5858
#[cfg_attr(test, assert_instr(xperm4))]
5959
#[inline]
@@ -72,7 +72,7 @@ pub fn xperm4(rs1: u64, rs2: u64) -> u64 {
7272
/// Version: v1.0.0
7373
///
7474
/// Section: 2.24
75-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
75+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
7676
#[target_feature(enable = "zbb")]
7777
#[cfg_attr(test, assert_instr(orc.b))]
7878
#[inline]
@@ -89,7 +89,7 @@ pub fn orc_b(rs: u64) -> u64 {
8989
/// Version: v1.0.0
9090
///
9191
/// Section: 2.11
92-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
92+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
9393
#[target_feature(enable = "zbkc")]
9494
#[cfg_attr(test, assert_instr(clmul))]
9595
#[inline]
@@ -106,7 +106,7 @@ pub fn clmul(rs1: u64, rs2: u64) -> u64 {
106106
/// Version: v1.0.0
107107
///
108108
/// Section: 2.12
109-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
109+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
110110
#[target_feature(enable = "zbkc")]
111111
#[cfg_attr(test, assert_instr(clmulh))]
112112
#[inline]
@@ -123,7 +123,7 @@ pub fn clmulh(rs1: u64, rs2: u64) -> u64 {
123123
/// Version: v1.0.0
124124
///
125125
/// Section: 2.13
126-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
126+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
127127
#[target_feature(enable = "zbc")]
128128
#[cfg_attr(test, assert_instr(clmulr))]
129129
#[inline]

‎crates/core_arch/src/riscv64/zk.rs‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ unsafe extern "llvm-intrinsic" {
4747
#[target_feature(enable = "zkne")]
4848
#[cfg_attr(test, assert_instr(aes64es))]
4949
#[inline]
50-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
50+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
5151
pub fn aes64es(rs1: u64, rs2: u64) -> u64 {
5252
unsafe { _aes64es(rs1 as i64, rs2 as i64) as u64 }
5353
}
@@ -67,7 +67,7 @@ pub fn aes64es(rs1: u64, rs2: u64) -> u64 {
6767
#[target_feature(enable = "zkne")]
6868
#[cfg_attr(test, assert_instr(aes64esm))]
6969
#[inline]
70-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
70+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
7171
pub fn aes64esm(rs1: u64, rs2: u64) -> u64 {
7272
unsafe { _aes64esm(rs1 as i64, rs2 as i64) as u64 }
7373
}
@@ -87,7 +87,7 @@ pub fn aes64esm(rs1: u64, rs2: u64) -> u64 {
8787
#[target_feature(enable = "zknd")]
8888
#[cfg_attr(test, assert_instr(aes64ds))]
8989
#[inline]
90-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
90+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
9191
pub fn aes64ds(rs1: u64, rs2: u64) -> u64 {
9292
unsafe { _aes64ds(rs1 as i64, rs2 as i64) as u64 }
9393
}
@@ -107,7 +107,7 @@ pub fn aes64ds(rs1: u64, rs2: u64) -> u64 {
107107
#[target_feature(enable = "zknd")]
108108
#[cfg_attr(test, assert_instr(aes64dsm))]
109109
#[inline]
110-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
110+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
111111
pub fn aes64dsm(rs1: u64, rs2: u64) -> u64 {
112112
unsafe { _aes64dsm(rs1 as i64, rs2 as i64) as u64 }
113113
}
@@ -132,7 +132,7 @@ pub fn aes64dsm(rs1: u64, rs2: u64) -> u64 {
132132
#[target_feature(enable = "zkne_or_zknd")]
133133
#[rustc_legacy_const_generics(1)]
134134
#[inline]
135-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
135+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
136136
pub fn aes64ks1i<const RNUM: u8>(rs1: u64) -> u64 {
137137
static_assert!(RNUM <= 10);
138138
unsafe {
@@ -164,7 +164,7 @@ pub fn aes64ks1i<const RNUM: u8>(rs1: u64) -> u64 {
164164
/// Section: 3.11
165165
#[target_feature(enable = "zkne_or_zknd")]
166166
#[inline]
167-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
167+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
168168
pub fn aes64ks2(rs1: u64, rs2: u64) -> u64 {
169169
unsafe {
170170
let rd: u64;
@@ -198,7 +198,7 @@ pub fn aes64ks2(rs1: u64, rs2: u64) -> u64 {
198198
#[target_feature(enable = "zknd")]
199199
#[cfg_attr(test, assert_instr(aes64im))]
200200
#[inline]
201-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
201+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
202202
pub fn aes64im(rs1: u64) -> u64 {
203203
unsafe { _aes64im(rs1 as i64) as u64 }
204204
}
@@ -218,7 +218,7 @@ pub fn aes64im(rs1: u64) -> u64 {
218218
#[target_feature(enable = "zknh")]
219219
#[cfg_attr(test, assert_instr(sha512sig0))]
220220
#[inline]
221-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
221+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
222222
pub fn sha512sig0(rs1: u64) -> u64 {
223223
unsafe { _sha512sig0(rs1 as i64) as u64 }
224224
}
@@ -238,7 +238,7 @@ pub fn sha512sig0(rs1: u64) -> u64 {
238238
#[target_feature(enable = "zknh")]
239239
#[cfg_attr(test, assert_instr(sha512sig1))]
240240
#[inline]
241-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
241+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
242242
pub fn sha512sig1(rs1: u64) -> u64 {
243243
unsafe { _sha512sig1(rs1 as i64) as u64 }
244244
}
@@ -258,7 +258,7 @@ pub fn sha512sig1(rs1: u64) -> u64 {
258258
#[target_feature(enable = "zknh")]
259259
#[cfg_attr(test, assert_instr(sha512sum0))]
260260
#[inline]
261-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
261+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
262262
pub fn sha512sum0(rs1: u64) -> u64 {
263263
unsafe { _sha512sum0(rs1 as i64) as u64 }
264264
}
@@ -278,7 +278,7 @@ pub fn sha512sum0(rs1: u64) -> u64 {
278278
#[target_feature(enable = "zknh")]
279279
#[cfg_attr(test, assert_instr(sha512sum1))]
280280
#[inline]
281-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
281+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
282282
pub fn sha512sum1(rs1: u64) -> u64 {
283283
unsafe { _sha512sum1(rs1 as i64) as u64 }
284284
}

‎crates/core_arch/src/riscv_shared/mod.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ mod zk;
2929

3030
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
3131
pub use p::*;
32-
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
32+
#[stable(feature = "riscv_zkn_intrinsics", since = "CURRENT_RUSTC_VERSION")]
3333
pub use zk::*;
3434

3535
use crate::arch::asm;

0 commit comments

Comments
 (0)