aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc/machine/i386/f_ldexpf.S
blob: cded4cd95ebccc4f3bf94ab4c1663f084cec356a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
 * ==================================================== 
 * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. 
 *      
 * Permission to use, copy, modify, and distribute this 
 * software is freely granted, provided that this notice
 * is preserved.        
 * ==================================================== 
 */

/*
Fast version of ldexpf using Intel float instructions.

   float _f_ldexpf (float x, int exp);

Function calculates x * 2 ** exp.
There is no error checking or setting of errno. 
*/

	#include "i386mach.h"

	.global SYM (_f_ldexpf)
       SOTYPE_FUNCTION(_f_ldexpf)

SYM (_f_ldexpf):
	pushl ebp
	movl esp,ebp
	fild 12(ebp)
	flds 8(ebp)
	fscale
	fstp st1

	leave
	ret