Annotation of 42BSD/bin/as/floattab.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[] = "@(#)floattab.c 4.3 2/14/82";
        !             6: #endif not lint
        !             7: 
        !             8: #include <stdio.h>
        !             9: #include "as.h"
        !            10: #define                N       NOTAKE
        !            11: 
        !            12: struct ty_bigdesc ty_bigdesc[] = {
        !            13: {      /* TYPB */
        !            14:        { 15, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N },
        !            15:        {  N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, 0 },
        !            16:        { N, N },
        !            17:        { N, N },
        !            18:        0,      /* mantissa lshift */
        !            19:        0,      /* exponent rshift */
        !            20:        8,      /* mantissa sig bits */
        !            21:        0,      /* exponent sig bits */
        !            22:        8,      /* exponent excess */
        !            23: },
        !            24: {      /* TYPW */
        !            25:        { 14, 15, N, N, N, N, N, N, N, N, N, N, N, N, N, N },
        !            26:        { N, N, N, N, N, N, N, N, N, N, N, N, N, N, 0, 1 },
        !            27:        { N, N},
        !            28:        { N, N},
        !            29:        0,      /* mantissa lshift */
        !            30:        0,      /* exponent rshift */
        !            31:        16,     /* mantissa sig bits */
        !            32:        0,      /* exponent sig bits */
        !            33:        16,     /* exponent excess */
        !            34: },
        !            35: {      /* TYPL */
        !            36:        { 12, 13, 14, 15, N, N, N, N, N, N, N, N, N, N, N, N },
        !            37:        { N, N, N, N, N, N, N, N, N, N, N, N, 0, 1, 2, 3 },
        !            38:        { N, N },
        !            39:        { N, N },
        !            40:        0,      /* mantissa lshift */
        !            41:        0,      /* exponent rshift */
        !            42:        32,     /* mantissa sig bits */
        !            43:        0,      /* exponent sig bits */
        !            44:        32,     /* exponent excess */
        !            45: },
        !            46: {      /* TYPQ */
        !            47:        { 8, 9, 10, 11, 12, 13, 14, 15, N, N, N, N, N, N, N, N },
        !            48:        { N, N, N, N, N, N, N, N, 0, 1, 2, 3, 4, 5, 6, 7 },
        !            49:        { N, N },
        !            50:        { N, N },
        !            51:        0,      /* mantissa lshift */
        !            52:        0,      /* exponent rshift */
        !            53:        64,     /* mantissa sig bits */
        !            54:        0,      /* exponent sig bits */
        !            55:        64,     /* exponent excess */
        !            56: },
        !            57: {      /* TYPO */
        !            58:        { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
        !            59:        { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
        !            60:        { N, N },
        !            61:        { N, N },
        !            62:        0,      /* mantissa lshift */
        !            63:        0,      /* exponent rshift */
        !            64:        128,    /* mantissa sig bits */
        !            65:        0,      /* exponent sig bits */
        !            66:        128,    /* exponent excess */
        !            67: },
        !            68: {      /* TYPF */
        !            69:        { 15, N, 13, 14, N, N, N, N, N, N, N, N, N, N, N, N },
        !            70:        { N, N, N, N, N, N, N, N, N, N, N, N, N, 2, 3, 0 },
        !            71:        { 0, 1 },
        !            72:        { 0, 1 },
        !            73:        1,      /* mantissa lshift */
        !            74:        7,      /* exponent rshift */
        !            75:        24,     /* mantissa sig bits */
        !            76:        8,      /* exponent sig bits */
        !            77:        128     /* exponent excess */
        !            78: },
        !            79: {      /* TYPD */
        !            80:        { 15, N, 13, 14, 11, 12, 9, 10, N, N, N, N, N, N, N, N },
        !            81:        { N, N, N, N, N, N, N, N, N, 6, 7, 4, 5, 2, 3, 0 },
        !            82:        { 0, 1 },
        !            83:        { 0, 1 },
        !            84:        1,      /* mantissa lshift */
        !            85:        7,      /* exponent rshift */
        !            86:        56,     /* mantissa sig bits */
        !            87:        8,      /* exponent sig bits */
        !            88:        128     /* exponent excess */
        !            89: },
        !            90: {      /* TYPG */
        !            91:        { 15, N, 13, 14, 11, 12, 9, 10, N, N, N, N, N, N, N, N },
        !            92:        { N, N, N, N, N, N, N, N, N, 6, 7, 4, 5, 2, 3, 0 },
        !            93:        { 0, 1 },
        !            94:        { 0, 1 },
        !            95:        4,      /* mantissa lshift */
        !            96:        4,      /* exponent rshift */
        !            97:        53,     /* mantissa sig bits */
        !            98:        11,     /* exponent sig bits */
        !            99:        1024    /* exponent excess */
        !           100: },
        !           101: {      /* TYPH */
        !           102:        { N, N, 14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3 },
        !           103:        { N, N, 14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3 },
        !           104:        { 0, 1 },
        !           105:        { 0, 1 },
        !           106:        0,      /* mantissa lshift */
        !           107:        0,      /* exponent rshift */
        !           108:        113,    /* mantissa sig bits */
        !           109:        15,     /* exponent sig bits */
        !           110:        16384   /* exponent excess */
        !           111: },
        !           112: {0}            /* TYPNONE */
        !           113: };
        !           114: 
        !           115: cfloattab()
        !           116: {
        !           117:        reg     struct ty_bigdesc       *p;
        !           118:        reg     int     i;
        !           119:        reg     int     j;
        !           120:        reg     int     k;
        !           121:                extern  int     ty_float[];
        !           122: 
        !           123:        for (i = 0; i < TYPNONE - 1; i++){
        !           124:                p = &ty_bigdesc[i];
        !           125:                for (j = 0; j < 16; j++){
        !           126:                        if (((char)p->b_upmmap[j]) != NOTAKE){
        !           127:                                k = p->b_pmmap[p->b_upmmap[j]];
        !           128:                                if (j != k)
        !           129:                                        printf("%s:p[up[%d]] == %d\n",
        !           130:                                                ty_string[i],j,k);
        !           131:                        }
        !           132: 
        !           133:                        if (((char)p->b_pmmap[j]) != NOTAKE){
        !           134:                                k = p->b_upmmap[p->b_pmmap[j]];
        !           135:                                if (j != k)
        !           136:                                        printf("%s:up[p[%d]] == %d\n",
        !           137:                                                ty_string[i],j,k);
        !           138:                        }
        !           139:                }
        !           140:                if (!ty_float[i])
        !           141:                        continue;
        !           142:                k = (p->b_msigbits - 1) + p->b_mlshift;
        !           143:                if (k % 8)
        !           144:                        printf("sigbits: %d, lshift: %d, excess: %d\n",
        !           145:                                p->b_msigbits, p->b_mlshift, k % 8);
        !           146:                if ((15 - (k / 8)) < 0)
        !           147:                        printf("lsbyte <= 0\n");
        !           148:                if ( (8 - (p->b_mlshift + 2)) <= 0)
        !           149:                        printf("Shifted byte 15 into byte 14");
        !           150:                if ( 1 << (p->b_esigbits - 1) != p->b_eexcess)
        !           151:                        printf("sigbits == %d, excess = %d\n",
        !           152:                                p->b_esigbits, p->b_eexcess);
        !           153:        }
        !           154: }

unix.superglobalmegacorp.com

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