Linux Audio

Check our new training course

Loading...
v4.17
 
  1/*
  2 * Some debug functions
  3 *
  4 * MIPS floating point support
  5 *
  6 * Copyright (C) 1994-2000 Algorithmics Ltd.
  7 *
  8 *  This program is free software; you can distribute it and/or modify it
  9 *  under the terms of the GNU General Public License (Version 2) as
 10 *  published by the Free Software Foundation.
 11 *
 12 *  This program is distributed in the hope it will be useful, but WITHOUT
 13 *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 14 *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 15 *  for more details.
 16 *
 17 *  You should have received a copy of the GNU General Public License along
 18 *  with this program; if not, write to the Free Software Foundation, Inc.,
 19 *  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 20 *
 21 *  Nov 7, 2000
 22 *  Modified to build and operate in Linux kernel environment.
 23 *
 24 *  Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
 25 *  Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
 26 */
 27
 28#include <linux/types.h>
 29#include <linux/printk.h>
 30#include "ieee754.h"
 31#include "ieee754sp.h"
 32#include "ieee754dp.h"
 33
 34union ieee754dp ieee754dp_dump(char *m, union ieee754dp x)
 35{
 36	int i;
 37
 38	printk("%s", m);
 39	printk("<%08x,%08x>\n", (unsigned) (x.bits >> 32),
 40	       (unsigned) x.bits);
 41	printk("\t=");
 42	switch (ieee754dp_class(x)) {
 43	case IEEE754_CLASS_QNAN:
 44	case IEEE754_CLASS_SNAN:
 45		printk("Nan %c", DPSIGN(x) ? '-' : '+');
 46		for (i = DP_FBITS - 1; i >= 0; i--)
 47			printk("%c", DPMANT(x) & DP_MBIT(i) ? '1' : '0');
 48		break;
 49	case IEEE754_CLASS_INF:
 50		printk("%cInfinity", DPSIGN(x) ? '-' : '+');
 51		break;
 52	case IEEE754_CLASS_ZERO:
 53		printk("%cZero", DPSIGN(x) ? '-' : '+');
 54		break;
 55	case IEEE754_CLASS_DNORM:
 56		printk("%c0.", DPSIGN(x) ? '-' : '+');
 57		for (i = DP_FBITS - 1; i >= 0; i--)
 58			printk("%c", DPMANT(x) & DP_MBIT(i) ? '1' : '0');
 59		printk("e%d", DPBEXP(x) - DP_EBIAS);
 60		break;
 61	case IEEE754_CLASS_NORM:
 62		printk("%c1.", DPSIGN(x) ? '-' : '+');
 63		for (i = DP_FBITS - 1; i >= 0; i--)
 64			printk("%c", DPMANT(x) & DP_MBIT(i) ? '1' : '0');
 65		printk("e%d", DPBEXP(x) - DP_EBIAS);
 66		break;
 67	default:
 68		printk("Illegal/Unknown IEEE754 value class");
 69	}
 70	printk("\n");
 71	return x;
 72}
 73
 74union ieee754sp ieee754sp_dump(char *m, union ieee754sp x)
 75{
 76	int i;
 77
 78	printk("%s=", m);
 79	printk("<%08x>\n", (unsigned) x.bits);
 80	printk("\t=");
 81	switch (ieee754sp_class(x)) {
 82	case IEEE754_CLASS_QNAN:
 83	case IEEE754_CLASS_SNAN:
 84		printk("Nan %c", SPSIGN(x) ? '-' : '+');
 85		for (i = SP_FBITS - 1; i >= 0; i--)
 86			printk("%c", SPMANT(x) & SP_MBIT(i) ? '1' : '0');
 87		break;
 88	case IEEE754_CLASS_INF:
 89		printk("%cInfinity", SPSIGN(x) ? '-' : '+');
 90		break;
 91	case IEEE754_CLASS_ZERO:
 92		printk("%cZero", SPSIGN(x) ? '-' : '+');
 93		break;
 94	case IEEE754_CLASS_DNORM:
 95		printk("%c0.", SPSIGN(x) ? '-' : '+');
 96		for (i = SP_FBITS - 1; i >= 0; i--)
 97			printk("%c", SPMANT(x) & SP_MBIT(i) ? '1' : '0');
 98		printk("e%d", SPBEXP(x) - SP_EBIAS);
 99		break;
100	case IEEE754_CLASS_NORM:
101		printk("%c1.", SPSIGN(x) ? '-' : '+');
102		for (i = SP_FBITS - 1; i >= 0; i--)
103			printk("%c", SPMANT(x) & SP_MBIT(i) ? '1' : '0');
104		printk("e%d", SPBEXP(x) - SP_EBIAS);
105		break;
106	default:
107		printk("Illegal/Unknown IEEE754 value class");
108	}
109	printk("\n");
110	return x;
111}
v5.4
 1// SPDX-License-Identifier: GPL-2.0-only
 2/*
 3 * Some debug functions
 4 *
 5 * MIPS floating point support
 6 *
 7 * Copyright (C) 1994-2000 Algorithmics Ltd.
 
 
 
 
 
 
 
 
 
 
 
 
 
 8 *
 9 *  Nov 7, 2000
10 *  Modified to build and operate in Linux kernel environment.
11 *
12 *  Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
13 *  Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
14 */
15
16#include <linux/types.h>
17#include <linux/printk.h>
18#include "ieee754.h"
19#include "ieee754sp.h"
20#include "ieee754dp.h"
21
22union ieee754dp ieee754dp_dump(char *m, union ieee754dp x)
23{
24	int i;
25
26	printk("%s", m);
27	printk("<%08x,%08x>\n", (unsigned) (x.bits >> 32),
28	       (unsigned) x.bits);
29	printk("\t=");
30	switch (ieee754dp_class(x)) {
31	case IEEE754_CLASS_QNAN:
32	case IEEE754_CLASS_SNAN:
33		printk("Nan %c", DPSIGN(x) ? '-' : '+');
34		for (i = DP_FBITS - 1; i >= 0; i--)
35			printk("%c", DPMANT(x) & DP_MBIT(i) ? '1' : '0');
36		break;
37	case IEEE754_CLASS_INF:
38		printk("%cInfinity", DPSIGN(x) ? '-' : '+');
39		break;
40	case IEEE754_CLASS_ZERO:
41		printk("%cZero", DPSIGN(x) ? '-' : '+');
42		break;
43	case IEEE754_CLASS_DNORM:
44		printk("%c0.", DPSIGN(x) ? '-' : '+');
45		for (i = DP_FBITS - 1; i >= 0; i--)
46			printk("%c", DPMANT(x) & DP_MBIT(i) ? '1' : '0');
47		printk("e%d", DPBEXP(x) - DP_EBIAS);
48		break;
49	case IEEE754_CLASS_NORM:
50		printk("%c1.", DPSIGN(x) ? '-' : '+');
51		for (i = DP_FBITS - 1; i >= 0; i--)
52			printk("%c", DPMANT(x) & DP_MBIT(i) ? '1' : '0');
53		printk("e%d", DPBEXP(x) - DP_EBIAS);
54		break;
55	default:
56		printk("Illegal/Unknown IEEE754 value class");
57	}
58	printk("\n");
59	return x;
60}
61
62union ieee754sp ieee754sp_dump(char *m, union ieee754sp x)
63{
64	int i;
65
66	printk("%s=", m);
67	printk("<%08x>\n", (unsigned) x.bits);
68	printk("\t=");
69	switch (ieee754sp_class(x)) {
70	case IEEE754_CLASS_QNAN:
71	case IEEE754_CLASS_SNAN:
72		printk("Nan %c", SPSIGN(x) ? '-' : '+');
73		for (i = SP_FBITS - 1; i >= 0; i--)
74			printk("%c", SPMANT(x) & SP_MBIT(i) ? '1' : '0');
75		break;
76	case IEEE754_CLASS_INF:
77		printk("%cInfinity", SPSIGN(x) ? '-' : '+');
78		break;
79	case IEEE754_CLASS_ZERO:
80		printk("%cZero", SPSIGN(x) ? '-' : '+');
81		break;
82	case IEEE754_CLASS_DNORM:
83		printk("%c0.", SPSIGN(x) ? '-' : '+');
84		for (i = SP_FBITS - 1; i >= 0; i--)
85			printk("%c", SPMANT(x) & SP_MBIT(i) ? '1' : '0');
86		printk("e%d", SPBEXP(x) - SP_EBIAS);
87		break;
88	case IEEE754_CLASS_NORM:
89		printk("%c1.", SPSIGN(x) ? '-' : '+');
90		for (i = SP_FBITS - 1; i >= 0; i--)
91			printk("%c", SPMANT(x) & SP_MBIT(i) ? '1' : '0');
92		printk("e%d", SPBEXP(x) - SP_EBIAS);
93		break;
94	default:
95		printk("Illegal/Unknown IEEE754 value class");
96	}
97	printk("\n");
98	return x;
99}