Skip to content

Commit d27acfa

Browse files
committed
RISC-V: Add 29 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 d1fcd20 commit d27acfa

File tree

1 file changed

+60
-2
lines changed

1 file changed

+60
-2
lines changed

src/attributes/codegen.md

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -501,16 +501,44 @@ specification. Many specifications are described in the [RISC-V ISA Manual],
501501

502502
Feature | Implicitly Enables | Description
503503
------------|---------------------|-------------------
504-
`a` | | [A][rv-a] --- Atomic instructions
505-
`c` | | [C][rv-c] --- Compressed instructions
504+
`a` | `zaamo`, `zalrsc` | [A][rv-a] --- Atomic instructions
505+
`b` | `zba`, `zbc`, `zbs` | [B][rv-b] --- Bit Manipulation instructions
506+
`c` | `zca` | [C][rv-c] --- Compressed instructions
506507
`m` | | [M][rv-m] --- Integer Multiplication and Division instructions
508+
`za64rs` | `za128rs` | [Za64rs][rv-za64rs] --- Platform Behavior: Naturally aligned Reservation sets with ≦ 64 Bytes
509+
`za128rs` | | [Za128rs][rv-za128rs] --- Platform Behavior: Naturally aligned Reservation sets with ≦ 128 Bytes
510+
`zaamo` | | [Zaamo][rv-zaamo] --- Atomic Memory Operation instructions
511+
`zabha` | `zaamo` | [Zabha][rv-zabha] --- Byte and Halfword Atomic Memory Operation instructions
512+
`zacas` | `zaamo` | [Zacas][rv-zacas] --- Atomic Compare-and-Swap (CAS) instructions
513+
`zalrsc` | | [Zalrsc][rv-zalrsc] --- Load-Reserved/Store-Conditional instructions
514+
`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
515+
`zawrs` | | [Zawrs][rv-zawrs] --- Wait-on-Reservation-Set instructions
507516
`zba` | | [Zba][rv-zba] --- Address Generation instructions
508517
`zbb` | | [Zbb][rv-zbb] --- Basic bit-manipulation
509518
`zbc` | `zbkc` | [Zbc][rv-zbc] --- Carry-less multiplication
510519
`zbkb` | | [Zbkb][rv-zbkb] --- Bit Manipulation Instructions for Cryptography
511520
`zbkc` | | [Zbkc][rv-zbkc] --- Carry-less multiplication for Cryptography
512521
`zbkx` | | [Zbkx][rv-zbkx] --- Crossbar permutations
513522
`zbs` | | [Zbs][rv-zbs] --- Single-bit instructions
523+
`zca` | | [Zca][rv-zca] --- Compressed instructions: integer part subset
524+
`zcb` | `zca` | [Zcb][rv-zcb] --- Simple Code-size Saving Compressed instructions
525+
`zcmop` | `zca` | [Zcmop][rv-zcmop] --- Compressed May-Be-Operations
526+
`zic64b` | | [Zic64b][rv-zic64b] --- Platform Behavior: Naturally aligned 64 byte Cache blocks
527+
`zicbom` | | [Zicbom][rv-zicbom] --- Cache-Block Management instructions
528+
`zicbop` | | [Zicbop][rv-zicbop] --- Cache-Block Prefetch Hint instructions
529+
`zicboz` | | [Zicboz][rv-zicboz] --- Cache-Block Zero instruction
530+
`ziccamoa` | | [Ziccamoa][rv-ziccamoa] --- Platform Behavior: Cacheable and Coherent Main memory supports all basic atomic operations
531+
`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
532+
`zicclsm` | | [Zicclsm][rv-zicclsm] --- Platform Behavior: Cacheable and Coherent Main memory supports misaligned load/store accesses
533+
`ziccrse` | | [Ziccrse][rv-ziccrse] --- Platform Behavior: Cacheable and Coherent Main memory guarantees eventual success on LR/SC sequences
534+
`zicntr` | `zicsr` | [Zicntr][rv-zicntr] --- Base Counters and Timers
535+
`zicond` | | [Zicond][rv-zicond] --- Integer Conditional Operation instructions
536+
`zicsr` | | [Zicsr][rv-zicsr] --- Control and Status Register (CSR) instructions
537+
`zifencei` | | [Zifencei][rv-zifencei] --- Instruction-Fetch Fence instruction
538+
`zihintntl` | | [Zihintntl][rv-zihintntl] --- Non-Temporal Locality Hint instructions
539+
`zihintpause` | | [Zihintpause][rv-zihintpause] --- Pause Hint instruction
540+
`zihpm` | `zicsr` | [Zihpm][rv-zihpm] --- Hardware Performance Counters
541+
`zimop` | | [Zimop][rv-zimop] --- May-Be-Operations
514542
`zk` | `zkn`, `zkr`, `zks`, `zkt`, `zbkb`, `zbkc`, `zkbx` | [Zk][rv-zk] --- Scalar Cryptography
515543
`zkn` | `zknd`, `zkne`, `zknh`, `zbkb`, `zbkc`, `zkbx` | [Zkn][rv-zkn] --- NIST Algorithm suite extension
516544
`zknd` | | [Zknd][rv-zknd] --- NIST Suite: AES Decryption
@@ -521,19 +549,48 @@ Feature | Implicitly Enables | Description
521549
`zksed` | | [Zksed][rv-zksed] --- ShangMi Suite: SM4 Block Cipher Instructions
522550
`zksh` | | [Zksh][rv-zksh] --- ShangMi Suite: SM3 Hash Function Instructions
523551
`zkt` | | [Zkt][rv-zkt] --- Data Independent Execution Latency Subset
552+
`ztso` | | [Ztso][rv-ztso] --- Total Store Ordering
524553

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

527556
[rv-a]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/a-st-ext.adoc
557+
[rv-b]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
528558
[rv-c]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/c-st-ext.adoc
529559
[rv-m]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/m-st-ext.adoc
560+
[rv-za64rs]: https://github.com/riscv/riscv-profiles/blob/rva23-rvb23-ratified/src/rva23-profile.adoc
561+
[rv-za128rs]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
562+
[rv-zaamo]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/a-st-ext.adoc
563+
[rv-zabha]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zabha.adoc
564+
[rv-zacas]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zacas.adoc
565+
[rv-zalrsc]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/a-st-ext.adoc
566+
[rv-zama16b]: https://github.com/riscv/riscv-profiles/blob/rva23-rvb23-ratified/src/rva23-profile.adoc
567+
[rv-zawrs]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zawrs.adoc
530568
[rv-zba]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
531569
[rv-zbb]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
532570
[rv-zbc]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
533571
[rv-zbkb]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
534572
[rv-zbkc]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
535573
[rv-zbkx]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
536574
[rv-zbs]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/b-st-ext.adoc
575+
[rv-zca]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zc.adoc
576+
[rv-zcb]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zc.adoc
577+
[rv-zcmop]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zimop.adoc
578+
[rv-zic64b]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
579+
[rv-zicbom]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/cmo.adoc
580+
[rv-zicbop]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/cmo.adoc
581+
[rv-zicboz]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/cmo.adoc
582+
[rv-ziccamoa]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
583+
[rv-ziccif]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
584+
[rv-zicclsm]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
585+
[rv-ziccrse]: https://github.com/riscv/riscv-profiles/blob/v1.0/profiles.adoc
586+
[rv-zicntr]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/counters.adoc
587+
[rv-zicond]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zicond.adoc
588+
[rv-zicsr]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zicsr.adoc
589+
[rv-zifencei]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zifencei.adoc
590+
[rv-zihintntl]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zihintntl.adoc
591+
[rv-zihintpause]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zihintpause.adoc
592+
[rv-zihpm]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/counters.adoc
593+
[rv-zimop]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/zimop.adoc
537594
[rv-zk]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
538595
[rv-zkn]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
539596
[rv-zkne]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
@@ -544,6 +601,7 @@ Feature | Implicitly Enables | Description
544601
[rv-zksed]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
545602
[rv-zksh]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
546603
[rv-zkt]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/scalar-crypto.adoc
604+
[rv-ztso]: https://github.com/riscv/riscv-isa-manual/blob/20250508/src/ztso-st-ext.adoc
547605

548606
r[attributes.codegen.target_feature.wasm]
549607
#### `wasm32` or `wasm64`

0 commit comments

Comments
 (0)