Reorganized directory structure
[riscv-isa-sim.git] / riscv / execute.h
1 /* Automatically generated by parse-opcodes */
2 switch(opcode)
3 {
4 case 0:
5 {
6 switch(funct)
7 {
8 case 0:
9 {
10 #include "insns/unimp.h"
11 }
12 break;
13 case 1:
14 {
15 #include "insns/sll.h"
16 }
17 break;
18 case 2:
19 {
20 #include "insns/srl.h"
21 }
22 break;
23 case 3:
24 {
25 #include "insns/sra.h"
26 }
27 break;
28 case 5:
29 {
30 #include "insns/sllv.h"
31 }
32 break;
33 case 6:
34 {
35 #include "insns/srlv.h"
36 }
37 break;
38 case 7:
39 {
40 #include "insns/srav.h"
41 }
42 break;
43 case 9:
44 {
45 #include "insns/jalr.h"
46 }
47 break;
48 case 10:
49 {
50 #include "insns/movz.h"
51 }
52 break;
53 case 11:
54 {
55 #include "insns/movn.h"
56 }
57 break;
58 case 12:
59 {
60 #include "insns/syscall.h"
61 }
62 break;
63 case 13:
64 {
65 #include "insns/break.h"
66 }
67 break;
68 case 14:
69 {
70 #include "insns/rdhwr.h"
71 }
72 break;
73 case 15:
74 {
75 #include "insns/sync.h"
76 }
77 break;
78 case 17:
79 {
80 #include "insns/dsll.h"
81 }
82 break;
83 case 18:
84 {
85 #include "insns/dsrl.h"
86 }
87 break;
88 case 19:
89 {
90 #include "insns/dsra.h"
91 }
92 break;
93 case 21:
94 {
95 #include "insns/dsllv.h"
96 }
97 break;
98 case 22:
99 {
100 #include "insns/dsrlv.h"
101 }
102 break;
103 case 23:
104 {
105 #include "insns/dsrav.h"
106 }
107 break;
108 case 25:
109 {
110 #include "insns/dsll32.h"
111 }
112 break;
113 case 26:
114 {
115 #include "insns/dsrl32.h"
116 }
117 break;
118 case 27:
119 {
120 #include "insns/dsra32.h"
121 }
122 break;
123 case 32:
124 {
125 #include "insns/add.h"
126 }
127 break;
128 case 33:
129 {
130 #include "insns/sub.h"
131 }
132 break;
133 case 34:
134 {
135 #include "insns/slt.h"
136 }
137 break;
138 case 35:
139 {
140 #include "insns/sltu.h"
141 }
142 break;
143 case 36:
144 {
145 #include "insns/and.h"
146 }
147 break;
148 case 37:
149 {
150 #include "insns/or.h"
151 }
152 break;
153 case 38:
154 {
155 #include "insns/xor.h"
156 }
157 break;
158 case 39:
159 {
160 #include "insns/nor.h"
161 }
162 break;
163 case 40:
164 {
165 #include "insns/mul.h"
166 }
167 break;
168 case 48:
169 {
170 #include "insns/dadd.h"
171 }
172 break;
173 case 49:
174 {
175 #include "insns/dsub.h"
176 }
177 break;
178 case 56:
179 {
180 #include "insns/dmul.h"
181 }
182 break;
183 default:
184 {
185 #include "insns/unimp.h"
186 }
187 break;
188 }
189 }
190 break;
191 case 1:
192 {
193 #include "insns/synci.h"
194 }
195 break;
196 case 2:
197 {
198 #include "insns/j.h"
199 }
200 break;
201 case 3:
202 {
203 #include "insns/jal.h"
204 }
205 break;
206 case 4:
207 {
208 #include "insns/beq.h"
209 }
210 break;
211 case 5:
212 {
213 #include "insns/bne.h"
214 }
215 break;
216 case 8:
217 {
218 #include "insns/addi.h"
219 }
220 break;
221 case 10:
222 {
223 #include "insns/slti.h"
224 }
225 break;
226 case 11:
227 {
228 #include "insns/sltiu.h"
229 }
230 break;
231 case 12:
232 {
233 #include "insns/andi.h"
234 }
235 break;
236 case 13:
237 {
238 #include "insns/ori.h"
239 }
240 break;
241 case 14:
242 {
243 #include "insns/xori.h"
244 }
245 break;
246 case 15:
247 {
248 #include "insns/lui.h"
249 }
250 break;
251 case 16:
252 {
253 switch(funct)
254 {
255 case 0:
256 {
257 #include "insns/ei.h"
258 }
259 break;
260 case 1:
261 {
262 #include "insns/di.h"
263 }
264 break;
265 case 2:
266 {
267 #include "insns/eret.h"
268 }
269 break;
270 case 24:
271 {
272 #include "insns/mfc0.h"
273 }
274 break;
275 case 25:
276 {
277 #include "insns/dmfc0.h"
278 }
279 break;
280 case 28:
281 {
282 #include "insns/mtc0.h"
283 }
284 break;
285 case 29:
286 {
287 #include "insns/dmtc0.h"
288 }
289 break;
290 default:
291 {
292 #include "insns/unimp.h"
293 }
294 break;
295 }
296 }
297 break;
298 case 17:
299 {
300 switch(funct)
301 {
302 case 0:
303 {
304 #include "insns/add_fmt.h"
305 }
306 break;
307 case 1:
308 {
309 #include "insns/sub_fmt.h"
310 }
311 break;
312 case 2:
313 {
314 #include "insns/mul_fmt.h"
315 }
316 break;
317 case 3:
318 {
319 #include "insns/div_fmt.h"
320 }
321 break;
322 case 4:
323 {
324 #include "insns/sqrt_fmt.h"
325 }
326 break;
327 case 5:
328 {
329 #include "insns/abs_fmt.h"
330 }
331 break;
332 case 6:
333 {
334 #include "insns/mov_fmt.h"
335 }
336 break;
337 case 7:
338 {
339 #include "insns/neg_fmt.h"
340 }
341 break;
342 case 8:
343 {
344 #include "insns/round_l_fmt.h"
345 }
346 break;
347 case 9:
348 {
349 #include "insns/trunc_l_fmt.h"
350 }
351 break;
352 case 10:
353 {
354 #include "insns/ceil_l_fmt.h"
355 }
356 break;
357 case 11:
358 {
359 #include "insns/floor_l_fmt.h"
360 }
361 break;
362 case 12:
363 {
364 #include "insns/round_w_fmt.h"
365 }
366 break;
367 case 13:
368 {
369 #include "insns/trunc_w_fmt.h"
370 }
371 break;
372 case 14:
373 {
374 #include "insns/ceil_w_fmt.h"
375 }
376 break;
377 case 15:
378 {
379 #include "insns/floor_w_fmt.h"
380 }
381 break;
382 case 24:
383 {
384 #include "insns/mfc1.h"
385 }
386 break;
387 case 25:
388 {
389 #include "insns/dmfc1.h"
390 }
391 break;
392 case 26:
393 {
394 #include "insns/cfc1.h"
395 }
396 break;
397 case 27:
398 {
399 #include "insns/mfhc1.h"
400 }
401 break;
402 case 28:
403 {
404 #include "insns/mtc1.h"
405 }
406 break;
407 case 29:
408 {
409 #include "insns/dmtc1.h"
410 }
411 break;
412 case 30:
413 {
414 #include "insns/ctc1.h"
415 }
416 break;
417 case 31:
418 {
419 #include "insns/mthc1.h"
420 }
421 break;
422 case 32:
423 {
424 #include "insns/cvt_s_fmt.h"
425 }
426 break;
427 case 33:
428 {
429 #include "insns/cvt_d_fmt.h"
430 }
431 break;
432 case 36:
433 {
434 #include "insns/cvt_w_fmt.h"
435 }
436 break;
437 case 37:
438 {
439 #include "insns/cvt_l_fmt.h"
440 }
441 break;
442 case 48:
443 {
444 #include "insns/c_f_fmt.h"
445 }
446 break;
447 case 49:
448 {
449 #include "insns/c_un_fmt.h"
450 }
451 break;
452 case 50:
453 {
454 #include "insns/c_eq_fmt.h"
455 }
456 break;
457 case 51:
458 {
459 #include "insns/c_ueq_fmt.h"
460 }
461 break;
462 case 52:
463 {
464 #include "insns/c_olt_fmt.h"
465 }
466 break;
467 case 53:
468 {
469 #include "insns/c_ult_fmt.h"
470 }
471 break;
472 case 54:
473 {
474 #include "insns/c_ole_fmt.h"
475 }
476 break;
477 case 55:
478 {
479 #include "insns/c_ule_fmt.h"
480 }
481 break;
482 case 56:
483 {
484 #include "insns/c_sf_fmt.h"
485 }
486 break;
487 case 57:
488 {
489 #include "insns/c_ngle_fmt.h"
490 }
491 break;
492 case 58:
493 {
494 #include "insns/c_seq_fmt.h"
495 }
496 break;
497 case 59:
498 {
499 #include "insns/c_ngl_fmt.h"
500 }
501 break;
502 case 60:
503 {
504 #include "insns/c_lt_fmt.h"
505 }
506 break;
507 case 61:
508 {
509 #include "insns/c_nge_fmt.h"
510 }
511 break;
512 case 62:
513 {
514 #include "insns/c_le_fmt.h"
515 }
516 break;
517 case 63:
518 {
519 #include "insns/c_ngt_fmt.h"
520 }
521 break;
522 default:
523 {
524 #include "insns/unimp.h"
525 }
526 break;
527 }
528 }
529 break;
530 case 20:
531 {
532 #include "insns/blt.h"
533 }
534 break;
535 case 21:
536 {
537 #include "insns/bltu.h"
538 }
539 break;
540 case 22:
541 {
542 #include "insns/ble.h"
543 }
544 break;
545 case 23:
546 {
547 #include "insns/bleu.h"
548 }
549 break;
550 case 24:
551 {
552 #include "insns/daddi.h"
553 }
554 break;
555 case 32:
556 {
557 #include "insns/lb.h"
558 }
559 break;
560 case 33:
561 {
562 #include "insns/lh.h"
563 }
564 break;
565 case 35:
566 {
567 #include "insns/lw.h"
568 }
569 break;
570 case 36:
571 {
572 #include "insns/lbu.h"
573 }
574 break;
575 case 37:
576 {
577 #include "insns/lhu.h"
578 }
579 break;
580 case 39:
581 {
582 #include "insns/lwu.h"
583 }
584 break;
585 case 40:
586 {
587 #include "insns/sb.h"
588 }
589 break;
590 case 41:
591 {
592 #include "insns/sh.h"
593 }
594 break;
595 case 43:
596 {
597 #include "insns/sw.h"
598 }
599 break;
600 case 49:
601 {
602 #include "insns/l_s.h"
603 }
604 break;
605 case 53:
606 {
607 #include "insns/l_d.h"
608 }
609 break;
610 case 55:
611 {
612 #include "insns/ld.h"
613 }
614 break;
615 case 57:
616 {
617 #include "insns/s_s.h"
618 }
619 break;
620 case 61:
621 {
622 #include "insns/s_d.h"
623 }
624 break;
625 case 63:
626 {
627 #include "insns/sd.h"
628 }
629 break;
630 default:
631 {
632 #include "insns/unimp.h"
633 }
634 break;
635 }