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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
| | .include "ibt.s"
.global floorf
.type floorf,@function
floorf:
ENDBRANCH32
flds 4(%esp)
jmp 1f
.global floorl
.type floorl,@function
floorl:
ENDBRANCH32
fldt 4(%esp)
jmp 1f
.global floor
.type floor,@function
floor:
ENDBRANCH32
fldl 4(%esp)
1: mov $0x7,%al
1: fstcw 4(%esp)
mov 5(%esp),%ah
mov %al,5(%esp)
fldcw 4(%esp)
frndint
mov %ah,5(%esp)
fldcw 4(%esp)
ret
.global ceil
.type ceil,@function
ceil:
ENDBRANCH32
fldl 4(%esp)
mov $0xb,%al
jmp 1b
.global ceilf
.type ceilf,@function
ceilf:
ENDBRANCH32
flds 4(%esp)
mov $0xb,%al
jmp 1b
.global ceill
.type ceill,@function
ceill:
ENDBRANCH32
fldt 4(%esp)
mov $0xb,%al
jmp 1b
.global trunc
.type trunc,@function
trunc:
ENDBRANCH32
fldl 4(%esp)
mov $0xf,%al
jmp 1b
.global truncf
.type truncf,@function
truncf:
ENDBRANCH32
flds 4(%esp)
mov $0xf,%al
jmp 1b
.global truncl
.type truncl,@function
truncl:
ENDBRANCH32
fldt 4(%esp)
mov $0xf,%al
jmp 1b
|