summaryrefslogtreecommitdiff
path: root/src/math/i386/scalbnf.s
blob: 9cb9ef5fee441710f536024f8c074c28851cf4af (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
.global ldexpf
.type ldexpf,@function
ldexpf:
	nop

.global scalblnf
.type scalblnf,@function
scalblnf:
	nop

.global scalbnf
.type scalbnf,@function
scalbnf:
	mov 8(%esp),%eax
	add $0x3fe,%eax
	cmp $0x7fd,%eax
	jb 1f
	sub $0x3fe,%eax
	sar $31,%eax
	xor $0x1ff,%eax
	add $0x3fe,%eax
1:	inc %eax
	shl $20,%eax
	flds 4(%esp)
	mov %eax,8(%esp)
	xor %eax,%eax
	mov %eax,4(%esp)
	fldl 4(%esp)
	fmulp
	fstps 4(%esp)
	flds 4(%esp)
	ret