@@ -24,26 +24,48 @@ features! {
24
24
///
25
25
/// The supported ratified RISC-V instruction sets are as follows:
26
26
///
27
+ /// * RV32E: `"rv32e"`
27
28
/// * RV32I: `"rv32i"`
28
- /// * Zifencei: `"zifencei"`
29
- /// * Zihintpause: `"zihintpause"`
30
29
/// * RV64I: `"rv64i"`
31
- /// * M: `"m"`
32
30
/// * A: `"a"`
33
- /// * Zicsr: `"zicsr"`
34
- /// * Zicntr: `"zicntr"`
35
- /// * Zihpm: `"zihpm"`
36
- /// * F: `"f"`
31
+ /// * B: `"b"`
32
+ /// * Zba: `"zba"`
33
+ /// * Zbb: `"zbb"`
34
+ /// * Zbc: `"zbc"`
35
+ /// * Zbs: `"zbs"`
36
+ /// * C: `"c"`
37
37
/// * D: `"d"`
38
+ /// * F: `"f"`
39
+ /// * M: `"m"`
38
40
/// * Q: `"q"`
39
- /// * C: `"c"`
41
+ /// * V: `"v"`
42
+ /// * Zicntr: `"zicntr"`
43
+ /// * Zicsr: `"zicsr"`
44
+ /// * Zifencei: `"zifencei"`
45
+ /// * Zihintpause: `"zihintpause"`
46
+ /// * Zihpm: `"zihpm"`
47
+ /// * Zk: `"zk"`
48
+ /// * Zbkb: `"zbkb"`
49
+ /// * Zbkc: `"zbkc"`
50
+ /// * Zbkx: `"zbkx"`
51
+ /// * Zkn: `"zkn"`
52
+ /// * Zknd: `"zknd"`
53
+ /// * Zkne: `"zkne"`
54
+ /// * Zknh: `"zknh"`
55
+ /// * Zkr: `"zkr"`
56
+ /// * Zks: `"zks"`
57
+ /// * Zksed: `"zksed"`
58
+ /// * Zksh: `"zksh"`
59
+ /// * Zkt: `"zkt"`
40
60
///
41
61
/// There's also bases and extensions marked as standard instruction set,
42
62
/// but they are in frozen or draft state. These instruction sets are also
43
63
/// reserved by this macro and can be detected in the future platforms.
44
64
///
45
65
/// Frozen RISC-V instruction sets:
46
66
///
67
+ /// * Zfh: `"zfh"`
68
+ /// * Zfhmin: `"zfhmin"`
47
69
/// * Zfinx: `"zfinx"`
48
70
/// * Zdinx: `"zdinx"`
49
71
/// * Zhinx: `"zhinx"`
@@ -52,14 +74,9 @@ features! {
52
74
///
53
75
/// Draft RISC-V instruction sets:
54
76
///
55
- /// * RV32E: `"rv32e"`
56
77
/// * RV128I: `"rv128i"`
57
- /// * Zfh: `"zfh"`
58
- /// * Zfhmin: `"zfhmin"`
59
- /// * B: `"b"`
60
78
/// * J: `"j"`
61
79
/// * P: `"p"`
62
- /// * V: `"v"`
63
80
/// * Zam: `"zam"`
64
81
///
65
82
/// Defined by Privileged Specification:
@@ -70,94 +87,65 @@ features! {
70
87
/// * Svinval: `"svinval"`
71
88
/// * Hypervisor: `"h"`
72
89
///
73
- /// # RISC-V Bit-Manipulation ISA-extensions
74
- ///
75
- /// This document defined the following extensions:
76
- ///
77
- /// * Zba: `"zba"`
78
- /// * Zbb: `"zbb"`
79
- /// * Zbc: `"zbc"`
80
- /// * Zbs: `"zbs"`
81
- ///
82
- /// # RISC-V Cryptography Extensions
83
- ///
84
- /// These extensions are defined in Volume I, Scalar & Entropy Source
85
- /// Instructions:
86
- ///
87
- /// * Zbkb: `"zbkb"`
88
- /// * Zbkc: `"zbkc"`
89
- /// * Zbkx: `"zbkx"`
90
- /// * Zknd: `"zknd"`
91
- /// * Zkne: `"zkne"`
92
- /// * Zknh: `"zknh"`
93
- /// * Zksed: `"zksed"`
94
- /// * Zksh: `"zksh"`
95
- /// * Zkr: `"zkr"`
96
- /// * Zkn: `"zkn"`
97
- /// * Zks: `"zks"`
98
- /// * Zk: `"zk"`
99
- /// * Zkt: `"zkt"`
100
- ///
101
90
/// [ISA manual]: https://github.com/riscv/riscv-isa-manual/
102
- #[ unstable( feature = "stdsimd" , issue = "27731" ) ]
103
- @FEATURE : #[ unstable( feature = "stdsimd" , issue = "27731" ) ] rv32i: "rv32i" ;
91
+ @FEATURE : #[ stable( feature = "riscv_ratified" , since = "1.74.0" ) ] rv32i: "rv32i" ;
104
92
/// RV32I Base Integer Instruction Set
105
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zifencei: "zifencei" ;
93
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zifencei: "zifencei" ;
106
94
/// "Zifencei" Instruction-Fetch Fence
107
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zihintpause: "zihintpause" ;
95
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zihintpause: "zihintpause" ;
108
96
/// "Zihintpause" Pause Hint
109
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] rv64i: "rv64i" ;
97
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] rv64i: "rv64i" ;
110
98
/// RV64I Base Integer Instruction Set
111
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] m: "m" ;
99
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] m: "m" ;
112
100
/// "M" Standard Extension for Integer Multiplication and Division
113
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] a: "a" ;
101
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] a: "a" ;
114
102
/// "A" Standard Extension for Atomic Instructions
115
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zicsr: "zicsr" ;
103
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zicsr: "zicsr" ;
116
104
/// "Zicsr", Control and Status Register (CSR) Instructions
117
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zicntr: "zicntr" ;
105
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zicntr: "zicntr" ;
118
106
/// "Zicntr", Standard Extension for Base Counters and Timers
119
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zihpm: "zihpm" ;
107
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zihpm: "zihpm" ;
120
108
/// "Zihpm", Standard Extension for Hardware Performance Counters
121
- @FEATURE : #[ unstable( feature = "stdsimd " , issue = "27731 " ) ] f: "f" ;
109
+ @FEATURE : #[ unstable( feature = "riscv_ext_intrinsics " , issue = "114544 " ) ] f: "f" ;
122
110
/// "F" Standard Extension for Single-Precision Floating-Point
123
- @FEATURE : #[ unstable( feature = "stdsimd " , issue = "27731 " ) ] d: "d" ;
111
+ @FEATURE : #[ unstable( feature = "riscv_ext_intrinsics " , issue = "114544 " ) ] d: "d" ;
124
112
/// "D" Standard Extension for Double-Precision Floating-Point
125
- @FEATURE : #[ unstable( feature = "stdsimd " , issue = "27731 " ) ] q: "q" ;
113
+ @FEATURE : #[ unstable( feature = "riscv_ext_intrinsics " , issue = "114544 " ) ] q: "q" ;
126
114
/// "Q" Standard Extension for Quad-Precision Floating-Point
127
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] c: "c" ;
115
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] c: "c" ;
128
116
/// "C" Standard Extension for Compressed Instructions
129
117
130
- @FEATURE : #[ unstable( feature = "stdsimd " , issue = "27731 " ) ] zfinx: "zfinx" ;
118
+ @FEATURE : #[ unstable( feature = "riscv_ext_intrinsics " , issue = "114544 " ) ] zfinx: "zfinx" ;
131
119
/// "Zfinx" Standard Extension for Single-Precision Floating-Point in Integer Registers
132
- @FEATURE : #[ unstable( feature = "stdsimd " , issue = "27731 " ) ] zdinx: "zdinx" ;
120
+ @FEATURE : #[ unstable( feature = "riscv_ext_intrinsics " , issue = "114544 " ) ] zdinx: "zdinx" ;
133
121
/// "Zdinx" Standard Extension for Double-Precision Floating-Point in Integer Registers
134
- @FEATURE : #[ unstable( feature = "stdsimd " , issue = "27731 " ) ] zhinx: "zhinx" ;
122
+ @FEATURE : #[ unstable( feature = "riscv_ext_intrinsics " , issue = "114544 " ) ] zhinx: "zhinx" ;
135
123
/// "Zhinx" Standard Extension for Half-Precision Floating-Point in Integer Registers
136
- @FEATURE : #[ unstable( feature = "stdsimd " , issue = "27731 " ) ] zhinxmin: "zhinxmin" ;
124
+ @FEATURE : #[ unstable( feature = "riscv_ext_intrinsics " , issue = "114544 " ) ] zhinxmin: "zhinxmin" ;
137
125
/// "Zhinxmin" Standard Extension for Minimal Half-Precision Floating-Point in Integer Registers
138
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] ztso: "ztso" ;
126
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] ztso: "ztso" ;
139
127
/// "Ztso" Standard Extension for Total Store Ordering
140
128
141
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] rv32e: "rv32e" ;
129
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] rv32e: "rv32e" ;
142
130
/// RV32E Base Integer Instruction Set
143
131
@FEATURE : #[ unstable( feature = "stdsimd" , issue = "27731" ) ] rv128i: "rv128i" ;
144
132
/// RV128I Base Integer Instruction Set
145
- @FEATURE : #[ unstable( feature = "stdsimd " , issue = "27731 " ) ] zfh: "zfh" ;
133
+ @FEATURE : #[ unstable( feature = "riscv_ext_intrinsics " , issue = "114544 " ) ] zfh: "zfh" ;
146
134
/// "Zfh" Standard Extension for 16-Bit Half-Precision Floating-Point
147
- @FEATURE : #[ unstable( feature = "stdsimd " , issue = "27731 " ) ] zfhmin: "zfhmin" ;
135
+ @FEATURE : #[ unstable( feature = "riscv_ext_intrinsics " , issue = "114544 " ) ] zfhmin: "zfhmin" ;
148
136
/// "Zfhmin" Standard Extension for Minimal Half-Precision Floating-Point Support
149
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] b: "b" ;
137
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] b: "b" ;
150
138
/// "B" Standard Extension for Bit Manipulation
151
139
@FEATURE : #[ unstable( feature = "stdsimd" , issue = "27731" ) ] j: "j" ;
152
140
/// "J" Standard Extension for Dynamically Translated Languages
153
141
@FEATURE : #[ unstable( feature = "stdsimd" , issue = "27731" ) ] p: "p" ;
154
142
/// "P" Standard Extension for Packed-SIMD Instructions
155
- @FEATURE : #[ unstable( feature = "stdsimd " , issue = "27731 " ) ] v: "v" ;
143
+ @FEATURE : #[ unstable( feature = "riscv_ext_intrinsics " , issue = "114544 " ) ] v: "v" ;
156
144
/// "V" Standard Extension for Vector Operations
157
145
@FEATURE : #[ unstable( feature = "stdsimd" , issue = "27731" ) ] zam: "zam" ;
158
146
/// "Zam" Standard Extension for Misaligned Atomics
159
147
160
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] s: "s" ;
148
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] s: "s" ;
161
149
/// Supervisor-Level ISA
162
150
@FEATURE : #[ unstable( feature = "stdsimd" , issue = "27731" ) ] svnapot: "svnapot" ;
163
151
/// "Svnapot" Standard Extension for NAPOT Translation Contiguity
@@ -168,39 +156,39 @@ features! {
168
156
@FEATURE : #[ unstable( feature = "stdsimd" , issue = "27731" ) ] h: "h" ;
169
157
/// Hypervisor Extension
170
158
171
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zba: "zba" ;
159
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zba: "zba" ;
172
160
/// "Zba" Standard Extension for Address Generation Instructions
173
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zbb: "zbb" ;
161
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zbb: "zbb" ;
174
162
/// "Zbb" Standard Extension for Basic Bit-Manipulation
175
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zbc: "zbc" ;
163
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zbc: "zbc" ;
176
164
/// "Zbc" Standard Extension for Carry-less Multiplication
177
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zbs: "zbs" ;
165
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zbs: "zbs" ;
178
166
/// "Zbs" Standard Extension for Single-Bit instructions
179
167
180
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zbkb: "zbkb" ;
168
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zbkb: "zbkb" ;
181
169
/// "Zbkb" Standard Extension for Bitmanip instructions for Cryptography
182
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zbkc: "zbkc" ;
170
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zbkc: "zbkc" ;
183
171
/// "Zbkc" Standard Extension for Carry-less multiply instructions
184
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zbkx: "zbkx" ;
172
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zbkx: "zbkx" ;
185
173
/// "Zbkx" Standard Extension for Crossbar permutation instructions
186
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zknd: "zknd" ;
174
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zknd: "zknd" ;
187
175
/// "Zknd" Standard Extension for NIST Suite: AES Decryption
188
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zkne: "zkne" ;
176
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zkne: "zkne" ;
189
177
/// "Zkne" Standard Extension for NIST Suite: AES Encryption
190
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zknh: "zknh" ;
178
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zknh: "zknh" ;
191
179
/// "Zknh" Standard Extension for NIST Suite: Hash Function Instructions
192
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zksed: "zksed" ;
180
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zksed: "zksed" ;
193
181
/// "Zksed" Standard Extension for ShangMi Suite: SM4 Block Cipher Instructions
194
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zksh: "zksh" ;
182
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zksh: "zksh" ;
195
183
/// "Zksh" Standard Extension for ShangMi Suite: SM3 Hash Function Instructions
196
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zkr: "zkr" ;
184
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zkr: "zkr" ;
197
185
/// "Zkr" Standard Extension for Entropy Source Extension
198
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zkn: "zkn" ;
186
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zkn: "zkn" ;
199
187
/// "Zkn" Standard Extension for NIST Algorithm Suite
200
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zks: "zks" ;
188
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zks: "zks" ;
201
189
/// "Zks" Standard Extension for ShangMi Algorithm Suite
202
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zk: "zk" ;
190
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zk: "zk" ;
203
191
/// "Zk" Standard Extension for Standard scalar cryptography extension
204
- @FEATURE : #[ unstable ( feature = "stdsimd " , issue = "27731 " ) ] zkt: "zkt" ;
192
+ @FEATURE : #[ stable ( feature = "riscv_ratified " , since = "1.74.0 " ) ] zkt: "zkt" ;
205
193
/// "Zkt" Standard Extension for Data Independent Execution Latency
206
194
}
0 commit comments