37a24450fb3ef317088c903b26839a765b0cd178
[musl] / src / math / i386 / remquo.s
1 .global remquof
2 .type remquof,@function
3 remquof:
4         mov 12(%esp),%ecx
5         fldl 8(%esp)
6         fldl 4(%esp)
7         mov 11(%esp),%dh
8         xor 7(%esp),%dh
9         jmp 1f
10
11 .global remquol
12 .type remquol,@function
13 remquol:
14         mov 28(%esp),%ecx
15         fldl 16(%esp)
16         fldl 4(%esp)
17         mov 25(%esp),%dh
18         xor 13(%esp),%dh
19         jmp 1f
20
21 .global remquo
22 .type remquo,@function
23 remquo:
24         mov 20(%esp),%ecx
25         fldl 12(%esp)
26         fldl 4(%esp)
27         mov 19(%esp),%dh
28         xor 11(%esp),%dh
29 1:      fprem1
30         fnstsw %ax
31         sahf
32         jp 1b
33         fstp %st(1)
34         mov %ah,%dl
35         shr %dl
36         and $1,%dl
37         mov %ah,%al
38         shr $5,%al
39         and $2,%al
40         or %al,%dl
41         mov %ah,%al
42         shl $2,%al
43         and $4,%al
44         or %al,%dl
45         test %dh,%dh
46         jns 1f
47         neg %dl
48 1:      movsbl %dl,%edx
49         mov %edx,(%ecx)
50         ret