Skip to content

Commit c60bc59

Browse files
committed
RISC-V: Add 27 extensions to be stabilized
Because unstable "B" (incorrectly named as `zb`) was there, this commit adds 28 minus one ("B") new extensions to be stabilized. This commit directly corresponds to rust-lang/rust#145948. References: 1. RISC-V Instruction Set Manual (version 20250508): <https://github.com/riscv/riscv-isa-manual/tree/20250508> 2. RISC-V Profiles (version 1.0 - RVA23 is not stabilized at the time): <https://github.com/riscv/riscv-profiles/tree/v1.0> 3. RISC-V Profiles (RVA23/RVB23-ratified version): <https://github.com/riscv/riscv-profiles/tree/rva23-rvb23-ratified>
1 parent 28bca89 commit c60bc59

File tree

1 file changed

+56
-2
lines changed

1 file changed

+56
-2
lines changed

src/attributes/codegen.md

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,17 +427,43 @@ in another manual hosted on the [RISC-V GitHub Account].
427427

428428
Feature | Implicitly Enables | Description
429429
------------|---------------------|-------------------
430-
`a` | | [A][rv-a] --- Atomic instructions
430+
`a` | `zaamo`, `zalrsc` | [A][rv-a] --- Atomic instructions
431431
`b` | `zba`, `zbc`, `zbs` | [B][rv-b] --- Bit Manipulation instructions
432-
`c` | | [C][rv-c] --- Compressed instructions
432+
`c` | `zca` | [C][rv-c] --- Compressed instructions
433433
`m` | | [M][rv-m] --- Integer Multiplication and Division instructions
434+
`za64rs` | `za128rs` | [Za64rs][rv-za64rs] --- Platform Behavior: Naturally aligned Reservation sets with ≦ 64 Bytes
435+
`za128rs` | | [Za128rs][rv-za128rs] --- Platform Behavior: Naturally aligned Reservation sets with ≦ 128 Bytes
436+
`zaamo` | | [Zaamo][rv-zaamo] --- Atomic Memory Operation instructions
437+
`zabha` | `zaamo` | [Zabha][rv-zabha] --- Byte and Halfword Atomic Memory Operation instructions
438+
`zalrsc` | | [Zalrsc][rv-zalrsc] --- Load-Reserved/Store-Conditional instructions
439+
`zama16b` | | [Zama16b][rv-zama16b] --- Platform Behavior: Misaligned loads, stores, and AMOs to main memory regions that do not cross a naturally aligned 16-byte boundary are atomic
440+
`zawrs` | | [Zawrs][rv-zawrs] --- Wait-on-Reservation-Set instructions
434441
`zba` | | [Zba][rv-zba] --- Address Generation instructions
435442
`zbb` | | [Zbb][rv-zbb] --- Basic bit-manipulation
436443
`zbc` | `zbkc` | [Zbc][rv-zbc] --- Carry-less multiplication
437444
`zbkb` | | [Zbkb][rv-zbkb] --- Bit Manipulation Instructions for Cryptography
438445
`zbkc` | | [Zbkc][rv-zbc] --- Carry-less multiplication for Cryptography
439446
`zbkx` | | [Zbkx][rv-zbkx] --- Crossbar permutations
440447
`zbs` | | [Zbs][rv-zbs] --- Single-bit instructions
448+
`zca` | | [Zca][rv-zca] --- Compressed instructions: integer part subset
449+
`zcb` | `zca` | [Zca][rv-zca] --- Simple Code-size Saving Compressed instructions
450+
`zcmop` | `zca` | [Zcmop][rv-zcmop] --- Compressed May-Be-Operations
451+
`zic64b` | | [Zic64b][rv-zic64b] --- Platform Behavior: Naturally aligned 64 byte Cache blocks
452+
`zicbom` | | [Zicbom][rv-zicbom] --- Cache-Block Management instructions
453+
`zicbop` | | [Zicbop][rv-zicbop] --- Cache-Block Prefetch Hint instructions
454+
`zicboz` | | [Zicboz][rv-zicboz] --- Cache-Block Zero instruction
455+
`ziccamoa` | | [Ziccamoa][rv-ziccamoa] --- Platform Behavior: Cacheable and Coherent Main memory supports all basic atomic operations
456+
`ziccif` | | [Ziccif][rv-ziccif] --- Platform Behavior: Cacheable and Coherent Main memory supports instruction fetch and fetches of naturally aligned power-of-2 sizes up to `min(ILEN,XLEN)` are atomic
457+
`zicclsm` | | [Zicclsm][rv-zicclsm] --- Platform Behavior: Cacheable and Coherent Main memory supports misaligned load/store accesses
458+
`ziccrse` | | [Ziccrse][rv-ziccrse] --- Platform Behavior: Cacheable and Coherent Main memory guarantees eventual success on LR/SC sequences
459+
`zicntr` | `zicsr` | [Zicntr][rv-zicntr] --- Base Counters and Timers
460+
`zicond` | | [Zicond][rv-zicond] --- Integer Conditional Operation instructions
461+
`zicsr` | | [Zicsr][rv-zicsr] --- Control and Status Register (CSR) instructions
462+
`zifencei` | | [Zifencei][rv-zifencei] --- Instruction-Fetch Fence instruction
463+
`zihintntl` | | [Zihintntl][rv-zihintntl] --- Non-Temporal Locality Hint instructions
464+
`zihintpause` | | [Zihintpause][rv-zihintpause] --- Pause Hint instruction
465+
`zihpm` | `zicsr` | [Zihpm][rv-zihpm] --- Hardware Performance Counters
466+
`zimop` | | [Zimop][rv-zimop] --- May-Be-Operations
441467
`zk` | `zkn`, `zkr`, `zks`, `zkt`, `zbkb`, `zbkc`, `zkbx` | [Zk][rv-zk] --- Scalar Cryptography
442468
`zkn` | `zknd`, `zkne`, `zknh`, `zbkb`, `zbkc`, `zkbx` | [Zkn][rv-zkn] --- NIST Algorithm suite extension
443469
`zknd` | | [Zknd][rv-zknd] --- NIST Suite: AES Decryption
@@ -448,20 +474,47 @@ Feature | Implicitly Enables | Description
448474
`zksed` | | [Zksed][rv-zksed] --- ShangMi Suite: SM4 Block Cipher Instructions
449475
`zksh` | | [Zksh][rv-zksh] --- ShangMi Suite: SM3 Hash Function Instructions
450476
`zkt` | | [Zkt][rv-zkt] --- Data Independent Execution Latency Subset
477+
`ztso` | | [Ztso][rv-ztso] --- Total Store Ordering
451478

452479
<!-- Keep links near each table to make it easier to move and update. -->
453480

454481
[rv-a]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/a-st-ext.adoc
455482
[rv-b]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
456483
[rv-c]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/c-st-ext.adoc
457484
[rv-m]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/m-st-ext.adoc
485+
[rv-za64rs]: https://github.com/riscv/riscv-profiles/blob/rva23-rvb23-ratified/src/rva23-profile.adoc
486+
[rv-za128rs]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
487+
[rv-zaamo]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/a-st-ext.adoc
488+
[rv-zabha]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zabha.adoc
489+
[rv-zalrsc]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/a-st-ext.adoc
490+
[rv-zama16b]: https://github.com/riscv/riscv-profiles/blob/rva23-rvb23-ratified/src/rva23-profile.adoc
491+
[rv-zawrs]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zawrs.adoc
458492
[rv-zba]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
459493
[rv-zbb]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
460494
[rv-zbc]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
461495
[rv-zbkb]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
462496
[rv-zbkc]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
463497
[rv-zbkx]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
464498
[rv-zbs]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
499+
[rv-zca]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zc.adoc
500+
[rv-zcb]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zc.adoc
501+
[rv-zcmop]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zimop.adoc
502+
[rv-zic64b]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
503+
[rv-zicbom]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/cmo.adoc
504+
[rv-zicbop]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/cmo.adoc
505+
[rv-zicboz]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/cmo.adoc
506+
[rv-ziccamoa]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
507+
[rv-ziccif]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
508+
[rv-zicclsm]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
509+
[rv-ziccrse]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
510+
[rv-zicntr]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/counters.adoc
511+
[rv-zicond]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zicond.adoc
512+
[rv-zicsr]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zicsr.adoc
513+
[rv-zifencei]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zifencei.adoc
514+
[rv-zihintntl]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zihintntl.adoc
515+
[rv-zihintpause]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zihintpause.adoc
516+
[rv-zihpm]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/counters.adoc
517+
[rv-zimop]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zimop.adoc
465518
[rv-zk]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
466519
[rv-zkn]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
467520
[rv-zkne]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
@@ -472,6 +525,7 @@ Feature | Implicitly Enables | Description
472525
[rv-zksed]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
473526
[rv-zksh]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
474527
[rv-zkt]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
528+
[rv-ztso]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/ztso-st-ext.adoc
475529

476530
r[attributes.codegen.target_feature.wasm]
477531
#### `wasm32` or `wasm64`

0 commit comments

Comments
 (0)