OSDN Git Service

2001-08-29 Joel Sherrill <joel@OARcorp.com>
[pf3gnuchains/pf3gnuchains4x.git] / newlib / libc / machine / i386 / f_ldexp.S
1 /*
2  * ====================================================
3  * Copyright (C) 1998 by Cygnus Solutions. 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 #if !defined(_SOFT_FLOAT)
12
13 /*
14 Fast version of ldexp using Intel float instructions.
15
16    double _f_ldexp (double x, int exp);
17
18 Function calculates x * 2 ** exp.
19 There is no error checking or setting of errno.
20 */
21
22         #include "i386mach.h"
23
24         .global SYM (_f_ldexp)
25        SOTYPE_FUNCTION(_f_ldexp)
26
27 SYM (_f_ldexp):
28         pushl ebp
29         movl esp,ebp
30         fild 16(ebp)
31         fldl 8(ebp)
32         fscale
33         fstp st1
34
35         leave
36         ret
37
38 #endif