| Index: fusl/src/math/frexpl.c | 
| diff --git a/fusl/src/math/frexpl.c b/fusl/src/math/frexpl.c | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..3c1b553748eec19a18804362acd508d3877d7fb6 | 
| --- /dev/null | 
| +++ b/fusl/src/math/frexpl.c | 
| @@ -0,0 +1,29 @@ | 
| +#include "libm.h" | 
| + | 
| +#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 | 
| +long double frexpl(long double x, int *e) | 
| +{ | 
| +	return frexp(x, e); | 
| +} | 
| +#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384 | 
| +long double frexpl(long double x, int *e) | 
| +{ | 
| +	union ldshape u = {x}; | 
| +	int ee = u.i.se & 0x7fff; | 
| + | 
| +	if (!ee) { | 
| +		if (x) { | 
| +			x = frexpl(x*0x1p120, e); | 
| +			*e -= 120; | 
| +		} else *e = 0; | 
| +		return x; | 
| +	} else if (ee == 0x7fff) { | 
| +		return x; | 
| +	} | 
| + | 
| +	*e = ee - 0x3ffe; | 
| +	u.i.se &= 0x8000; | 
| +	u.i.se |= 0x3ffe; | 
| +	return u.f; | 
| +} | 
| +#endif | 
|  |