xref: /haiku/src/system/libroot/posix/musl/math/x86/scalbnl.s (revision f504f61099b010fbfa94b1cc63d2e9072c7f7185)
1*f504f610SAugustin Cavalier.global ldexpl
2*f504f610SAugustin Cavalier.type ldexpl,@function
3*f504f610SAugustin Cavalierldexpl:
4*f504f610SAugustin Cavalier	nop
5*f504f610SAugustin Cavalier
6*f504f610SAugustin Cavalier.global scalblnl
7*f504f610SAugustin Cavalier.type scalblnl,@function
8*f504f610SAugustin Cavalierscalblnl:
9*f504f610SAugustin Cavalier	nop
10*f504f610SAugustin Cavalier
11*f504f610SAugustin Cavalier.global scalbnl
12*f504f610SAugustin Cavalier.type scalbnl,@function
13*f504f610SAugustin Cavalierscalbnl:
14*f504f610SAugustin Cavalier	mov 16(%esp),%eax
15*f504f610SAugustin Cavalier	add $0x3ffe,%eax
16*f504f610SAugustin Cavalier	cmp $0x7ffd,%eax
17*f504f610SAugustin Cavalier	jae 1f
18*f504f610SAugustin Cavalier	inc %eax
19*f504f610SAugustin Cavalier	fldt 4(%esp)
20*f504f610SAugustin Cavalier	mov %eax,12(%esp)
21*f504f610SAugustin Cavalier	mov $0x80000000,%eax
22*f504f610SAugustin Cavalier	mov %eax,8(%esp)
23*f504f610SAugustin Cavalier	xor %eax,%eax
24*f504f610SAugustin Cavalier	mov %eax,4(%esp)
25*f504f610SAugustin Cavalier	fldt 4(%esp)
26*f504f610SAugustin Cavalier	fmulp
27*f504f610SAugustin Cavalier	ret
28*f504f610SAugustin Cavalier1:	fildl 16(%esp)
29*f504f610SAugustin Cavalier	fldt 4(%esp)
30*f504f610SAugustin Cavalier	fscale
31*f504f610SAugustin Cavalier	fstp %st(1)
32*f504f610SAugustin Cavalier	ret
33