remquo asm: return quotient mod 8, as intended by the spec
[musl] / src / math / i386 / floor.s
1 .global floorf
2 .type floorf,@function
3 floorf:
4         flds 4(%esp)
5         jmp 1f
6
7 .global floorl
8 .type floorl,@function
9 floorl:
10         fldt 4(%esp)
11         jmp 1f
12
13 .global floor
14 .type floor,@function
15 floor:
16         fldl 4(%esp)
17 1:      mov $0x7,%al
18 1:      fstcw 4(%esp)
19         mov 5(%esp),%ah
20         mov %al,5(%esp)
21         fldcw 4(%esp)
22         frndint
23         mov %ah,5(%esp)
24         fldcw 4(%esp)
25         ret
26
27 .global ceil
28 .type ceil,@function
29 ceil:
30         fldl 4(%esp)
31         mov $0xb,%al
32         jmp 1b
33
34 .global ceilf
35 .type ceilf,@function
36 ceilf:
37         flds 4(%esp)
38         mov $0xb,%al
39         jmp 1b
40
41 .global ceill
42 .type ceill,@function
43 ceill:
44         fldt 4(%esp)
45         mov $0xb,%al
46         jmp 1b
47
48 .global trunc
49 .type trunc,@function
50 trunc:
51         fldl 4(%esp)
52         mov $0xf,%al
53         jmp 1b
54
55 .global truncf
56 .type truncf,@function
57 truncf:
58         flds 4(%esp)
59         mov $0xf,%al
60         jmp 1b
61
62 .global truncl
63 .type truncl,@function
64 truncl:
65         fldt 4(%esp)
66         mov $0xf,%al
67         jmp 1b