add core
[shakti-core.git] / src / core / decode.defines
1 `define FNADD 0
2 `define FNSL 1
3 `define FNLR 2
4 `define FNSEQ 2
5 `define FNSC 3
6 `define FNSNE 3
7 `define FNXOR 4
8 `define FNSR 5
9 `define FNOR 6
10 `define FNAND 7
11 `define FNSUB 10
12 `define FNSRA 11
13 `define FNSLT 12
14 `define FNSGE 13
15 `define FNSLTU 14
16 `define FNSGEU 15
17
18 `define FNSWAP 1
19 `define FMINU 10
20 `define FMIN 11
21 `define FMAXU 12
22 `define FMAX 13
23
24 `define FNRAND 8
25
26 `define BEQ 'b?????????????????000?????1100011
27 `define BNE 'b?????????????????001?????1100011
28 `define BLT 'b?????????????????100?????1100011
29 `define BGE 'b?????????????????101?????1100011
30 `define BLTU 'b?????????????????110?????1100011
31 `define BGEU 'b?????????????????111?????1100011
32 `define JALR 'b?????????????????000?????1100111
33 `define JAL 'b?????????????????????????1101111
34 `define LUI 'b?????????????????????????0110111
35 `define AUIPC 'b?????????????????????????0010111
36 `define ADDI 'b?????????????????000?????0010011
37 `define SLLI 'b000000???????????001?????0010011
38 `define SLTI 'b?????????????????010?????0010011
39 `define SLTIU 'b?????????????????011?????0010011
40 `define XORI 'b?????????????????100?????0010011
41 `define SRLI 'b000000???????????101?????0010011
42 `define SRAI 'b010000???????????101?????0010011
43 `define ORI 'b?????????????????110?????0010011
44 `define ANDI 'b?????????????????111?????0010011
45 `define ADD 'b0000000??????????000?????0110011
46 `define SUB 'b0100000??????????000?????0110011
47 `define SLL 'b0000000??????????001?????0110011
48 `define SLT 'b0000000??????????010?????0110011
49 `define SLTU 'b0000000??????????011?????0110011
50 `define XOR 'b0000000??????????100?????0110011
51 `define SRL 'b0000000??????????101?????0110011
52 `define SRA 'b0100000??????????101?????0110011
53 `define OR 'b0000000??????????110?????0110011
54 `define AND 'b0000000??????????111?????0110011
55 `define ADDIW 'b?????????????????000?????0011011
56 `define SLLIW 'b0000000??????????001?????0011011
57 `define SRLIW 'b0000000??????????101?????0011011
58 `define SRAIW 'b0100000??????????101?????0011011
59 `define ADDW 'b0000000??????????000?????0111011
60 `define SUBW 'b0100000??????????000?????0111011
61 `define SLLW 'b0000000??????????001?????0111011
62 `define SRLW 'b0000000??????????101?????0111011
63 `define SRAW 'b0100000??????????101?????0111011
64 `define LB 'b?????????????????000?????0000011
65 `define LH 'b?????????????????001?????0000011
66 `define LW 'b?????????????????010?????0000011
67 `define LD 'b?????????????????011?????0000011
68 `define LBU 'b?????????????????100?????0000011
69 `define LHU 'b?????????????????101?????0000011
70 `define LWU 'b?????????????????110?????0000011
71 `define SB 'b?????????????????000?????0100011
72 `define SH 'b?????????????????001?????0100011
73 `define SW 'b?????????????????010?????0100011
74 `define SD 'b?????????????????011?????0100011
75 `define FENCE 'b?????????????????000?????0001111
76 `define FENCE_I 'b?????????????????001?????0001111
77 `define MUL 'b0000001??????????000?????0110011
78 `define MULH 'b0000001??????????001?????0110011
79 `define MULHSU 'b0000001??????????010?????0110011
80 `define MULHU 'b0000001??????????011?????0110011
81 `define DIV 'b0000001??????????100?????0110011
82 `define DIVU 'b0000001??????????101?????0110011
83 `define REM 'b0000001??????????110?????0110011
84 `define REMU 'b0000001??????????111?????0110011
85 `define MULW 'b0000001??????????000?????0111011
86 `define DIVW 'b0000001??????????100?????0111011
87 `define DIVUW 'b0000001??????????101?????0111011
88 `define REMW 'b0000001??????????110?????0111011
89 `define REMUW 'b0000001??????????111?????0111011
90 `define AMOADD_W 'b00000????????????010?????0101111
91 `define AMOXOR_W 'b00100????????????010?????0101111
92 `define AMOOR_W 'b01000????????????010?????0101111
93 `define AMOAND_W 'b01100????????????010?????0101111
94 `define AMOMIN_W 'b10000????????????010?????0101111
95 `define AMOMAX_W 'b10100????????????010?????0101111
96 `define AMOMINU_W 'b11000????????????010?????0101111
97 `define AMOMAXU_W 'b11100????????????010?????0101111
98 `define AMOSWAP_W 'b00001????????????010?????0101111
99 `define LR_W 'b00010??00000?????010?????0101111
100 `define SC_W 'b00011????????????010?????0101111
101 `define AMOADD_D 'b00000????????????011?????0101111
102 `define AMOXOR_D 'b00100????????????011?????0101111
103 `define AMOOR_D 'b01000????????????011?????0101111
104 `define AMOAND_D 'b01100????????????011?????0101111
105 `define AMOMIN_D 'b10000????????????011?????0101111
106 `define AMOMAX_D 'b10100????????????011?????0101111
107 `define AMOMINU_D 'b11000????????????011?????0101111
108 `define AMOMAXU_D 'b11100????????????011?????0101111
109 `define AMOSWAP_D 'b00001????????????011?????0101111
110 `define LR_D 'b00010??00000?????011?????0101111
111 `define SC_D 'b00011????????????011?????0101111
112 `define ECALL 'b00000000000000000000000001110011
113 `define EBREAK 'b00000000000100000000000001110011
114 `define URET 'b00000000001000000000000001110011
115 `define SRET 'b00010000001000000000000001110011
116 `define HRET 'b00100000001000000000000001110011
117 `define MRET 'b00110000001000000000000001110011
118 `define DRET 'b01111011001000000000000001110011
119 `define SFENCE_VMA 'b0001001??????????000000001110011
120 `define WFI 'b00010000010100000000000001110011
121 `define CSRRW 'b?????????????????001?????1110011
122 `define CSRRS 'b?????????????????010?????1110011
123 `define CSRRC 'b?????????????????011?????1110011
124 `define CSRRWI 'b?????????????????101?????1110011
125 `define CSRRSI 'b?????????????????110?????1110011
126 `define CSRRCI 'b?????????????????111?????1110011
127 `define FADD_S 'b0000000??????????????????1010011
128 `define FSUB_S 'b0000100??????????????????1010011
129 `define FMUL_S 'b0001000??????????????????1010011
130 `define FDIV_S 'b0001100??????????????????1010011
131 `define FSGNJ_S 'b0010000??????????000?????1010011
132 `define FSGNJN_S 'b0010000??????????001?????1010011
133 `define FSGNJX_S 'b0010000??????????010?????1010011
134 `define FMIN_S 'b0010100??????????000?????1010011
135 `define FMAX_S 'b0010100??????????001?????1010011
136 `define FSQRT_S 'b010110000000?????????????1010011
137 `define FADD_D 'b0000001??????????????????1010011
138 `define FSUB_D 'b0000101??????????????????1010011
139 `define FMUL_D 'b0001001??????????????????1010011
140 `define FDIV_D 'b0001101??????????????????1010011
141 `define FSGNJ_D 'b0010001??????????000?????1010011
142 `define FSGNJN_D 'b0010001??????????001?????1010011
143 `define FSGNJX_D 'b0010001??????????010?????1010011
144 `define FMIN_D 'b0010101??????????000?????1010011
145 `define FMAX_D 'b0010101??????????001?????1010011
146 `define FCVT_S_D 'b010000000001?????????????1010011
147 `define FCVT_D_S 'b010000100000?????????????1010011
148 `define FSQRT_D 'b010110100000?????????????1010011
149 `define FLE_S 'b1010000??????????000?????1010011
150 `define FLT_S 'b1010000??????????001?????1010011
151 `define FEQ_S 'b1010000??????????010?????1010011
152 `define FLE_D 'b1010001??????????000?????1010011
153 `define FLT_D 'b1010001??????????001?????1010011
154 `define FEQ_D 'b1010001??????????010?????1010011
155 `define FCVT_W_S 'b110000000000?????????????1010011
156 `define FCVT_WU_S 'b110000000001?????????????1010011
157 `define FCVT_L_S 'b110000000010?????????????1010011
158 `define FCVT_LU_S 'b110000000011?????????????1010011
159 `define FMV_X_S 'b111000000000?????000?????1010011
160 `define FCLASS_S 'b111000000000?????001?????1010011
161 `define FCVT_W_D 'b110000100000?????????????1010011
162 `define FCVT_WU_D 'b110000100001?????????????1010011
163 `define FCVT_L_D 'b110000100010?????????????1010011
164 `define FCVT_LU_D 'b110000100011?????????????1010011
165 `define FMV_X_D 'b111000100000?????000?????1010011
166 `define FCLASS_D 'b111000100000?????001?????1010011
167 `define FCVT_S_W 'b110100000000?????????????1010011
168 `define FCVT_S_WU 'b110100000001?????????????1010011
169 `define FCVT_S_L 'b110100000010?????????????1010011
170 `define FCVT_S_LU 'b110100000011?????????????1010011
171 `define FMV_S_X 'b111100000000?????000?????1010011
172 `define FCVT_D_W 'b110100100000?????????????1010011
173 `define FCVT_D_WU 'b110100100001?????????????1010011
174 `define FCVT_D_L 'b110100100010?????????????1010011
175 `define FCVT_D_LU 'b110100100011?????????????1010011
176 `define FMV_D_X 'b111100100000?????000?????1010011
177 `define FLW 'b?????????????????010?????0000111
178 `define FLD 'b?????????????????011?????0000111
179 `define FSW 'b?????????????????010?????0100111
180 `define FSD 'b?????????????????011?????0100111
181 `define FMADD_S 'b?????00??????????????????1000011
182 `define FMSUB_S 'b?????00??????????????????1000111
183 `define FNMSUB_S 'b?????00??????????????????1001011
184 `define FNMADD_S 'b?????00??????????????????1001111
185 `define FMADD_D 'b?????01??????????????????1000011
186 `define FMSUB_D 'b?????01??????????????????1000111
187 `define FNMSUB_D 'b?????01??????????????????1001011
188 `define FNMADD_D 'b?????01??????????????????1001111
189 `define FRFLAGS 'b00000000000100000010?????1110011
190 `define FSFLAGS 'b000000000001?????001?????1110011
191 `define FSFLAGSI 'b000000000001?????101?????1110011
192 `define FRRM 'b00000000001000000010?????1110011
193 `define FSRM 'b000000000010?????001?????1110011
194 `define FSRMI 'b000000000010?????101?????1110011
195 `define FSCSR 'b000000000011?????001?????1110011
196 `define FRCSR 'b00000000001100000010?????1110011
197 `define RDCYCLE 'b11000000000000000010?????1110011
198 `define RDTIME 'b11000000000100000010?????1110011
199 `define RDINSTRET 'b11000000001000000010?????1110011
200 `define RDCYCLEH 'b11001000000000000010?????1110011
201 `define RDTIMEH 'b11001000000100000010?????1110011
202 `define RDINSTRETH 'b11001000001000000010?????1110011
203 `define SCALL 'b00000000000000000000000001110011
204 `define SBREAK 'b00000000000100000000000001110011