|
|
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: }; ! 23: int lgreflen[] = { /* {LEN*+PCREL} ==> number of bytes */ ! 24: -1, -1, ! 25: 0, 0, /* LEN1, LEN1 + PCREL */ ! 26: 1, 1, /* LEN2, LEN2 + PCREL */ ! 27: 2, 2, /* LEN4, LEN2 + PCREL */ ! 28: 3, 3 /* LEN8, LEN2 + PCREL */ ! 29: }; ! 30: ! 31: /* ! 32: * Convert sizes to loader reference types and type flags ! 33: */ ! 34: /*0 1 2 3 4 5 6 7 8*/ ! 35: /* ! 36: * Convert {1,2,4,8} into {LEN1, LEN2, LEN4, LEN8} ! 37: */ ! 38: int len124[] = { ! 39: 0, LEN1, /* 0 */ ! 40: LEN2, 0, /* 2 */ ! 41: LEN4, 0, /* 4 */ ! 42: 0, 0, /* 6 */ ! 43: LEN8, 0 /* 8 */ ! 44: }; ! 45: /* ! 46: * Convert {1,2,4,8} into {bits to construct operands} ! 47: */ ! 48: char mod124[] = { ! 49: 0, 0x00, /* 0 */ ! 50: 0x20, 0, /* 2 */ ! 51: 0x40, 0, /* 4 */ ! 52: 0, 0, /* 6 */ ! 53: 0, 0 /* 8 */ ! 54: }; ! 55: /* ! 56: * {1,2,4,8} into {TYPB, TYPW, TYPL, TYPQ} ! 57: */ ! 58: int type_124[] = { ! 59: 0, TYPB, /* 0 */ ! 60: TYPW, 0, /* 2 */ ! 61: TYPL, 0, /* 4 */ ! 62: 0, 0, /* 6 */ ! 63: TYPQ, 0 /* 8 */ ! 64: }; ! 65: #endif AS ! 66: /* ! 67: * Convert TYP[BWLQOFDGH] into {1 if relocation not OK} ! 68: */ ! 69: int ty_NORELOC[] = { ! 70: 0, /* TYPB */ ! 71: 0, /* TYPW */ ! 72: 0, /* TYPL */ ! 73: 1, /* TYPQ */ ! 74: 1, /* TYPF */ ! 75: 1, /* TYPD */ ! 76: 1 /* TYPNONE */ ! 77: }; ! 78: #ifndef ADB ! 79: /* ! 80: * Convert TYP[BWLQOFDGH] into {1 if a floating point number} ! 81: */ ! 82: int ty_float[] = { ! 83: 0, /* TYPB */ ! 84: 0, /* TYPW */ ! 85: 0, /* TYPL */ ! 86: 0, /* TYPQ */ ! 87: 1, /* TYPF */ ! 88: 1, /* TYPD */ ! 89: 0 /* TYPNONE */ ! 90: }; ! 91: #endif ! 92: #ifdef AS ! 93: /* ! 94: * Convert TYP[BWLQOFDGH] into {LEN1 ... LEN16} ! 95: */ ! 96: int ty_LEN[] = { ! 97: LEN1, /* TYPB */ ! 98: LEN2, /* TYPW */ ! 99: LEN4, /* TYPL */ ! 100: LEN8, /* TYPQ */ ! 101: LEN4, /* TYPF */ ! 102: LEN8, /* TYPD */ ! 103: 0 /* TYPNONE */ ! 104: }; ! 105: #endif AS ! 106: /* ! 107: * Convert TYP[BWLQFD] into {1 ... 8} ! 108: */ ! 109: int ty_nbyte[] = { ! 110: 1, /* TYPB */ ! 111: 2, /* TYPW */ ! 112: 4, /* TYPL */ ! 113: 8, /* TYPQ */ ! 114: 4, /* TYPF */ ! 115: 8, /* TYPD */ ! 116: 0 /* TYPNONE */ ! 117: }; ! 118: #ifndef ADB ! 119: /* ! 120: * Convert TYP[BWLQFD] into lg{1 ... 8} ! 121: */ ! 122: int ty_nlg[] = { ! 123: 0, /* TYPB */ ! 124: 1, /* TYPW */ ! 125: 2, /* TYPL */ ! 126: 3, /* TYPQ */ ! 127: 2, /* TYPF */ ! 128: 3, /* TYPD */ ! 129: -1 /* TYPNONE */ ! 130: }; ! 131: /* ! 132: * Convert TYP[BWLQFD] into strings ! 133: */ ! 134: char *ty_string[] = { ! 135: "byte", /* TYPB */ ! 136: "word", /* TYPW */ ! 137: "long", /* TYPL */ ! 138: "quad", /* TYPQ */ ! 139: "f_float", /* TYPF */ ! 140: "d_float", /* TYPD */ ! 141: "??snark??" /* TYPNONE */ ! 142: }; ! 143: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.