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