Commit | Line | Data |
---|---|---|
f02effa0 | 1 | #ifndef lint |
2222b6d9 KB |
2 | static char optab_sccsid[] = "@(#)optab.c 4.5 (Berkeley) %G%"; |
3 | #endif | |
645a3a24 | 4 | |
2222b6d9 KB |
5 | /* |
6 | * adb - (read-only) tables for VAX instruction decoding | |
7 | */ | |
8 | ||
9 | #define ADB | |
f02effa0 | 10 | #undef INSTTAB |
645a3a24 | 11 | |
2222b6d9 KB |
12 | /* |
13 | * Pick up definitions for insttab from the assembler, and also | |
14 | * the arrays ty_NORELOC and ty_nbyte (and soon ty_float); | |
15 | * then, make insttab. | |
16 | */ | |
17 | #include <sys/types.h> | |
f02effa0 | 18 | #include "instrs.h" |
2222b6d9 | 19 | #include "assizetab.c" |
645a3a24 | 20 | |
f02effa0 RH |
21 | struct insttab insttab[] = { |
22 | #include "instrs.adb" | |
2222b6d9 | 23 | 0 |
645a3a24 BJ |
24 | }; |
25 | ||
2222b6d9 KB |
26 | /* |
27 | * Register names, and floating point immediate constants. | |
28 | * The f.p. constants can be derived from the expression | |
29 | * | |
30 | * fp = (.5 + (n & 7) / 16.0) x (2 ^ (n >> 3)) | |
31 | * | |
32 | * or, alternatively, | |
33 | * | |
34 | * union { int i; float f; } u; u.i = (n << 3) | (1 << 14); u.f | |
35 | * | |
36 | * but there are only 64 of them, and this is simpler. | |
37 | */ | |
38 | char *regname[16] = { | |
39 | "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", | |
40 | "r8", "r9", "r10","r11","ap", "fp", "sp", "pc" | |
645a3a24 | 41 | }; |
2222b6d9 KB |
42 | char *fltimm[64] = { |
43 | "0.5", "0.5625", "0.625", "0.6875", "0.75", "0.8125", "0.875", "0.9375", | |
44 | "1.0", "1.125", "1.25", "1.375", "1.5", "1.625", "1.75", "1.875", | |
45 | "2.0", "2.25", "2.5", "2.75", "3.0", "3.25", "3.5", "3.75", | |
46 | "4.0", "4.5", "5.0", "5.5", "6.0", "6.5", "7.0", "7.5", | |
47 | "8.0", "9.0", "10.0", "11.0", "12.0", "13.0", "14.0", "15.0", | |
48 | "16.0", "18.0", "20.0", "22.0", "24.0", "26.0", "28.0", "30.0", | |
49 | "32.0", "36.0", "40.0", "44.0", "48.0", "52.0", "56.0", "60.0", | |
50 | "64.0", "72.0", "80.0", "88.0", "96.0", "104.0", "112.0", "120.0" | |
f02effa0 | 51 | }; |