Annotation of 42BSD/bin/as/floattab.c, revision 1.1.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.