xref: /haiku/src/system/libroot/posix/musl/math/x86/scalbnf.s (revision f504f61099b010fbfa94b1cc63d2e9072c7f7185)
1*f504f610SAugustin Cavalier.global ldexpf
2*f504f610SAugustin Cavalier.type ldexpf,@function
3*f504f610SAugustin Cavalierldexpf:
4*f504f610SAugustin Cavalier	nop
5*f504f610SAugustin Cavalier
6*f504f610SAugustin Cavalier.global scalblnf
7*f504f610SAugustin Cavalier.type scalblnf,@function
8*f504f610SAugustin Cavalierscalblnf:
9*f504f610SAugustin Cavalier	nop
10*f504f610SAugustin Cavalier
11*f504f610SAugustin Cavalier.global scalbnf
12*f504f610SAugustin Cavalier.type scalbnf,@function
13*f504f610SAugustin Cavalierscalbnf:
14*f504f610SAugustin Cavalier	mov 8(%esp),%eax
15*f504f610SAugustin Cavalier	add $0x3fe,%eax
16*f504f610SAugustin Cavalier	cmp $0x7fd,%eax
17*f504f610SAugustin Cavalier	jb 1f
18*f504f610SAugustin Cavalier	sub $0x3fe,%eax
19*f504f610SAugustin Cavalier	sar $31,%eax
20*f504f610SAugustin Cavalier	xor $0x1ff,%eax
21*f504f610SAugustin Cavalier	add $0x3fe,%eax
22*f504f610SAugustin Cavalier1:	inc %eax
23*f504f610SAugustin Cavalier	shl $20,%eax
24*f504f610SAugustin Cavalier	flds 4(%esp)
25*f504f610SAugustin Cavalier	mov %eax,8(%esp)
26*f504f610SAugustin Cavalier	xor %eax,%eax
27*f504f610SAugustin Cavalier	mov %eax,4(%esp)
28*f504f610SAugustin Cavalier	fldl 4(%esp)
29*f504f610SAugustin Cavalier	fmulp
30*f504f610SAugustin Cavalier	fstps 4(%esp)
31*f504f610SAugustin Cavalier	flds 4(%esp)
32*f504f610SAugustin Cavalier	ret
33