forked from riscv/sail-riscv
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathriscv_extensions.sail
118 lines (104 loc) · 4.49 KB
/
riscv_extensions.sail
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*=======================================================================================*/
/* This Sail RISC-V architecture model, comprising all files and */
/* directories except where otherwise noted is subject the BSD */
/* two-clause license in the LICENSE file. */
/* */
/* SPDX-License-Identifier: BSD-2-Clause */
/*=======================================================================================*/
scattered enum extension
// Note, these are sorted according to the canonical ordering vaguely described
// in the `Subset Naming Convention` section of the unprivileged spec.
// Integer Multiplication and Division; not Machine!
enum clause extension = Ext_M
// Single-Precision Floating-Point
enum clause extension = Ext_F
// Double-Precision Floating-Point
enum clause extension = Ext_D
// Compressed Instructions
enum clause extension = Ext_C
// Bit Manipulation
enum clause extension = Ext_B
// Vector Operations
enum clause extension = Ext_V
// Supervisor
enum clause extension = Ext_S
// User
enum clause extension = Ext_U
// Cache-Block Management Instructions
enum clause extension = Ext_Zicbom
// Cache-Block Zero Instructions
enum clause extension = Ext_Zicboz
// Base Counters and Timers
enum clause extension = Ext_Zicntr
// Integer Conditional Operations
enum clause extension = Ext_Zicond
// Instruction-Fetch Fence
enum clause extension = Ext_Zifencei
// Hardware Performance Counters
enum clause extension = Ext_Zihpm
// Multiplication and Division: Multiplication only
enum clause extension = Ext_Zmmul
// Atomic Memory Operations
enum clause extension = Ext_Zaamo
// Byte and Halfword Atomic Memory Operations
enum clause extension = Ext_Zabha
// Load-Reserved/Store-Conditional Instructions
enum clause extension = Ext_Zalrsc
// Additional Floating-Point Instructions
enum clause extension = Ext_Zfa
// Half-Precision Floating-Point
enum clause extension = Ext_Zfh
// Minimal Half-Precision Floating-Point
enum clause extension = Ext_Zfhmin
// Floating-Point in Integer Registers (single precision)
enum clause extension = Ext_Zfinx
// Floating-Point in Integer Registers (double precision)
enum clause extension = Ext_Zdinx
// Code Size Reduction: compressed instructions excluding floating point loads and stores
enum clause extension = Ext_Zca
// Code Size Reduction: additional 16-bit aliases
enum clause extension = Ext_Zcb
// Code Size Reduction: compressed double precision floating point loads and stores
enum clause extension = Ext_Zcd
// Code Size Reduction: compressed single precision floating point loads and stores
enum clause extension = Ext_Zcf
// Bit Manipulation: Address generation
enum clause extension = Ext_Zba
// Bit Manipulation: Basic bit-manipulation
enum clause extension = Ext_Zbb
// Bit Manipulation: Carry-less multiplication
enum clause extension = Ext_Zbc
// Bit Manipulation: Bit-manipulation for Cryptography
enum clause extension = Ext_Zbkb
// Bit Manipulation: Carry-less multiplication for Cryptography
enum clause extension = Ext_Zbkc
// Bit Manipulation: Crossbar permutations
enum clause extension = Ext_Zbkx
// Bit Manipulation: Single-bit instructions
enum clause extension = Ext_Zbs
// Scalar & Entropy Source Instructions: NIST Suite: AES Decryption
enum clause extension = Ext_Zknd
// Scalar & Entropy Source Instructions: NIST Suite: AES Encryption
enum clause extension = Ext_Zkne
// Scalar & Entropy Source Instructions: NIST Suite: Hash Function Instructions
enum clause extension = Ext_Zknh
// Scalar & Entropy Source Instructions: Entropy Source Extension
enum clause extension = Ext_Zkr
// Scalar & Entropy Source Instructions: ShangMi Suite: SM4 Block Cipher Instructions
enum clause extension = Ext_Zksed
// Scalar & Entropy Source Instructions: ShangMi Suite: SM3 Hash Cipher Instructions
enum clause extension = Ext_Zksh
// Floating-Point in Integer Registers (half precision)
enum clause extension = Ext_Zhinx
// Count Overflow and Mode-Based Filtering
enum clause extension = Ext_Sscofpmf
// Supervisor-mode Timer Interrupts
enum clause extension = Ext_Sstc
// Fine-Grained Address-Translation Cache Invalidation
enum clause extension = Ext_Svinval
// NAPOT Translation Contiguity
enum clause extension = Ext_Svnapot
// Page-Based Memory Types
enum clause extension = Ext_Svpbmt
// Cycle and Instret Privilege Mode Filtering
enum clause extension = Ext_Smcntrpmf