fixes for host gcc 4.6.1
[zpugcc/jano.git] / toolchain / gcc / newlib / libc / machine / i386 / f_frexpf.S
blob909026d6634cc0e9b904c0a8d39d7f3824ddf94c
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  */
11 #if !defined(_SOFT_FLOAT)
14 Fast version of frexpf using Intel float instructions.
16    float _f_frexpf (float x, int *exp);
18 Function splits x into y * 2 ** z.  It then
19 returns the value of y and updates *exp with z.
20 There is no error checking or setting of errno.
23         #include "i386mach.h"
25         .global SYM (_f_frexpf)
26        SOTYPE_FUNCTION(_f_frexpf)
28 SYM (_f_frexpf):
29         pushl ebp
30         movl esp,ebp
31         flds 8(ebp)
32         movl 12(ebp),eax
34         fxtract
35         fld1
36         fchs
37         fxch
38         fscale
39         fstp st1
40         fxch
41         fld1
42         faddp
43         fistpl 0(eax)
45         leave
46         ret
48 #endif