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

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

unix.superglobalmegacorp.com

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