Annotation of 42BSD/bin/as/assizetab.c, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.