1: int opdope[] { 2: 000000, /* EOF */ 3: 000000, /* ; */ 4: 000000, /* { */ 5: 000000, /* } */ 6: 036000, /* [ */ 7: 002000, /* ] */ 8: 036000, /* ( */ 9: 002000, /* ) */ 10: 014201, /* : */ 11: 007001, /* , */ 12: 000000, /* field selection */ 13: 000000, /* 11 */ 14: 000000, /* 12 */ 15: 000000, /* 13 */ 16: 000000, /* 14 */ 17: 000000, /* 15 */ 18: 000000, /* 16 */ 19: 000000, /* 17 */ 20: 000000, /* 18 */ 21: 000000, /* 19 */ 22: 000400, /* name */ 23: 000400, /* short constant */ 24: 000400, /* string */ 25: 000400, /* float */ 26: 000400, /* double */ 27: 000000, /* 25 */ 28: 000000, /* 26 */ 29: 000400, /* autoi, *r++ */ 30: 000400, /* autod, *--r */ 31: 000000, /* 29 */ 32: 034203, /* ++pre */ 33: 034203, /* --pre */ 34: 034203, /* ++post */ 35: 034203, /* --post */ 36: 034220, /* !un */ 37: 034202, /* &un */ 38: 034220, /* *un */ 39: 034200, /* -un */ 40: 034220, /* ~un */ 41: 036001, /* . (structure reference) */ 42: 030101, /* + */ 43: 030001, /* - */ 44: 032101, /* * */ 45: 032001, /* / */ 46: 032001, /* % */ 47: 026061, /* >> */ 48: 026061, /* << */ 49: 020161, /* & */ 50: 016161, /* | */ 51: 016161, /* ^ */ 52: 036001, /* -> */ 53: 001000, /* int -> double */ 54: 001000, /* double -> int */ 55: 000001, /* && */ 56: 000001, /* || */ 57: 030001, /* &~ */ 58: 001000, /* double -> long */ 59: 001000, /* long -> double */ 60: 001000, /* integer -> long */ 61: 001000, /* long -> integer */ 62: 022005, /* == */ 63: 022005, /* != */ 64: 024005, /* <= */ 65: 024005, /* < */ 66: 024005, /* >= */ 67: 024005, /* > */ 68: 024005, /* <p */ 69: 024005, /* <=p */ 70: 024005, /* >p */ 71: 024005, /* >=p */ 72: 012213, /* =+ */ 73: 012213, /* =- */ 74: 012213, /* =* */ 75: 012213, /* =/ */ 76: 012213, /* =% */ 77: 012253, /* =>> */ 78: 012253, /* =<< */ 79: 012253, /* =& */ 80: 012253, /* =| */ 81: 012253, /* =^ */ 82: 012213, /* = */ 83: 030001, /* & for tests */ 84: 032101, /* * (long) */ 85: 032001, /* / (long) */ 86: 032001, /* % (long) */ 87: 012253, /* =& ~ */ 88: 012213, /* =* (long) */ 89: 012213, /* / (long) */ 90: 012213, /* % (long) */ 91: 000000, /* 89 */ 92: 014201, /* ? */ 93: 026061, /* long << */ 94: 012253, /* long =<< */ 95: 000000, /* 93 */ 96: 000000, /* 94 */ 97: 000000, /* 95 */ 98: 000000, /* 96 */ 99: 000000, /* 97 */ 100: 000000, /* 98 */ 101: 000000, /* 99 */ 102: 036001, /* call */ 103: 036000, /* mcall */ 104: 000000, /* goto */ 105: 000000, /* jump cond */ 106: 000000, /* branch cond */ 107: 000400, /* set nregs */ 108: 000000, /* 106 */ 109: 000000, /* 107 */ 110: 000000, /* 108 */ 111: 000000, /* 109 */ 112: 000000 /* force r0 */ 113: }; 114: 115: char *opntab[] { 116: 0, 117: 0, 118: 0, 119: 0, 120: 0, 121: 0, 122: 0, 123: 0, 124: ":", 125: ",", 126: "field select", 127: 0, 128: 0, 129: 0, 130: 0, 131: 0, 132: 0, 133: 0, 134: 0, 135: 0, 136: "name", 137: "short constant", 138: "string", 139: "float", 140: "double", 141: 0, 142: 0, 143: "*r++", 144: "*--r", 145: 0, 146: "++pre", 147: "--pre", 148: "++post", 149: "--post", 150: "!un", 151: "&", 152: "*", 153: "-", 154: "~", 155: ".", 156: "+", 157: "-", 158: "*", 159: "/", 160: "%", 161: ">>", 162: "<<", 163: "&", 164: "|", 165: "^", 166: "->", 167: "int->double", 168: "double->int", 169: "&&", 170: "||", 171: "&~", 172: "double->long", 173: "long->double", 174: "integer->long", 175: "long->integer", 176: "==", 177: "!=", 178: "<=", 179: "<", 180: ">=", 181: ">", 182: "<p", 183: "<=p", 184: ">p", 185: ">=p", 186: "=+", 187: "=-", 188: "=*", 189: "=/", 190: "=%", 191: "=>>", 192: "=<<", 193: "=&", 194: "=|", 195: "=^", 196: "=", 197: "& for tests", 198: "*", 199: "/", 200: "%", 201: "=& ~", 202: "=*", 203: "=/", 204: "=%", 205: 0, 206: "?", 207: "<<", 208: "=<<", 209: 0, 210: 0, 211: 0, 212: 0, 213: 0, 214: "call", 215: "call", 216: "call", 217: 0, 218: "goto", 219: "jump cond", 220: "branch cond", 221: "set nregs", 222: "load value", 223: 0, 224: 0, 225: 0, 226: "force register" 227: };