1/* 2 * ==================================================== 3 * Copyright (C) 1998, 2002 by Red Hat Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and distribute this 6 * software is freely granted, provided that this notice 7 * is preserved. 8 * ==================================================== 9 */ 10 11#include <picolibc.h> 12 13#if !defined(_SOFT_FLOAT) 14 15/* 16Fast version of frexpf using Intel float instructions. 17 18 float _f_frexpf (float x, int *exp); 19 20Function splits x into y * 2 ** z. It then 21returns the value of y and updates *exp with z. 22There is no error checking or setting of errno. 23*/ 24 25 #include "i386mach.h" 26 27 .global SYM (_f_frexpf) 28 SOTYPE_FUNCTION(_f_frexpf) 29 30SYM (_f_frexpf): 31 pushl ebp 32 movl esp,ebp 33 flds 8(ebp) 34 movl 12(ebp),eax 35 36 fxtract 37 fld1 38 fchs 39 fxch 40 fscale 41 fstp st1 42 fxch 43 fld1 44 faddp 45 fistpl 0(eax) 46 47 leave 48 ret 49 50#endif 51