|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982 Regents of the University of California ! 3: */ ! 4: #ifndef lint ! 5: static char sccsid[] = "@(#)assizetab.c 4.4 11/11/82"; ! 6: #endif not lint ! 7: ! 8: #ifdef AS ! 9: #include <stdio.h> ! 10: #include "as.h" ! 11: #include "assyms.h" ! 12: ! 13: /* ! 14: * Convert loader reference types (plus PCREL) to bytes and lg bytes ! 15: */ ! 16: int reflen[] = { /* {LEN*+PCREL} ==> number of bytes */ ! 17: 0, 0, ! 18: 1, 1, /* LEN1, LEN1 + PCREL */ ! 19: 2, 2, /* LEN2, LEN2 + PCREL */ ! 20: 4, 4, /* LEN4, LEN2 + PCREL */ ! 21: 8, 8, /* LEN8, LEN2 + PCREL */ ! 22: 16, 16 /* LEN16, LEN16 + PCREL */ ! 23: }; ! 24: int lgreflen[] = { /* {LEN*+PCREL} ==> number of bytes */ ! 25: -1, -1, ! 26: 0, 0, /* LEN1, LEN1 + PCREL */ ! 27: 1, 1, /* LEN2, LEN2 + PCREL */ ! 28: 2, 2, /* LEN4, LEN2 + PCREL */ ! 29: 3, 3, /* LEN8, LEN2 + PCREL */ ! 30: 4, 4 /* LEN16, LEN16 + PCREL */ ! 31: }; ! 32: ! 33: /* ! 34: * Convert sizes to loader reference types and type flags ! 35: */ ! 36: /*0 1 2 3 4 5 6 7 8*/ ! 37: /* ! 38: * Convert {1,2,4,8} into {LEN1, LEN2, LEN4, LEN8} ! 39: */ ! 40: int len124[] = { ! 41: 0, LEN1, /* 0 */ ! 42: LEN2, 0, /* 2 */ ! 43: LEN4, 0, /* 4 */ ! 44: 0, 0, /* 6 */ ! 45: LEN8, 0, /* 8 */ ! 46: 0, 0, /* 10 */ ! 47: 0, 0, /* 12 */ ! 48: 0, 0, /* 14 */ ! 49: LEN16, 0 /* 16 */ ! 50: }; ! 51: /* ! 52: * Convert {1,2,4,8} into {bits to construct operands} ! 53: */ ! 54: char mod124[] = { ! 55: 0, 0x00, /* 0 */ ! 56: 0x20, 0, /* 2 */ ! 57: 0x40, 0, /* 4 */ ! 58: 0, 0, /* 6 */ ! 59: 0, 0, /* 8 */ ! 60: 0, 0, /* 10 */ ! 61: 0, 0, /* 12 */ ! 62: 0, 0, /* 14 */ ! 63: 0, 0 /* 16 */ ! 64: }; ! 65: /* ! 66: * {1,2,4,8} into {TYPB, TYPW, TYPL, TYPQ} ! 67: */ ! 68: int type_124[] = { ! 69: 0, TYPB, /* 0 */ ! 70: TYPW, 0, /* 2 */ ! 71: TYPL, 0, /* 4 */ ! 72: 0, 0, /* 6 */ ! 73: TYPQ, 0, /* 8 */ ! 74: 0, 0, /* 10 */ ! 75: 0, 0, /* 12 */ ! 76: 0, 0, /* 14 */ ! 77: TYPO, 0 /* 16 */ ! 78: }; ! 79: #endif AS ! 80: /* ! 81: * Convert TYP[BWLQOFDGH] into {1 if relocation not OK} ! 82: */ ! 83: int ty_NORELOC[] = { ! 84: 0, /* TYPB */ ! 85: 0, /* TYPW */ ! 86: 0, /* TYPL */ ! 87: 1, /* TYPQ */ ! 88: 1, /* TYPO */ ! 89: 1, /* TYPF */ ! 90: 1, /* TYPD */ ! 91: 1, /* TYPG */ ! 92: 1, /* TYPH */ ! 93: 1 /* TYPNONE */ ! 94: }; ! 95: #ifndef ADB ! 96: /* ! 97: * Convert TYP[BWLQOFDGH] into {1 if a floating point number} ! 98: */ ! 99: int ty_float[] = { ! 100: 0, /* TYPB */ ! 101: 0, /* TYPW */ ! 102: 0, /* TYPL */ ! 103: 0, /* TYPQ */ ! 104: 0, /* TYPO */ ! 105: 1, /* TYPF */ ! 106: 1, /* TYPD */ ! 107: 1, /* TYPG */ ! 108: 1, /* TYPH */ ! 109: 0 /* TYPNONE */ ! 110: }; ! 111: #endif ! 112: #ifdef AS ! 113: /* ! 114: * Convert TYP[BWLQOFDGH] into {LEN1 ... LEN16} ! 115: */ ! 116: int ty_LEN[] = { ! 117: LEN1, /* TYPB */ ! 118: LEN2, /* TYPW */ ! 119: LEN4, /* TYPL */ ! 120: LEN8, /* TYPQ */ ! 121: LEN16, /* TYPO */ ! 122: LEN4, /* TYPF */ ! 123: LEN8, /* TYPD */ ! 124: LEN8, /* TYPG */ ! 125: LEN16, /* TYPH */ ! 126: 0 /* TYPNONE */ ! 127: }; ! 128: #endif AS ! 129: /* ! 130: * Convert TYP[BWLQOFDGH] into {1 ... 16} ! 131: */ ! 132: int ty_nbyte[] = { ! 133: 1, /* TYPB */ ! 134: 2, /* TYPW */ ! 135: 4, /* TYPL */ ! 136: 8, /* TYPQ */ ! 137: 16, /* TYPO */ ! 138: 4, /* TYPF */ ! 139: 8, /* TYPD */ ! 140: 8, /* TYPG */ ! 141: 16, /* TYPH */ ! 142: 0 /* TYPNONE */ ! 143: }; ! 144: #ifndef ADB ! 145: /* ! 146: * Convert TYP[BWLQOFDGH] into lg{1 ... 16} ! 147: */ ! 148: int ty_nlg[] = { ! 149: 0, /* TYPB */ ! 150: 1, /* TYPW */ ! 151: 2, /* TYPL */ ! 152: 3, /* TYPQ */ ! 153: 4, /* TYPO */ ! 154: 2, /* TYPF */ ! 155: 3, /* TYPD */ ! 156: 3, /* TYPG */ ! 157: 4, /* TYPH */ ! 158: -1 /* TYPNONE */ ! 159: }; ! 160: /* ! 161: * Convert TYP[BWLQOFDGH] into strings ! 162: */ ! 163: char *ty_string[] = { ! 164: "byte", /* TYPB */ ! 165: "word", /* TYPW */ ! 166: "long", /* TYPL */ ! 167: "quad", /* TYPQ */ ! 168: "octa", /* TYPO */ ! 169: "f_float", /* TYPF */ ! 170: "d_float", /* TYPD */ ! 171: "g_float", /* TYPG */ ! 172: "h_float", /* TYPH */ ! 173: "unpackd", /* TYPUNPACKED */ ! 174: "??snark??" /* TYPNONE */ ! 175: }; ! 176: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.