~ubuntu-branches/ubuntu/vivid/gcl/vivid

« back to all changes in this revision

Viewing changes to mp/sparcdivul3.s

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2002-03-04 14:29:59 UTC
  • Revision ID: james.westby@ubuntu.com-20020304142959-dey14w08kr7lldu3
Tags: upstream-2.5.0.cvs20020219
ImportĀ upstreamĀ versionĀ 2.5.0.cvs20020219

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifdef __svr4__
 
2
#define _err err
 
3
#define _divul3 divul3
 
4
#endif
 
5
        .seg "text"
 
6
        .global _divul3
 
7
 
 
8
#define SS0(label) \
 
9
        addx    %o2,%o2,%o2;\
 
10
        subcc   %o2,%o1,%o3;\
 
11
        bcc     label;\
 
12
        addxcc  %o0,%o0,%o0
 
13
 
 
14
#define SS1(label) \
 
15
        addx    %o3,%o3,%o3;\
 
16
        subcc   %o3,%o1,%o2;\
 
17
        bcc     label;\
 
18
        addxcc  %o0,%o0,%o0
 
19
_divul3: mov     %o2,%o4
 
20
        ld      [%o2],%o2
 
21
        subcc   %o2,%o1,%g0
 
22
        blu     1f
 
23
        addcc   %o1,%o1,%g0
 
24
        mov     0x2f,%o0
 
25
        call    _err,1
 
26
        nop
 
27
1:      bcc     Lsmalldiv
 
28
        andcc   %o1,1,%g0
 
29
        be      Levendiv
 
30
        srl     %o1,1,%o1
 
31
        add     %o1,1,%o1
 
32
        subcc   %o2,%o1,%o3
 
33
        bcc     Lb01
 
34
        addxcc  %o0,%o0,%o0
 
35
La01:   SS0(Lb02)
 
36
La02:   SS0(Lb03)
 
37
La03:   SS0(Lb04)
 
38
La04:   SS0(Lb05)
 
39
La05:   SS0(Lb06)
 
40
La06:   SS0(Lb07)
 
41
La07:   SS0(Lb08)
 
42
La08:   SS0(Lb09)
 
43
La09:   SS0(Lb10)
 
44
La10:   SS0(Lb11)
 
45
La11:   SS0(Lb12)
 
46
La12:   SS0(Lb13)
 
47
La13:   SS0(Lb14)
 
48
La14:   SS0(Lb15)
 
49
La15:   SS0(Lb16)
 
50
La16:   SS0(Lb17)
 
51
La17:   SS0(Lb18)
 
52
La18:   SS0(Lb19)
 
53
La19:   SS0(Lb20)
 
54
La20:   SS0(Lb21)
 
55
La21:   SS0(Lb22)
 
56
La22:   SS0(Lb23)
 
57
La23:   SS0(Lb24)
 
58
La24:   SS0(Lb25)
 
59
La25:   SS0(Lb26)
 
60
La26:   SS0(Lb27)
 
61
La27:   SS0(Lb28)
 
62
La28:   SS0(Lb29)
 
63
La29:   SS0(Lb30)
 
64
La30:   SS0(Lb31)
 
65
La31:   SS0(Lb32)
 
66
La32:   addx    %o2,%o2,%o2
 
67
        xor     %o0,-1,%o0
 
68
        add     %o1,%o1,%o1
 
69
        sub     %o1,1,%o1
 
70
        addcc   %o0,%o2,%o2
 
71
        bcc     1f
 
72
        subcc   %o2,%o1,%o3
 
73
        subcc   %o3,%o1,%o2
 
74
        bcs     2f
 
75
        add     %o0,1,%o0
 
76
        add     %o0,1,%o0
 
77
3:      retl
 
78
        st      %o2,[%o4]
 
79
1:      bcs     3b
 
80
        nop
 
81
        add     %o0,1,%o0
 
82
2:      retl
 
83
        st      %o3,[%o4]
 
84
 
 
85
Lb01:   SS1(La02)
 
86
Lb02:   SS1(La03)
 
87
Lb03:   SS1(La04)
 
88
Lb04:   SS1(La05)
 
89
Lb05:   SS1(La06)
 
90
Lb06:   SS1(La07)
 
91
Lb07:   SS1(La08)
 
92
Lb08:   SS1(La09)
 
93
Lb09:   SS1(La10)
 
94
Lb10:   SS1(La11)
 
95
Lb11:   SS1(La12)
 
96
Lb12:   SS1(La13)
 
97
Lb13:   SS1(La14)
 
98
Lb14:   SS1(La15)
 
99
Lb15:   SS1(La16)
 
100
Lb16:   SS1(La17)
 
101
Lb17:   SS1(La18)
 
102
Lb18:   SS1(La19)
 
103
Lb19:   SS1(La20)
 
104
Lb20:   SS1(La21)
 
105
Lb21:   SS1(La22)
 
106
Lb22:   SS1(La23)
 
107
Lb23:   SS1(La24)
 
108
Lb24:   SS1(La25)
 
109
Lb25:   SS1(La26)
 
110
Lb26:   SS1(La27)
 
111
Lb27:   SS1(La28)
 
112
Lb28:   SS1(La29)
 
113
Lb29:   SS1(La30)
 
114
Lb30:   SS1(La31)
 
115
Lb31:   SS1(La32)
 
116
Lb32:   addx    %o3,%o3,%o2
 
117
        xor     %o0,-1,%o0
 
118
        add     %o1,%o1,%o1
 
119
        sub     %o1,1,%o1
 
120
        addcc   %o0,%o2,%o2
 
121
        bcc     1f
 
122
        subcc   %o2,%o1,%o3
 
123
        subcc   %o3,%o1,%o2
 
124
        bcs     2f
 
125
        add     %o0,1,%o0
 
126
        add     %o0,1,%o0
 
127
3:      retl
 
128
        st      %o2,[%o4]
 
129
1:      bcs     3b
 
130
        nop
 
131
        add     %o0,1,%o0
 
132
2:      retl
 
133
        st      %o3,[%o4]
 
134
 
 
135
Lsmalldiv:
 
136
        addcc   %o0,%o0,%o0
 
137
Lc00:   SS0(Ld01)
 
138
Lc01:   SS0(Ld02)
 
139
Lc02:   SS0(Ld03)
 
140
Lc03:   SS0(Ld04)
 
141
Lc04:   SS0(Ld05)
 
142
Lc05:   SS0(Ld06)
 
143
Lc06:   SS0(Ld07)
 
144
Lc07:   SS0(Ld08)
 
145
Lc08:   SS0(Ld09)
 
146
Lc09:   SS0(Ld10)
 
147
Lc10:   SS0(Ld11)
 
148
Lc11:   SS0(Ld12)
 
149
Lc12:   SS0(Ld13)
 
150
Lc13:   SS0(Ld14)
 
151
Lc14:   SS0(Ld15)
 
152
Lc15:   SS0(Ld16)
 
153
Lc16:   SS0(Ld17)
 
154
Lc17:   SS0(Ld18)
 
155
Lc18:   SS0(Ld19)
 
156
Lc19:   SS0(Ld20)
 
157
Lc20:   SS0(Ld21)
 
158
Lc21:   SS0(Ld22)
 
159
Lc22:   SS0(Ld23)
 
160
Lc23:   SS0(Ld24)
 
161
Lc24:   SS0(Ld25)
 
162
Lc25:   SS0(Ld26)
 
163
Lc26:   SS0(Ld27)
 
164
Lc27:   SS0(Ld28)
 
165
Lc28:   SS0(Ld29)
 
166
Lc29:   SS0(Ld30)
 
167
Lc30:   SS0(Ld31)
 
168
Lc31:   SS0(Ld32)
 
169
Lc32:   xor     %o0,-1,%o0
 
170
        retl
 
171
        st      %o2,[%o4]
 
172
 
 
173
Ld01:   SS1(Lc02)
 
174
Ld02:   SS1(Lc03)
 
175
Ld03:   SS1(Lc04)
 
176
Ld04:   SS1(Lc05)
 
177
Ld05:   SS1(Lc06)
 
178
Ld06:   SS1(Lc07)
 
179
Ld07:   SS1(Lc08)
 
180
Ld08:   SS1(Lc09)
 
181
Ld09:   SS1(Lc10)
 
182
Ld10:   SS1(Lc11)
 
183
Ld11:   SS1(Lc12)
 
184
Ld12:   SS1(Lc13)
 
185
Ld13:   SS1(Lc14)
 
186
Ld14:   SS1(Lc15)
 
187
Ld15:   SS1(Lc16)
 
188
Ld16:   SS1(Lc17)
 
189
Ld17:   SS1(Lc18)
 
190
Ld18:   SS1(Lc19)
 
191
Ld19:   SS1(Lc20)
 
192
Ld20:   SS1(Lc21)
 
193
Ld21:   SS1(Lc22)
 
194
Ld22:   SS1(Lc23)
 
195
Ld23:   SS1(Lc24)
 
196
Ld24:   SS1(Lc25)
 
197
Ld25:   SS1(Lc26)
 
198
Ld26:   SS1(Lc27)
 
199
Ld27:   SS1(Lc28)
 
200
Ld28:   SS1(Lc29)
 
201
Ld29:   SS1(Lc30)
 
202
Ld30:   SS1(Lc31)
 
203
Ld31:   SS1(Lc32)
 
204
Ld32:   xor     %o0,-1,%o0
 
205
        retl
 
206
        st      %o3,[%o4]
 
207
 
 
208
 
 
209
Levendiv:
 
210
        subcc   %o2,%o1,%o3
 
211
        bcc     Lf01
 
212
        addxcc  %o0,%o0,%o0
 
213
Le01:   SS0(Lf02)
 
214
Le02:   SS0(Lf03)
 
215
Le03:   SS0(Lf04)
 
216
Le04:   SS0(Lf05)
 
217
Le05:   SS0(Lf06)
 
218
Le06:   SS0(Lf07)
 
219
Le07:   SS0(Lf08)
 
220
Le08:   SS0(Lf09)
 
221
Le09:   SS0(Lf10)
 
222
Le10:   SS0(Lf11)
 
223
Le11:   SS0(Lf12)
 
224
Le12:   SS0(Lf13)
 
225
Le13:   SS0(Lf14)
 
226
Le14:   SS0(Lf15)
 
227
Le15:   SS0(Lf16)
 
228
Le16:   SS0(Lf17)
 
229
Le17:   SS0(Lf18)
 
230
Le18:   SS0(Lf19)
 
231
Le19:   SS0(Lf20)
 
232
Le20:   SS0(Lf21)
 
233
Le21:   SS0(Lf22)
 
234
Le22:   SS0(Lf23)
 
235
Le23:   SS0(Lf24)
 
236
Le24:   SS0(Lf25)
 
237
Le25:   SS0(Lf26)
 
238
Le26:   SS0(Lf27)
 
239
Le27:   SS0(Lf28)
 
240
Le28:   SS0(Lf29)
 
241
Le29:   SS0(Lf30)
 
242
Le30:   SS0(Lf31)
 
243
Le31:   SS0(Lf32)
 
244
Le32:   addx    %o2,%o2,%o2
 
245
        xor     %o0,-1,%o0
 
246
        retl
 
247
        st      %o2,[%o4]
 
248
 
 
249
Lf01:   SS1(Le02)
 
250
Lf02:   SS1(Le03)
 
251
Lf03:   SS1(Le04)
 
252
Lf04:   SS1(Le05)
 
253
Lf05:   SS1(Le06)
 
254
Lf06:   SS1(Le07)
 
255
Lf07:   SS1(Le08)
 
256
Lf08:   SS1(Le09)
 
257
Lf09:   SS1(Le10)
 
258
Lf10:   SS1(Le11)
 
259
Lf11:   SS1(Le12)
 
260
Lf12:   SS1(Le13)
 
261
Lf13:   SS1(Le14)
 
262
Lf14:   SS1(Le15)
 
263
Lf15:   SS1(Le16)
 
264
Lf16:   SS1(Le17)
 
265
Lf17:   SS1(Le18)
 
266
Lf18:   SS1(Le19)
 
267
Lf19:   SS1(Le20)
 
268
Lf20:   SS1(Le21)
 
269
Lf21:   SS1(Le22)
 
270
Lf22:   SS1(Le23)
 
271
Lf23:   SS1(Le24)
 
272
Lf24:   SS1(Le25)
 
273
Lf25:   SS1(Le26)
 
274
Lf26:   SS1(Le27)
 
275
Lf27:   SS1(Le28)
 
276
Lf28:   SS1(Le29)
 
277
Lf29:   SS1(Le30)
 
278
Lf30:   SS1(Le31)
 
279
Lf31:   SS1(Le32)
 
280
Lf32:   addx    %o3,%o3,%o3
 
281
        xor     %o0,-1,%o0
 
282
        retl
 
283
        st      %o3,[%o4]