Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
3a47318
Auto merge of #148679 - dianqk:update-llvm, r=cuviper
bors Nov 10, 2025
a9923f7
Auto merge of #148685 - Zalathar:lldb-python, r=jieyouxu
bors Nov 10, 2025
8240bb1
Auto merge of #148658 - dianne:cleanup-rvalue-scopes, r=cjgillot
bors Nov 11, 2025
9212b2c
Auto merge of #148466 - liigo:better-rustdoc, r=GuillaumeGomez
bors Nov 12, 2025
e58f126
Auto merge of #148552 - chenyukang:yukang-fix-148392-closure-diag, r=…
bors Nov 12, 2025
519674b
Auto merge of #148587 - RalfJung:duration_from_nanos_u128, r=Mark-Sim…
bors Nov 13, 2025
a09714f
Auto merge of #148481 - GuillaumeGomez:subtree-update_cg_gcc_2025-11-…
bors Nov 13, 2025
a09c70f
Auto merge of #148944 - theemathas:rm_inherit_overflow, r=joboet
bors Nov 14, 2025
30c8c78
Auto merge of #148877 - lolbinarycat:rustdoc-opt-render-item, r=Guill…
bors Nov 15, 2025
9a8f392
Auto merge of #148526 - reddevilmidzy:docs, r=Mark-Simulacrum
bors Nov 15, 2025
11700a4
Auto merge of #145809 - he32:installer-perf-fix-1, r=Mark-Simulacrum
bors Nov 16, 2025
b477f55
Auto merge of #148478 - RalfJung:rotating-funnel, r=Mark-Simulacrum
bors Nov 17, 2025
530a5be
Merge ref '6159a44067eb' from rust-lang/rust
lnicola Nov 19, 2025
305345d
Merge pull request #21062 from lnicola/sync-from-rust
lnicola Nov 19, 2025
46a221f
Merge pull request #21061 from ChayimFriedman2/infer-array-size
Veykril Nov 19, 2025
3d70c5b
Merge pull request #21060 from ChayimFriedman2/adjust-last
Veykril Nov 19, 2025
3b31776
Merge pull request #21036 from Natural-selection1/ref
ChayimFriedman2 Nov 20, 2025
fb65436
Merge pull request #21053 from dfireBird/fix_panic_20965
ChayimFriedman2 Nov 20, 2025
9852bf4
Auto merge of #149118 - folkertdev:stdarch-sync-2025-11-19, r=tgross35
bors Nov 20, 2025
6e838ab
Rollup merge of #146925 - DiuDiu777:va-doc-fix, r=tgross35
matthiaskrgr Nov 20, 2025
7fdc8b3
Rollup merge of #147035 - joboet:extract_if_debug, r=tgross35
matthiaskrgr Nov 20, 2025
7c4e495
Rollup merge of #148261 - aDotInTheVoid:no-sync-for-smir, r=celinval
matthiaskrgr Nov 20, 2025
87d081e
Auto merge of #149132 - matthiaskrgr:rollup-8khp9s2, r=matthiaskrgr
bors Nov 20, 2025
58927ed
Auto merge of #149109 - scottmcm:align-always-alignment, r=tgross35
bors Nov 20, 2025
9ec55fc
Merge pull request #21038 from A4-Tacks/gen-multi-from-impl-enum
ShoyuVanilla Nov 21, 2025
cafd2a7
Merge pull request #21042 from A4-Tacks/qualified-top
ShoyuVanilla Nov 21, 2025
32a52f0
Auto merge of #148831 - clubby789:cargo-update-11-11-25, r=jieyouxu
bors Nov 22, 2025
c638484
Auto merge of #149044 - clubby789:implicit-return-span, r=cjgillot
bors Nov 22, 2025
bcd4899
Auto merge of #147536 - mati865:gnullvm-self-contained, r=petrochenkov
bors Nov 22, 2025
2e473a1
Auto merge of #149096 - chenyukang:yukang-fix-unused-vars-148373, r=o…
bors Nov 23, 2025
897ef3a
Auto merge of #148882 - 20jasper:patch-1, r=nnethercote,Kivooeo
bors Nov 23, 2025
736aaca
Merge pull request #21017 from alexheretic/faster-inline-clones
ChayimFriedman2 Nov 23, 2025
88e7a47
Merge pull request #20559 from A4-Tacks/pretty-num-explicit-enum-disc
Veykril Nov 23, 2025
a225a4b
Auto merge of #147827 - saethlin:maybeuninit-codegen2, r=scottmcm
bors Nov 23, 2025
771bb75
Merge pull request #20967 from A4-Tacks/replace-eager-lazy-and-then
ShoyuVanilla Nov 24, 2025
e28384d
Auto merge of #149265 - lnicola:sync-from-ra, r=lnicola
bors Nov 24, 2025
625bbe5
Auto merge of #149140 - oli-obk:more-encoder-minimization, r=jdonszel…
bors Nov 26, 2025
adfecc5
Auto merge of #149079 - zachs18:clone_from_ref, r=Mark-Simulacrum
bors Nov 26, 2025
c55f4fa
Merge ref '1be6b13be73d' from rust-lang/rust
invalid-email-address Nov 27, 2025
ee7199d
Merge pull request #21143 from rust-lang/rustc-pull
lnicola Nov 27, 2025
b298d59
Merge pull request #20685 from A4-Tacks/enum-multi-gen-is-as
ShoyuVanilla Nov 27, 2025
172af0c
Merge pull request #21028 from A4-Tacks/comp-pattern-alias
ShoyuVanilla Nov 27, 2025
e818e59
Merge pull request #20976 from A4-Tacks/comp-after-top-inner-attr
ShoyuVanilla Nov 27, 2025
d73ec09
Merge pull request #21095 from A4-Tacks/autoderef-skipiter
Veykril Nov 27, 2025
e5ca57e
Merge pull request #21145 from Veykril/push-prwwrlwmoxzx
Veykril Nov 27, 2025
37129b3
Merge pull request #21144 from A4-Tacks/abi-qualifier-extern-crate-comp
ChayimFriedman2 Nov 28, 2025
1ce46aa
Merge pull request #21141 from Wilfred/scip_enclosing_range
ChayimFriedman2 Nov 28, 2025
3e147c1
Merge pull request #20163 from ChayimFriedman2/parser-per-token-edition
Veykril Nov 28, 2025
7cdd3b6
Merge pull request #20217 from ChayimFriedman2/spec-resolve-hygiene
Veykril Nov 28, 2025
bc252c2
Merge pull request #21023 from A4-Tacks/syntax-editor-duplicate-changed
ShoyuVanilla Nov 28, 2025
7d33bd5
Auto merge of #142821 - cjgillot:jump-threading-single, r=saethlin
bors Dec 1, 2025
0c64d44
Auto merge of #149125 - zachs18:btreemap-eq-perf, r=workingjubilee
bors Dec 2, 2025
b5e89bb
Auto merge of #149495 - scottmcm:assume-filter-count, r=Mark-Simulacrum
bors Dec 6, 2025
f71859c
Auto merge of #149060 - jdonszelmann:duplicate-span-lowering, r=Waffl…
bors Dec 7, 2025
4df4fb3
Auto merge of #147754 - Dan54:friendly-clamp, r=Mark-Simulacrum
bors Dec 8, 2025
28e8e00
Merge pull request #21044 from A4-Tacks/fix-make-unnamed-param
ShoyuVanilla Dec 9, 2025
819b155
Auto merge of #147602 - JohnTitor:dedup-lifetime-capture-errors, r=es…
bors Dec 10, 2025
fa0a7da
Merge pull request #20754 from A4-Tacks/conv-for-while-loop-label-attr
ShoyuVanilla Dec 12, 2025
6d28bf5
Merge pull request #21032 from A4-Tacks/no-semicolon-in-arg-list
ChayimFriedman2 Dec 16, 2025
5b7bdb5
RISC-V: Use inline assembly and `zkne_or_zknd` on (Zkne or Zknd) intr…
a4lg Sep 19, 2025
34f6010
Auto merge of #148329 - LorrensP-2158466:closure-prop, r=lcnr
bors Dec 20, 2025
5ea9527
Merge pull request #20996 from A4-Tacks/explicit-dot-call-deref
Veykril Dec 21, 2025
689b5b0
Merge pull request #20597 from A4-Tacks/conv-to-guarded-ret-doc
Veykril Dec 21, 2025
b61c7af
Merge pull request #20472 from BenjaminBrienen/remove-style-point
Veykril Dec 21, 2025
c92e6c2
Merge pull request #20576 from A4-Tacks/nested-if-let
Veykril Dec 21, 2025
d74e252
Merge pull request #20577 from A4-Tacks/nested-if-indent
Veykril Dec 21, 2025
23b8f06
Merge pull request #20438 from A4-Tacks/fix-guess-renamed-macro-braces
Veykril Dec 21, 2025
a347b59
Merge pull request #20439 from A4-Tacks/t-macro-bracket-doc
Veykril Dec 21, 2025
c9f9688
Merge pull request #20193 from ChayimFriedman2/setting-rename-conflict
Veykril Dec 26, 2025
53783d1
Auto merge of #150357 - ZuseZ4:zusez4-stdarch-push, r=sayantan
bors Dec 26, 2025
0c545e8
Auto merge of #150388 - reddevilmidzy:hir-analysis, r=Kivooeo
bors Dec 26, 2025
47df220
Auto merge of #150380 - Kivooeo:add-match-for-constkidn, r=BoxyUwU
bors Dec 26, 2025
cce0684
Auto merge of #150395 - GuillaumeGomez:fix-copy-code-example-with-lin…
bors Dec 27, 2025
00d5a6b
Auto merge of #142881 - cjgillot:minimap, r=saethlin
bors Dec 27, 2025
3d63e40
Auto merge of #149775 - WaffleLapkin:core-mem-maybe-dangling, r=Mark-…
bors Dec 27, 2025
3a54d10
Auto merge of #150421 - weihanglo:update-cargo, r=weihanglo
bors Dec 27, 2025
1d606c6
Auto merge of #150076 - heathdutton:fix-linked-list-cursor-pop-front-…
bors Dec 28, 2025
75fcb0c
Auto merge of #108671 - Coca162:option_reference_flattening, r=dtolnay
bors Dec 29, 2025
756c299
Auto merge of #148332 - jyn514:cargo-deny-warnings, r=Kobzol
bors Dec 29, 2025
7243b5f
Auto merge of #149694 - lolbinarycat:alloc-extend-slice-of-str-spec, …
bors Dec 29, 2025
4b65972
Rollup merge of #146798 - a4lg:riscv-intrinsics-zkne_or_zknd, r=Amanieu
JonathanBrouwer Dec 31, 2025
912b396
Rollup merge of #150337 - AsakuraMizu:main, r=jhpratt
JonathanBrouwer Dec 31, 2025
5fc0a96
Rollup merge of #150530 - Zalathar:string-deref-patterns, r=jackh726
JonathanBrouwer Dec 31, 2025
6bdb08c
Rollup merge of #150543 - lnicola:sync-from-ra, r=lnicola
JonathanBrouwer Dec 31, 2025
702d84f
Rollup merge of #150544 - bjorn3:run_make_print_target_libdir, r=Urga…
JonathanBrouwer Dec 31, 2025
9194400
Auto merge of #150546 - JonathanBrouwer:rollup-jkqji1j, r=JonathanBro…
bors Dec 31, 2025
cd67a85
Auto merge of #150289 - rami3l:dist/rustc-docs-dist-path, r=jieyouxu
bors Dec 31, 2025
4096130
Prepare for merging from rust-lang/rust
invalid-email-address Jan 1, 2026
2c95477
Merge ref '48622726c4a9' from rust-lang/rust
invalid-email-address Jan 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 32 additions & 13 deletions crates/core_arch/src/riscv64/zk.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#[cfg(test)]
use stdarch_test::assert_instr;

use crate::arch::asm;

unsafe extern "unadjusted" {
#[link_name = "llvm.riscv.aes64es"]
fn _aes64es(rs1: i64, rs2: i64) -> i64;
Expand All @@ -14,12 +16,6 @@ unsafe extern "unadjusted" {
#[link_name = "llvm.riscv.aes64dsm"]
fn _aes64dsm(rs1: i64, rs2: i64) -> i64;

#[link_name = "llvm.riscv.aes64ks1i"]
fn _aes64ks1i(rs1: i64, rnum: i32) -> i64;

#[link_name = "llvm.riscv.aes64ks2"]
fn _aes64ks2(rs1: i64, rs2: i64) -> i64;

#[link_name = "llvm.riscv.aes64im"]
fn _aes64im(rs1: i64) -> i64;

Expand Down Expand Up @@ -133,15 +129,26 @@ pub fn aes64dsm(rs1: u64, rs2: u64) -> u64 {
/// # Note
///
/// The `RNUM` parameter is expected to be a constant value inside the range of `0..=10`.
#[target_feature(enable = "zkne", enable = "zknd")]
#[target_feature(enable = "zkne_or_zknd")]
#[rustc_legacy_const_generics(1)]
#[cfg_attr(test, assert_instr(aes64ks1i, RNUM = 0))]
#[inline]
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
pub fn aes64ks1i<const RNUM: u8>(rs1: u64) -> u64 {
static_assert!(RNUM <= 10);

unsafe { _aes64ks1i(rs1 as i64, RNUM as i32) as u64 }
unsafe {
let rd: u64;
asm!(
".option push",
".option arch, +zkne",
"aes64ks1i {}, {}, {}",
".option pop",
lateout(reg) rd,
in(reg) rs1,
const RNUM,
options(pure, nomem, nostack, preserves_flags)
);
rd
}
}

/// This instruction implements part of the KeySchedule operation for the AES Block cipher.
Expand All @@ -155,12 +162,24 @@ pub fn aes64ks1i<const RNUM: u8>(rs1: u64) -> u64 {
/// Version: v1.0.1
///
/// Section: 3.11
#[target_feature(enable = "zkne", enable = "zknd")]
#[cfg_attr(test, assert_instr(aes64ks2))]
#[target_feature(enable = "zkne_or_zknd")]
#[inline]
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
pub fn aes64ks2(rs1: u64, rs2: u64) -> u64 {
unsafe { _aes64ks2(rs1 as i64, rs2 as i64) as u64 }
unsafe {
let rd: u64;
asm!(
".option push",
".option arch, +zkne",
"aes64ks2 {}, {}, {}",
".option pop",
lateout(reg) rd,
in(reg) rs1,
in(reg) rs2,
options(pure, nomem, nostack, preserves_flags)
);
rd
}
}

/// This instruction accelerates the inverse MixColumns step of the AES Block Cipher, and is used to aid creation of
Expand Down
2 changes: 1 addition & 1 deletion rust-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8401398e1f14a24670ee1a3203713dc2f0f8b3a8
48622726c4a91c87bf6cd4dbe1000c95df59906e