@@ -204,6 +204,66 @@ Feature | Implicitly Enables | Feature Name
204
204
` tme ` | | FEAT_TME - Transactional Memory Extension
205
205
` vh ` | | FEAT_VHE - Virtualization Host Extensions
206
206
207
+ #### ` riscv32 ` or ` riscv64 `
208
+
209
+ This platform requires that ` #[target_feature] ` is only applied to [ ` unsafe `
210
+ functions] [ unsafe function ] .
211
+
212
+ Further documentation on these features can be found in their respective
213
+ specification. Many specifications are described in the [ RISC-V ISA Manual] or
214
+ in another manual hosted on the [ RISC-V GitHub Account] .
215
+
216
+ [ RISC-V ISA Manual ] : https://github.com/riscv/riscv-isa-manual
217
+ [ RISC-V GitHub Account ] : https://github.com/riscv
218
+
219
+ Feature | Implicitly Enables | Description
220
+ ------------|---------------------|-------------------
221
+ ` a ` | | [ A] [ rv-a ] — Atomic instructions
222
+ ` c ` | | [ C] [ rv-c ] — Compressed instructions
223
+ ` m ` | | [ M] [ rv-m ] — Integer Multiplication and Division instructions
224
+ ` zb ` | ` zba ` , ` zbc ` , ` zbs ` | [ Zb] [ rv-zb ] — Bit Manipulation instructions
225
+ ` zba ` | | [ Zba] [ rv-zb-zba ] — Address Generation instructions
226
+ ` zbb ` | | [ Zbb] [ rv-zb-zbb ] — Basic bit-manipulation
227
+ ` zbc ` | | [ Zbc] [ rv-zb-zbc ] — Carry-less multiplication
228
+ ` zbkb ` | | [ Zbkb] [ rv-zb-zbkb ] — Bit Manipulation Instructions for Cryptography
229
+ ` zbkc ` | | [ Zbkc] [ rv-zb-zbc ] — Carry-less multiplication for Cryptography
230
+ ` zbkx ` | | [ Zbkx] [ rv-zb-zbkx ] — Crossbar permutations
231
+ ` zbs ` | | [ Zbs] [ rv-zb-zbs ] — Single-bit instructions
232
+ ` zk ` | ` zkn ` , ` zkr ` , ` zks ` , ` zkt ` , ` zbkb ` , ` zbkc ` , ` zkbx ` | [ Zk] [ rv-zk ] — Scalar Cryptography
233
+ ` zkn ` | ` zknd ` , ` zkne ` , ` zknh ` , ` zbkb ` , ` zbkc ` , ` zkbx ` | [ Zkn] [ rv-zkn ] — NIST Algorithm suite extension
234
+ ` zknd ` | | [ Zknd] [ rv-zknd ] — NIST Suite: AES Decryption
235
+ ` zkne ` | | [ Zkne] [ rv-zkne ] — NIST Suite: AES Encryption
236
+ ` zknh ` | | [ Zknh] [ rv-zknh ] — NIST Suite: Hash Function Instructions
237
+ ` zkr ` | | [ Zkr] [ rv-zkr ] — Entropy Source Extension
238
+ ` zks ` | ` zksed ` , ` zksh ` , ` zbkb ` , ` zbkc ` , ` zkbx ` | [ Zks] [ rv-zks ] — ShangMi Algorithm Suite
239
+ ` zksed ` | | [ Zksed] [ rv-zksed ] — ShangMi Suite: SM4 Block Cipher Instructions
240
+ ` zksh ` | | [ Zksh] [ rv-zksh ] — ShangMi Suite: SM3 Hash Function Instructions
241
+ ` zkt ` | | [ Zkt] [ rv-zkt ] — Data Independent Execution Latency Subset
242
+
243
+ <!-- Keep links near each table to make it easier to move and update. -->
244
+
245
+ [ rv-a ] : https://github.com/riscv/riscv-isa-manual/blob/de46343a245c6ee1f7b1a40c92fe1a86bd4f4978/src/a-st-ext.adoc
246
+ [ rv-c ] : https://github.com/riscv/riscv-isa-manual/blob/de46343a245c6ee1f7b1a40c92fe1a86bd4f4978/src/c-st-ext.adoc
247
+ [ rv-m ] : https://github.com/riscv/riscv-isa-manual/blob/de46343a245c6ee1f7b1a40c92fe1a86bd4f4978/src/m-st-ext.adoc
248
+ [ rv-zb ] : https://github.com/riscv/riscv-bitmanip
249
+ [ rv-zb-zba ] : https://github.com/riscv/riscv-bitmanip/blob/main/bitmanip/zba.adoc
250
+ [ rv-zb-zbb ] : https://github.com/riscv/riscv-bitmanip/blob/main/bitmanip/zbb.adoc
251
+ [ rv-zb-zbc ] : https://github.com/riscv/riscv-bitmanip/blob/main/bitmanip/zbc.adoc
252
+ [ rv-zb-zbkb ] : https://github.com/riscv/riscv-bitmanip/blob/main/bitmanip/zbkb.adoc
253
+ [ rv-zb-zbkc ] : https://github.com/riscv/riscv-bitmanip/blob/main/bitmanip/zbkc.adoc
254
+ [ rv-zb-zbkx ] : https://github.com/riscv/riscv-bitmanip/blob/main/bitmanip/zbkx.adoc
255
+ [ rv-zb-zbs ] : https://github.com/riscv/riscv-bitmanip/blob/main/bitmanip/zbs.adoc
256
+ [ rv-zk ] : https://github.com/riscv/riscv-crypto/blob/e2dd7d98b7f34d477e38cb5fd7a3af4379525189/doc/scalar/riscv-crypto-scalar-zk.adoc
257
+ [ rv-zkn ] : https://github.com/riscv/riscv-crypto/blob/e2dd7d98b7f34d477e38cb5fd7a3af4379525189/doc/scalar/riscv-crypto-scalar-zkn.adoc
258
+ [ rv-zkne ] : https://github.com/riscv/riscv-crypto/blob/e2dd7d98b7f34d477e38cb5fd7a3af4379525189/doc/scalar/riscv-crypto-scalar-zkne.adoc
259
+ [ rv-zknd ] : https://github.com/riscv/riscv-crypto/blob/e2dd7d98b7f34d477e38cb5fd7a3af4379525189/doc/scalar/riscv-crypto-scalar-zknd.adoc
260
+ [ rv-zknh ] : https://github.com/riscv/riscv-crypto/blob/e2dd7d98b7f34d477e38cb5fd7a3af4379525189/doc/scalar/riscv-crypto-scalar-zknh.adoc
261
+ [ rv-zkr ] : https://github.com/riscv/riscv-crypto/blob/e2dd7d98b7f34d477e38cb5fd7a3af4379525189/doc/scalar/riscv-crypto-scalar-zkr.adoc
262
+ [ rv-zks ] : https://github.com/riscv/riscv-crypto/blob/e2dd7d98b7f34d477e38cb5fd7a3af4379525189/doc/scalar/riscv-crypto-scalar-zks.adoc
263
+ [ rv-zksed ] : https://github.com/riscv/riscv-crypto/blob/e2dd7d98b7f34d477e38cb5fd7a3af4379525189/doc/scalar/riscv-crypto-scalar-zksed.adoc
264
+ [ rv-zksh ] : https://github.com/riscv/riscv-crypto/blob/e2dd7d98b7f34d477e38cb5fd7a3af4379525189/doc/scalar/riscv-crypto-scalar-zksh.adoc
265
+ [ rv-zkt ] : https://github.com/riscv/riscv-crypto/blob/e2dd7d98b7f34d477e38cb5fd7a3af4379525189/doc/scalar/riscv-crypto-scalar-zkr.adoc
266
+
207
267
#### ` wasm32 ` or ` wasm64 `
208
268
209
269
` #[target_feature] ` may be used with both safe and
0 commit comments