source: trunk/minix/lib/ack/float/sub_ext.s@ 9

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

Minix 3.1.2a

File size: 1.4 KB
Line 
1.sect .text; .sect .rom; .sect .data; .sect .bss
2.extern .sub_ext
3.sect .text
4.sub_ext:
5push ebp
6mov ebp,esp
7push esi
8push edi
9mov esi,8(ebp)
10mov edi,12(ebp)
11mov edx,8(edi)
12or edx,4(edi)
13je I1_1
14mov edx,8(esi)
15or edx,4(esi)
16jne I1_7
17push edi
18push esi
19mov ecx,3
20call .blm
21movzx edx,(edi)
22test edx,edx
23je I1_10
24xor eax,eax
25jmp I1_11
26I1_10:
27mov eax,1
28I1_11:
29o16 mov (esi),eax
30jmp I1_1
31I1_7:
32push edi
33push esi
34call .sft_ext
35pop ecx
36pop ecx
37movsx eax,(esi)
38movsx ebx,(edi)
39cmp eax,ebx
40je I1_13
41lea eax,4(edi)
42push eax
43lea eax,4(esi)
44push eax
45call .b64_add
46pop ecx
47pop ecx
48test eax,eax
49je I1_14
50lea eax,4(esi)
51push eax
52call .b64_rsft
53pop ecx
54or 4(esi),-2147483648
55movsx eax,2(esi)
56inc eax
57movsx eax,eax
58o16 mov 2(esi),eax
59jmp I1_14
60I1_13:
61mov edx,4(esi)
62cmp 4(edi),edx
63ja I1_18
64cmp 4(edi),edx
65jne I1_19
66mov edx,8(esi)
67cmp 8(edi),edx
68jbe I1_19
69I1_18:
70mov edx,8(edi)
71cmp 8(esi),edx
72jbe I1_24
73mov edx,4(edi)
74sub edx,1
75mov 4(edi),edx
76I1_24:
77mov edx,4(edi)
78sub edx,4(esi)
79mov 4(edi),edx
80mov edx,8(edi)
81sub edx,8(esi)
82mov 8(edi),edx
83push edi
84push esi
85mov ecx,3
86call .blm
87movzx edx,(edi)
88test edx,edx
89je I1_27
90xor eax,eax
91jmp I1_28
92I1_27:
93mov eax,1
94I1_28:
95o16 mov (esi),eax
96jmp I1_14
97I1_19:
98mov edx,8(esi)
99cmp 8(edi),edx
100jbe I1_30
101mov edx,4(esi)
102sub edx,1
103mov 4(esi),edx
104I1_30:
105mov edx,4(esi)
106sub edx,4(edi)
107mov 4(esi),edx
108mov edx,8(esi)
109sub edx,8(edi)
110mov 8(esi),edx
111I1_14:
112push esi
113call .nrm_ext
114pop ecx
115I1_1:
116pop edi
117pop esi
118leave
119ret
Note: See TracBrowser for help on using the repository browser.