|
|
1.1 ! root 1: static char sccsid[] = "@(#)optab.c 4.1 10/9/80"; ! 2: #include "defs.h" ! 3: ! 4: /* ! 5: * Instruction printing routines. ! 6: * MACHINE DEPENDENT ! 7: * ! 8: */ ! 9: ! 10: /* ! 11: * Argument access types ! 12: */ ! 13: #define ACCA (8<<3) /* address only */ ! 14: #define ACCR (1<<3) /* read */ ! 15: #define ACCW (2<<3) /* write */ ! 16: #define ACCM (3<<3) /* modify */ ! 17: #define ACCB (4<<3) /* branch displacement */ ! 18: #define ACCI (5<<3) /* XFC code */ ! 19: ! 20: /* ! 21: * Argument data types ! 22: */ ! 23: #define TYPB 0 /* byte */ ! 24: #define TYPW 1 /* word */ ! 25: #define TYPL 2 /* long */ ! 26: #define TYPQ 3 /* quad */ ! 27: #define TYPF 4 /* floating */ ! 28: #define TYPD 5 /* double floating */ ! 29: ! 30: ! 31: TYPE struct optab *OPTAB; ! 32: struct optab { ! 33: char *iname; ! 34: char val; ! 35: char nargs; ! 36: char argtype[6]; ! 37: } optab[] = { ! 38: #define OP(a,b,c,d,e,f,g,h,i) {a,b,c,d,e,f,g,h,i} ! 39: #include "instrs" ! 40: 0}; ! 41: ! 42: #define SYSTAB struct systab ! 43: SYSTAB { ! 44: int argc; ! 45: char *sname; ! 46: } systab[] = { ! 47: 1, "indir", ! 48: 0, "exit", ! 49: 0, "fork", ! 50: 2, "read", ! 51: 2, "write", ! 52: 2, "open", ! 53: 0, "close", ! 54: 0, "wait", ! 55: 2, "creat", ! 56: 2, "link", ! 57: 1, "unlink", ! 58: 2, "exec", ! 59: 1, "chdir", ! 60: 0, "time", ! 61: 3, "mknod", ! 62: 2, "chmod", ! 63: 2, "chown", ! 64: 1, "break", ! 65: 2, "stat", ! 66: 2, "seek", ! 67: 0, "getpid", ! 68: 3, "mount", ! 69: 1, "umount", ! 70: 0, "setuid", ! 71: 0, "getuid", ! 72: 0, "stime", ! 73: 3, "ptrace", ! 74: 0, "alarm", ! 75: 1, "fstat", ! 76: 0, "pause", ! 77: 1, "30", ! 78: 1, "stty", ! 79: 1, "gtty", ! 80: 0, "access", ! 81: 0, "nice", ! 82: 0, "sleep", ! 83: 0, "sync", ! 84: 1, "kill", ! 85: 0, "csw", ! 86: 0, "setpgrp", ! 87: 0, "tell", ! 88: 0, "dup", ! 89: 0, "pipe", ! 90: 1, "times", ! 91: 4, "profil", ! 92: 0, "tiu", ! 93: 0, "setgid", ! 94: 0, "getgid", ! 95: 2, "signal", ! 96: 0, "49", ! 97: 0, "50", ! 98: 0, "51", ! 99: 0, "52", ! 100: 0, "53", ! 101: 0, "54", ! 102: 0, "55", ! 103: 0, "56", ! 104: 0, "57", ! 105: 0, "58", ! 106: 0, "59", ! 107: 0, "60", ! 108: 0, "61", ! 109: 0, "62", ! 110: 0, "63", ! 111: }; ! 112: ! 113: STRING regname[] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", ! 114: "r8", "r9", "r10","r11","ap", "fp", "sp", "pc"}; ! 115: STRING fltimm[] = { ! 116: "0.5", "0.5625", "0.625", "0.6875", "0.75", "0.8125", "0.875", "0.9375", ! 117: "1.0", "1.125", "1.25", "1.375", "1.5", "1.625", "1.75", "1.875", ! 118: "2.0", "2.25", "2.5", "2.75", "3.0", "3.25", "3.5", "3.75", ! 119: "4.0", "4.5", "5.0", "5.5", "6.0", "6.5", "7.0", "7.5", ! 120: "8.0", "9.0", "10.0", "11.0", "12.0", "13.0", "14.0", "15.0", ! 121: "16.0", "18.0", "20.0", "22.0", "24.0", "26.0", "28.0", "30.0", ! 122: "32.0", "36.0", "40.0", "44.0", "48.0", "52.0", "56.0", "60.0", ! 123: "64.0", "72.0", "80.0", "88.0", "96.0", "104.0", "112.0", "120.0" ! 124: }; ! 125: ! 126: char *fmtr = {"%r"}; ! 127: char *fmtR = {"%R"}; ! 128: ! 129: REGLIST reglist [] = { ! 130: "p1lr", P1LR, ! 131: "p1br",P1BR, ! 132: "p0lr", P0LR, ! 133: "p0br",P0BR, ! 134: "ksp",KSP, ! 135: "esp",ESP, ! 136: "ssp",SSP, ! 137: "psl", PSL, ! 138: "pc", PC, ! 139: "usp",USP, ! 140: "fp", FP, ! 141: "ap", AP, ! 142: "r11", R11, ! 143: "r10", R10, ! 144: "r9", R9, ! 145: "r8", R8, ! 146: "r7", R7, ! 147: "r6", R6, ! 148: "r5", R5, ! 149: "r4", R4, ! 150: "r3", R3, ! 151: "r2", R2, ! 152: "r1", R1, ! 153: "r0", R0, ! 154: }; ! 155:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.