source: trunk/minix/lib/ack/float/cfi.s@ 10

Last change on this file since 10 was 9, checked in by Mattia Monga, 14 years ago

Minix 3.1.2a

File size: 983 bytes
Line 
1.sect .text; .sect .rom; .sect .data; .sect .bss
2.extern .cfi
3.sect .text
4.cfi:
5push ebp
6mov ebp,esp
7sub esp,20
8push esi
9push 12(ebp)
10lea eax,-12(ebp)
11push eax
12lea eax,16(ebp)
13push eax
14call .extend
15add esp,12
16movsx eax,-10(ebp)
17test eax,eax
18jns I1_4
19xor eax,eax
20cmp 12(ebp),8
21jne 1f
22inc eax
231:
24mov 16(ebp)(eax*4),0
25xor eax,eax
26jmp I1_1
27I1_4:
28mov edx,8(ebp)
29sal edx,3
30sub edx,2
31o16 mov -18(ebp),edx
32movsx eax,-10(ebp)
33movsx ebx,-18(ebp)
34cmp eax,ebx
35jle I1_7
36movsx eax,-18(ebp)
37inc eax
38movsx ebx,-10(ebp)
39cmp eax,ebx
40jne I1_10
41movzx edx,-12(ebp)
42test edx,edx
43je I1_10
44cmp -8(ebp),-2147483648
45jne I1_10
46cmp -4(ebp),0
47je I1_7
48I1_10:
49push 3
50call __fptrp
51pop ecx
52movsx eax,-10(ebp)
53movsx ebx,-18(ebp)
54cdq
55idiv ebx
56o16 mov -10(ebp),edx
57I1_7:
58movsx eax,-10(ebp)
59sub eax,31
60neg eax
61mov ecx,eax
62mov edx,-8(ebp)
63shr edx,cl
64mov esi,edx
65movzx edx,-12(ebp)
66test edx,edx
67je I1_18
68neg esi
69I1_18:
70xor eax,eax
71cmp 12(ebp),8
72jne 1f
73inc eax
741:
75mov 16(ebp)(eax*4),esi
76mov eax,esi
77I1_1:
78pop esi
79leave
80ret
Note: See TracBrowser for help on using the repository browser.