/arch/mips/math-emu/sp_frexp.c
https://bitbucket.org/evzijst/gittest · C · 53 lines · 22 code · 4 blank · 27 comment · 1 complexity · 517cf95b22e0cd6c19dcb2cb60e06048 MD5 · raw file
- /* IEEE754 floating point arithmetic
- * single precision
- */
- /*
- * MIPS floating point support
- * Copyright (C) 1994-2000 Algorithmics Ltd.
- * http://www.algor.co.uk
- *
- * ########################################################################
- *
- * This program is free software; you can distribute it and/or modify it
- * under the terms of the GNU General Public License (Version 2) as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
- *
- * ########################################################################
- */
- #include "ieee754sp.h"
- /* close to ieeep754sp_logb
- */
- ieee754sp ieee754sp_frexp(ieee754sp x, int *eptr)
- {
- COMPXSP;
- CLEARCX;
- EXPLODEXSP;
- switch (xc) {
- case IEEE754_CLASS_SNAN:
- case IEEE754_CLASS_QNAN:
- case IEEE754_CLASS_INF:
- case IEEE754_CLASS_ZERO:
- *eptr = 0;
- return x;
- case IEEE754_CLASS_DNORM:
- SPDNORMX;
- break;
- case IEEE754_CLASS_NORM:
- break;
- }
- *eptr = xe + 1;
- return buildsp(xs, -1 + SP_EBIAS, xm & ~SP_HIDDEN_BIT);
- }