|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.