1 #define NSYM 50 2 #define NSNAME 8 3 #define NOPROF (1<<0) 4 #define DUPOK (1<<1) 5 #define NOSPLIT (1<<2) 6 7 enum as 8 { 9 AXXX, 10 AAAA, 11 AAAD, 12 AAAM, 13 AAAS, 14 AADCB, 15 AADCL, 16 AADCW, 17 AADDB, 18 AADDL, 19 AADDW, 20 AADJSP, 21 AANDB, 22 AANDL, 23 AANDW, 24 AARPL, 25 ABOUNDL, 26 ABOUNDW, 27 ABSFL, 28 ABSFW, 29 ABSRL, 30 ABSRW, 31 ABTL, 32 ABTW, 33 ABTCL, 34 ABTCW, 35 ABTRL, 36 ABTRW, 37 ABTSL, 38 ABTSW, 39 ABYTE, 40 ACALL, 41 ACLC, 42 ACLD, 43 ACLI, 44 ACLTS, 45 ACMC, 46 ACMPB, 47 ACMPL, 48 ACMPW, 49 ACMPSB, 50 ACMPSL, 51 ACMPSW, 52 ADAA, 53 ADAS, 54 ADATA, 55 ADECB, 56 ADECL, 57 ADECW, 58 ADIVB, 59 ADIVL, 60 ADIVW, 61 AENTER, 62 AGLOBL, 63 AGOK, 64 AHISTORY, 65 AHLT, 66 AIDIVB, 67 AIDIVL, 68 AIDIVW, 69 AIMULB, 70 AIMULL, 71 AIMULW, 72 AINB, 73 AINL, 74 AINW, 75 AINCB, 76 AINCL, 77 AINCW, 78 AINSB, 79 AINSL, 80 AINSW, 81 AINT, 82 AINTO, 83 AIRETL, 84 AIRETW, 85 AJCC, 86 AJCS, 87 AJCXZ, 88 AJEQ, 89 AJGE, 90 AJGT, 91 AJHI, 92 AJLE, 93 AJLS, 94 AJLT, 95 AJMI, 96 AJMP, 97 AJNE, 98 AJOC, 99 AJOS, 100 AJPC, 101 AJPL, 102 AJPS, 103 ALAHF, 104 ALARL, 105 ALARW, 106 ALEAL, 107 ALEAW, 108 ALEAVEL, 109 ALEAVEW, 110 ALOCK, 111 ALODSB, 112 ALODSL, 113 ALODSW, 114 ALONG, 115 ALOOP, 116 ALOOPEQ, 117 ALOOPNE, 118 ALSLL, 119 ALSLW, 120 AMOVB, 121 AMOVL, 122 AMOVW, 123 AMOVBLSX, 124 AMOVBLZX, 125 AMOVBWSX, 126 AMOVBWZX, 127 AMOVWLSX, 128 AMOVWLZX, 129 AMOVSB, 130 AMOVSL, 131 AMOVSW, 132 AMULB, 133 AMULL, 134 AMULW, 135 ANAME, 136 ANEGB, 137 ANEGL, 138 ANEGW, 139 ANOP, 140 ANOTB, 141 ANOTL, 142 ANOTW, 143 AORB, 144 AORL, 145 AORW, 146 AOUTB, 147 AOUTL, 148 AOUTW, 149 AOUTSB, 150 AOUTSL, 151 AOUTSW, 152 APOPAL, 153 APOPAW, 154 APOPFL, 155 APOPFW, 156 APOPL, 157 APOPW, 158 APUSHAL, 159 APUSHAW, 160 APUSHFL, 161 APUSHFW, 162 APUSHL, 163 APUSHW, 164 ARCLB, 165 ARCLL, 166 ARCLW, 167 ARCRB, 168 ARCRL, 169 ARCRW, 170 AREP, 171 AREPN, 172 ARET, 173 AROLB, 174 AROLL, 175 AROLW, 176 ARORB, 177 ARORL, 178 ARORW, 179 ASAHF, 180 ASALB, 181 ASALL, 182 ASALW, 183 ASARB, 184 ASARL, 185 ASARW, 186 ASBBB, 187 ASBBL, 188 ASBBW, 189 ASCASB, 190 ASCASL, 191 ASCASW, 192 ASETCC, 193 ASETCS, 194 ASETEQ, 195 ASETGE, 196 ASETGT, 197 ASETHI, 198 ASETLE, 199 ASETLS, 200 ASETLT, 201 ASETMI, 202 ASETNE, 203 ASETOC, 204 ASETOS, 205 ASETPC, 206 ASETPL, 207 ASETPS, 208 ACDQ, 209 ACWD, 210 ASHLB, 211 ASHLL, 212 ASHLW, 213 ASHRB, 214 ASHRL, 215 ASHRW, 216 ASTC, 217 ASTD, 218 ASTI, 219 ASTOSB, 220 ASTOSL, 221 ASTOSW, 222 ASUBB, 223 ASUBL, 224 ASUBW, 225 ASYSCALL, 226 ATESTB, 227 ATESTL, 228 ATESTW, 229 ATEXT, 230 AVERR, 231 AVERW, 232 AWAIT, 233 AWORD, 234 AXCHGB, 235 AXCHGL, 236 AXCHGW, 237 AXLAT, 238 AXORB, 239 AXORL, 240 AXORW, 241 242 AFMOVB, 243 AFMOVBP, 244 AFMOVD, 245 AFMOVDP, 246 AFMOVF, 247 AFMOVFP, 248 AFMOVL, 249 AFMOVLP, 250 AFMOVV, 251 AFMOVVP, 252 AFMOVW, 253 AFMOVWP, 254 AFMOVX, 255 AFMOVXP, 256 257 AFCOMB, 258 AFCOMBP, 259 AFCOMD, 260 AFCOMDP, 261 AFCOMDPP, 262 AFCOMF, 263 AFCOMFP, 264 AFCOML, 265 AFCOMLP, 266 AFCOMW, 267 AFCOMWP, 268 AFUCOM, 269 AFUCOMP, 270 AFUCOMPP, 271 272 AFADDDP, 273 AFADDW, 274 AFADDL, 275 AFADDF, 276 AFADDD, 277 278 AFMULDP, 279 AFMULW, 280 AFMULL, 281 AFMULF, 282 AFMULD, 283 284 AFSUBDP, 285 AFSUBW, 286 AFSUBL, 287 AFSUBF, 288 AFSUBD, 289 290 AFSUBRDP, 291 AFSUBRW, 292 AFSUBRL, 293 AFSUBRF, 294 AFSUBRD, 295 296 AFDIVDP, 297 AFDIVW, 298 AFDIVL, 299 AFDIVF, 300 AFDIVD, 301 302 AFDIVRDP, 303 AFDIVRW, 304 AFDIVRL, 305 AFDIVRF, 306 AFDIVRD, 307 308 AFXCHD, 309 AFFREE, 310 311 AFLDCW, 312 AFLDENV, 313 AFRSTOR, 314 AFSAVE, 315 AFSTCW, 316 AFSTENV, 317 AFSTSW, 318 319 AF2XM1, 320 AFABS, 321 AFCHS, 322 AFCLEX, 323 AFCOS, 324 AFDECSTP, 325 AFINCSTP, 326 AFINIT, 327 AFLD1, 328 AFLDL2E, 329 AFLDL2T, 330 AFLDLG2, 331 AFLDLN2, 332 AFLDPI, 333 AFLDZ, 334 AFNOP, 335 AFPATAN, 336 AFPREM, 337 AFPREM1, 338 AFPTAN, 339 AFRNDINT, 340 AFSCALE, 341 AFSIN, 342 AFSINCOS, 343 AFSQRT, 344 AFTST, 345 AFXAM, 346 AFXTRACT, 347 AFYL2X, 348 AFYL2XP1, 349 350 AEND, 351 352 ADYNT, 353 AINIT, 354 355 ASIGNAME, 356 357 AFCOMI, 358 AFCOMIP, 359 AFUCOMI, 360 AFUCOMIP, 361 ACMPXCHGB, 362 ACMPXCHGL, 363 ACMPXCHGW, 364 365 /* conditional move */ 366 ACMOVLCC, 367 ACMOVLCS, 368 ACMOVLEQ, 369 ACMOVLGE, 370 ACMOVLGT, 371 ACMOVLHI, 372 ACMOVLLE, 373 ACMOVLLS, 374 ACMOVLLT, 375 ACMOVLMI, 376 ACMOVLNE, 377 ACMOVLOC, 378 ACMOVLOS, 379 ACMOVLPC, 380 ACMOVLPL, 381 ACMOVLPS, 382 ACMOVWCC, 383 ACMOVWCS, 384 ACMOVWEQ, 385 ACMOVWGE, 386 ACMOVWGT, 387 ACMOVWHI, 388 ACMOVWLE, 389 ACMOVWLS, 390 ACMOVWLT, 391 ACMOVWMI, 392 ACMOVWNE, 393 ACMOVWOC, 394 ACMOVWOS, 395 ACMOVWPC, 396 ACMOVWPL, 397 ACMOVWPS, 398 399 AFCMOVCC, 400 AFCMOVCS, 401 AFCMOVEQ, 402 AFCMOVHI, 403 AFCMOVLS, 404 AFCMOVNE, 405 AFCMOVNU, 406 AFCMOVUN, 407 408 /* add new operations here. nowhere else. here. */ 409 ALAST 410 }; 411 412 enum 413 { 414 D_AL = 0, 415 D_CL, 416 D_DL, 417 D_BL, 418 419 D_AH = 4, 420 D_CH, 421 D_DH, 422 D_BH, 423 424 D_AX = 8, 425 D_CX, 426 D_DX, 427 D_BX, 428 D_SP, 429 D_BP, 430 D_SI, 431 D_DI, 432 433 D_F0 = 16, 434 D_F7 = D_F0 + 7, 435 436 D_CS = 24, 437 D_SS, 438 D_DS, 439 D_ES, 440 D_FS, 441 D_GS, 442 443 D_GDTR, /* global descriptor table register */ 444 D_IDTR, /* interrupt descriptor table register */ 445 D_LDTR, /* local descriptor table register */ 446 D_MSW, /* machine status word */ 447 D_TASK, /* task register */ 448 449 D_CR = 35, 450 D_DR = 43, 451 D_TR = 51, 452 453 D_NONE = 59, 454 455 D_BRANCH = 60, 456 D_EXTERN = 61, 457 D_STATIC = 62, 458 D_AUTO = 63, 459 D_PARAM = 64, 460 D_CONST = 65, 461 D_FCONST = 66, 462 D_SCONST = 67, 463 D_ADDR = 68, 464 465 D_FILE, 466 D_FILE1, 467 468 D_INDIR, /* additive */ 469 470 D_CONST2 = D_INDIR+D_INDIR, 471 472 D_SIZE, /* 8l internal */ 473 474 T_TYPE = 1<<0, 475 T_INDEX = 1<<1, 476 T_OFFSET = 1<<2, 477 T_FCONST = 1<<3, 478 T_SYM = 1<<4, 479 T_SCONST = 1<<5, 480 T_OFFSET2 = 1<<6, 481 T_GOTYPE = 1<<7, 482 483 REGARG = -1, 484 REGRET = D_AX, 485 FREGRET = D_F0, 486 REGSP = D_SP, 487 REGTMP = D_DI, 488 }; 489 490 /* 491 * this is the ranlib header 492 */ 493 #define SYMDEF "__.SYMDEF" 494 495 /* 496 * this is the simulated IEEE floating point 497 */ 498 typedef struct ieee Ieee; 499 struct ieee 500 { 501 long l; /* contains ls-man 0xffffffff */ 502 long h; /* contains sign 0x80000000 503 exp 0x7ff00000 504 ms-man 0x000fffff */ 505 }; 506