|
|
1.1 ! root 1: #ifndef lint ! 2: static char optab_sccsid[] = "@(#)optab.c 4.5 (Berkeley) 1/16/89"; ! 3: #endif ! 4: ! 5: /* ! 6: * adb - (read-only) tables for VAX instruction decoding ! 7: */ ! 8: ! 9: #define ADB ! 10: #undef INSTTAB ! 11: ! 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> ! 18: #include "instrs.h" ! 19: #include "assizetab.c" ! 20: ! 21: struct insttab insttab[] = { ! 22: #include "instrs.adb" ! 23: 0 ! 24: }; ! 25: ! 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" ! 41: }; ! 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" ! 51: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.