dbd3f15168
2. Add flag INTERNAL_LIBM to mpconfigboard.mk files to signal using lib/libm. 3. Fix floating-point warnings in lib/libm 4. Turn off -finline-limit, no longer needed due to 1. 5. Add explicit flags for SPI_FLASH_FILESYSTEM and INTERNAL_FLASH_FILESYSTEM to mpconfigboard.mk files, so they don't need to know the name of the .c file that implements those. Makefile takes care of checking the flags and including the right files.
57 lines
1.4 KiB
C
57 lines
1.4 KiB
C
/*
|
|
* This file is part of the MicroPython project, http://micropython.org/
|
|
*
|
|
* These math functions are taken from newlib-nano-2, the newlib/libm/math
|
|
* directory, available from https://github.com/32bitmicro/newlib-nano-2.
|
|
*
|
|
* Appropriate copyright headers are reproduced below.
|
|
*/
|
|
|
|
/* sf_ldexp.c -- float version of s_ldexp.c.
|
|
* Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
|
|
*/
|
|
|
|
/*
|
|
* ====================================================
|
|
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
|
*
|
|
* Developed at SunPro, a Sun Microsystems, Inc. business.
|
|
* Permission to use, copy, modify, and distribute this
|
|
* software is freely granted, provided that this notice
|
|
* is preserved.
|
|
* ====================================================
|
|
*/
|
|
|
|
#include "fdlibm.h"
|
|
//#include <errno.h>
|
|
|
|
#ifdef __STDC__
|
|
float ldexpf(float value, int exp)
|
|
#else
|
|
float ldexpf(value, exp)
|
|
float value; int exp;
|
|
#endif
|
|
{
|
|
#pragma GCC diagnostic push
|
|
#pragma GCC diagnostic ignored "-Wfloat-equal"
|
|
if(!isfinite(value)||value==(float)0.0) return value;
|
|
#pragma GCC diagnostic pop
|
|
value = scalbnf(value,exp);
|
|
//if(!finitef(value)||value==(float)0.0) errno = ERANGE;
|
|
return value;
|
|
}
|
|
|
|
#ifdef _DOUBLE_IS_32BITS
|
|
|
|
#ifdef __STDC__
|
|
double ldexp(double value, int exp)
|
|
#else
|
|
double ldexp(value, exp)
|
|
double value; int exp;
|
|
#endif
|
|
{
|
|
return (double) ldexpf((float) value, exp);
|
|
}
|
|
|
|
#endif /* defined(_DOUBLE_IS_32BITS) */
|