Annotation of 43BSDTahoe/lib/old_compiler/as/as.tahoe/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: };     
        !            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

unix.superglobalmegacorp.com

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