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

« back to all changes in this revision

Viewing changes to mp/mpi-sparc.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
gcc2_compiled.:
 
2
___gnu_compiled_c:
 
3
.text
 
4
        .align 4
 
5
        .global _mulsi
 
6
        .proc   0104
 
7
_mulsi:
 
8
        !#PROLOGUE# 0
 
9
        save %sp,-104,%sp
 
10
        !#PROLOGUE# 1
 
11
        ld [%i1+4],%o1
 
12
        sra %o1,24,%l1
 
13
        sethi %hi(65535),%o0
 
14
        or %o0,%lo(65535),%o0
 
15
        cmp %i0,0
 
16
        be L3
 
17
        and %o1,%o0,%l0
 
18
        cmp %l1,0
 
19
        bne L2
 
20
        cmp %i0,0
 
21
L3:
 
22
        sethi %hi(_gzero),%o0
 
23
        b L12
 
24
        ld [%o0+%lo(_gzero)],%i0
 
25
L2:
 
26
        bge L4
 
27
        nop
 
28
        subcc %g0,%i0,%i0
 
29
        bpos L4
 
30
        sub %g0,%l1,%l1
 
31
        call _stoi,0
 
32
        sethi %hi(-2147483648),%o0
 
33
        call _mulii,0
 
34
        mov %i1,%o1
 
35
        b L12
 
36
        mov %o0,%i0
 
37
L4:
 
38
        call _cgeti,0
 
39
        add %l0,1,%o0
 
40
        mov %o0,%g3
 
41
        mov 0,%o2
 
42
        sll %l0,2,%o0
 
43
        add %i1,%o0,%i1
 
44
        add %g3,%o0,%g2
 
45
        addcc %l0,-2,%o3
 
46
        be L7
 
47
        add %g2,4,%g2
 
48
L8:
 
49
        add %g2,-4,%g2
 
50
        mov %o2,%o0
 
51
        add %i1,-4,%i1
 
52
        ld [%i1],%o1
 
53
        mov %i0,%l2
 
54
         
 
55
        or      %l2,%o1,%o4      
 
56
        mov     %l2,%y
 
57
        andncc  %o4,0xfff,%g0
 
58
        be      2f
 
59
        andcc   %g0,%g0,%o4
 
60
        mulscc  %o4,%o1,%o4
 
61
        mulscc  %o4,%o1,%o4
 
62
        mulscc  %o4,%o1,%o4
 
63
        mulscc  %o4,%o1,%o4
 
64
        mulscc  %o4,%o1,%o4
 
65
        mulscc  %o4,%o1,%o4
 
66
        mulscc  %o4,%o1,%o4
 
67
        mulscc  %o4,%o1,%o4
 
68
        mulscc  %o4,%o1,%o4
 
69
        mulscc  %o4,%o1,%o4
 
70
        mulscc  %o4,%o1,%o4
 
71
        mulscc  %o4,%o1,%o4
 
72
        mulscc  %o4,%o1,%o4
 
73
        mulscc  %o4,%o1,%o4
 
74
        mulscc  %o4,%o1,%o4
 
75
        mulscc  %o4,%o1,%o4
 
76
        mulscc  %o4,%o1,%o4
 
77
        mulscc  %o4,%o1,%o4
 
78
        mulscc  %o4,%o1,%o4
 
79
        mulscc  %o4,%o1,%o4
 
80
        mulscc  %o4,%o1,%o4
 
81
        mulscc  %o4,%o1,%o4
 
82
        mulscc  %o4,%o1,%o4
 
83
        mulscc  %o4,%o1,%o4
 
84
        mulscc  %o4,%o1,%o4
 
85
        mulscc  %o4,%o1,%o4
 
86
        mulscc  %o4,%o1,%o4
 
87
        mulscc  %o4,%o1,%o4
 
88
        mulscc  %o4,%o1,%o4
 
89
        mulscc  %o4,%o1,%o4
 
90
        mulscc  %o4,%o1,%o4
 
91
        mulscc  %o4,%o1,%o4
 
92
        mulscc  %o4,%g0,%o4
 
93
        tst     %o1
 
94
        bl,a    1f
 
95
        add     %o4,%l2,%o4
 
96
1:      mov     %o4,%o2
 
97
        b       3f 
 
98
        rd      %y,%l2
 
99
2:      clr     %o2
 
100
        mulscc  %o4,%o1,%o4
 
101
        mulscc  %o4,%o1,%o4
 
102
        mulscc  %o4,%o1,%o4
 
103
        mulscc  %o4,%o1,%o4
 
104
        mulscc  %o4,%o1,%o4
 
105
        mulscc  %o4,%o1,%o4
 
106
        mulscc  %o4,%o1,%o4
 
107
        mulscc  %o4,%o1,%o4
 
108
        mulscc  %o4,%o1,%o4
 
109
        mulscc  %o4,%o1,%o4
 
110
        mulscc  %o4,%o1,%o4
 
111
        mulscc  %o4,%o1,%o4
 
112
        mulscc  %o4,%g0,%o4
 
113
        rd      %y,%o5
 
114
        sll     %o4,12,%o4
 
115
        srl     %o5,20,%o5
 
116
        or      %o5,%o4,%l2
 
117
3:       
 
118
 
 
119
        mov %l2,%o1
 
120
        addcc %o0,%o1,%l2
 
121
        addx %o2,%g0,%o2
 
122
        addcc %o3,-1,%o3
 
123
        bne L8
 
124
        st %l2,[%g2]
 
125
L7:
 
126
        cmp %o2,0
 
127
        be L10
 
128
        sethi %hi(-65536),%o1
 
129
        st %o2,[%g2-4]
 
130
        ld [%g3+4],%o0
 
131
        and %o0,%o1,%o0
 
132
        add %o0,%l0,%o0
 
133
        b L13
 
134
        add %o0,1,%o0
 
135
L10:
 
136
        sethi %hi(_avma),%o1
 
137
        ld [%o1+%lo(_avma)],%o0
 
138
        add %o0,4,%o0
 
139
        st %o0,[%o1+%lo(_avma)]
 
140
        ld [%g3],%o0
 
141
        add %o0,-1,%o0
 
142
        st %o0,[%g3+4]
 
143
        add %g3,4,%g3
 
144
        ld [%g3+4],%o0
 
145
        sethi %hi(-65536),%o1
 
146
        and %o0,%o1,%o0
 
147
        add %o0,%l0,%o0
 
148
L13:
 
149
        st %o0,[%g3+4]
 
150
        ld [%g3+4],%o0
 
151
        sethi %hi(-16777216),%o1
 
152
        andn %o0,%o1,%o1
 
153
        sll %l1,24,%o0
 
154
        add %o1,%o0,%o1
 
155
        st %o1,[%g3+4]
 
156
        mov %g3,%i0
 
157
L12:
 
158
        ret
 
159
        restore
 
160
        .align 4
 
161
        .global _expi
 
162
        .proc   04
 
163
_expi:
 
164
        !#PROLOGUE# 0
 
165
        save %sp,-104,%sp
 
166
        !#PROLOGUE# 1
 
167
        mov %i0,%o2
 
168
        ld [%o2+4],%o1
 
169
        sethi %hi(65535),%o0
 
170
        or %o0,%lo(65535),%o0
 
171
        and %o1,%o0,%i0
 
172
        cmp %i0,2
 
173
        be,a L16
 
174
        sethi %hi(-8388608),%i0
 
175
        call _bfffo,0
 
176
        ld [%o2+8],%o0
 
177
        add %i0,-2,%i0
 
178
        sll %i0,5,%i0
 
179
        sub %i0,%o0,%i0
 
180
        add %i0,-1,%i0
 
181
L16:
 
182
        ret
 
183
        restore
 
184
        .align 4
 
185
        .global _addsi
 
186
        .proc   0104
 
187
_addsi:
 
188
        !#PROLOGUE# 0
 
189
        save %sp,-104,%sp
 
190
        !#PROLOGUE# 1
 
191
        orcc %i0,%g0,%l1
 
192
        bne,a L18
 
193
        ldsb [%i1+4],%l3
 
194
        call _icopy,0
 
195
        mov %i1,%o0
 
196
        b L67
 
197
        mov %o0,%i0
 
198
L18:
 
199
        cmp %l3,0
 
200
        bne L19
 
201
        cmp %l1,0
 
202
        call _stoi,0
 
203
        mov %l1,%o0
 
204
        b L67
 
205
        mov %o0,%i0
 
206
L19:
 
207
        bge,a L22
 
208
        mov 1,%l4
 
209
        subcc %g0,%l1,%l1
 
210
        bpos L22
 
211
        mov -1,%l4
 
212
        sethi %hi(_MOST_NEGS),%o0
 
213
        or %o0,%lo(_MOST_NEGS),%o0
 
214
        call _addii,0
 
215
        mov %i1,%o1
 
216
        b L67
 
217
        mov %o0,%i0
 
218
L22:
 
219
        ld [%i1+4],%o1
 
220
        sethi %hi(65535),%o0
 
221
        or %o0,%lo(65535),%o0
 
222
        cmp %l4,%l3
 
223
        bne L23
 
224
        and %o1,%o0,%l0
 
225
        mov %l1,%o1
 
226
        sll %l0,2,%l2
 
227
        add %l2,%i1,%o0
 
228
        ld [%o0-4],%o0
 
229
        add %o1,%o0,%o0
 
230
        cmp %o0,%o1
 
231
        bgeu L24
 
232
        mov %o0,%l1
 
233
        call _cgeti,0
 
234
        add %l0,1,%o0
 
235
        mov %o0,%i0
 
236
        add %l0,-1,%o2
 
237
        cmp %o2,2
 
238
        ble L69
 
239
        st %l1,[%i0+%l2]
 
240
L30:
 
241
        sll %o2,2,%o1
 
242
        add %o1,%i1,%o0
 
243
        ld [%o0-4],%o0
 
244
        cmp %o0,-1
 
245
        bne L69
 
246
        cmp %o2,2
 
247
        add %o2,-1,%o2
 
248
        cmp %o2,2
 
249
        bg L30
 
250
        st %g0,[%i0+%o1]
 
251
        cmp %o2,2
 
252
L69:
 
253
        ble L31
 
254
        sll %o2,2,%o1
 
255
        add %o1,%i1,%o0
 
256
        ld [%o0-4],%o0
 
257
        add %o0,1,%o0
 
258
        b L68
 
259
        st %o0,[%i0+%o1]
 
260
L34:
 
261
        add %o0,%i1,%o1
 
262
        ld [%o1-4],%o1
 
263
        st %o1,[%i0+%o0]
 
264
L68:
 
265
        add %o2,-1,%o2
 
266
        cmp %o2,2
 
267
        bg L34
 
268
        sll %o2,2,%o0
 
269
        ld [%i0],%o0
 
270
        add %o0,-1,%o0
 
271
        st %o0,[%i0+4]
 
272
        st %o0,[%i0+8]
 
273
        add %i0,4,%i0
 
274
        sethi %hi(_avma),%o1
 
275
        ld [%o1+%lo(_avma)],%o0
 
276
        add %o0,4,%o0
 
277
        b L37
 
278
        st %o0,[%o1+%lo(_avma)]
 
279
L31:
 
280
        mov 1,%o0
 
281
        st %o0,[%i0+8]
 
282
        ld [%i0],%o0
 
283
        b L37
 
284
        st %o0,[%i0+4]
 
285
L24:
 
286
        call _cgeti,0
 
287
        mov %l0,%o0
 
288
        mov %o0,%i0
 
289
        sll %l0,2,%o0
 
290
        add %o0,%i0,%o0
 
291
        st %l1,[%o0-4]
 
292
        mov 1,%o2
 
293
        add %l0,-1,%o0
 
294
        cmp %o2,%o0
 
295
        bge L37
 
296
        mov %o0,%o3
 
297
L41:
 
298
        sll %o2,2,%o1
 
299
        ld [%i1+%o1],%o0
 
300
        add %o2,1,%o2
 
301
        cmp %o2,%o3
 
302
        bl L41
 
303
        st %o0,[%i0+%o1]
 
304
L37:
 
305
        ld [%i0+4],%o0
 
306
        sethi %hi(-16777216),%o1
 
307
        andn %o0,%o1,%o1
 
308
        sll %l4,24,%o0
 
309
        add %o1,%o0,%o1
 
310
        b L67
 
311
        st %o1,[%i0+4]
 
312
L23:
 
313
        cmp %l0,3
 
314
        bne L44
 
315
        sll %l0,2,%l2
 
316
        ld [%i1+8],%o0
 
317
        cmp %o0,%l1
 
318
        bleu L45
 
319
        nop
 
320
        call _cgeti,0
 
321
        mov 3,%o0
 
322
        mov %o0,%i0
 
323
        sll %l3,24,%o0
 
324
        add %o0,3,%o0
 
325
        st %o0,[%i0+4]
 
326
        ld [%i1+8],%o0
 
327
        sub %o0,%l1,%o0
 
328
        b L67
 
329
        st %o0,[%i0+8]
 
330
L45:
 
331
        bne L46
 
332
        sethi %hi(_gzero),%o0
 
333
        b L67
 
334
        ld [%o0+%lo(_gzero)],%i0
 
335
L46:
 
336
        call _cgeti,0
 
337
        mov 3,%o0
 
338
        mov %o0,%i0
 
339
        sub %g0,%l3,%o0
 
340
        sll %o0,24,%o0
 
341
        add %o0,3,%o0
 
342
        st %o0,[%i0+4]
 
343
        ld [%i1+8],%o0
 
344
        sub %l1,%o0,%o0
 
345
        b L67
 
346
        st %o0,[%i0+8]
 
347
L44:
 
348
        add %l2,%i1,%o0
 
349
        ld [%o0-4],%o1
 
350
        mov %l1,%o0
 
351
        cmp %o1,%o0
 
352
        bgeu L47
 
353
        sub %o1,%o0,%l1
 
354
        call _cgeti,0
 
355
        mov %l0,%o0
 
356
        mov %o0,%i0
 
357
        add %l2,%i0,%o0
 
358
        st %l1,[%o0-4]
 
359
        add %l0,-2,%o2
 
360
        sll %o2,2,%o0
 
361
        mov %o0,%o1
 
362
        ld [%i1+%o0],%o0
 
363
        cmp %o0,0
 
364
        bne,a L70
 
365
        sll %o2,2,%o1
 
366
        mov -1,%o3
 
367
        st %o3,[%i0+%o1]
 
368
L71:
 
369
        add %o2,-1,%o2
 
370
        sll %o2,2,%o1
 
371
        ld [%i1+%o1],%o0
 
372
        cmp %o0,0
 
373
        be,a L71
 
374
        st %o3,[%i0+%o1]
 
375
        sll %o2,2,%o1
 
376
L70:
 
377
        ld [%i1+%o1],%o0
 
378
        add %o0,-1,%o0
 
379
        cmp %o2,2
 
380
        bg L54
 
381
        st %o0,[%i0+%o1]
 
382
        cmp %o0,0
 
383
        be,a L53
 
384
        ld [%i0],%o0
 
385
L54:
 
386
        add %o2,-1,%o2
 
387
        cmp %o2,0
 
388
        ble L67
 
389
        nop
 
390
L58:
 
391
        sll %o2,2,%o1
 
392
        ld [%i1+%o1],%o0
 
393
        add %o2,-1,%o2
 
394
        cmp %o2,0
 
395
        bg L58
 
396
        st %o0,[%i0+%o1]
 
397
        b,a L67
 
398
L53:
 
399
        add %o0,-1,%o0
 
400
        st %o0,[%i0+4]
 
401
        st %o0,[%i0+8]
 
402
        add %i0,4,%i0
 
403
        sethi %hi(_avma),%o1
 
404
        ld [%o1+%lo(_avma)],%o0
 
405
        add %o0,4,%o0
 
406
        st %o0,[%o1+%lo(_avma)]
 
407
        ld [%i0+4],%o1
 
408
        sethi %hi(-16777216),%o0
 
409
        andn %o1,%o0,%o0
 
410
        sll %l3,24,%o1
 
411
        add %o0,%o1,%o0
 
412
        b L67
 
413
        st %o0,[%i0+4]
 
414
L47:
 
415
        call _cgeti,0
 
416
        mov %l0,%o0
 
417
        mov %o0,%i0
 
418
        sll %l0,2,%o0
 
419
        add %o0,%i0,%o0
 
420
        st %l1,[%o0-4]
 
421
        mov 1,%o2
 
422
        add %l0,-1,%o0
 
423
        cmp %o2,%o0
 
424
        bge L67
 
425
        mov %o0,%o3
 
426
L65:
 
427
        sll %o2,2,%o1
 
428
        ld [%i1+%o1],%o0
 
429
        add %o2,1,%o2
 
430
        cmp %o2,%o3
 
431
        bl L65
 
432
        st %o0,[%i0+%o1]
 
433
L67:
 
434
        ret
 
435
        restore
 
436
        .align 4
 
437
        .global _addii
 
438
        .proc   0104
 
439
_addii:
 
440
        !#PROLOGUE# 0
 
441
        save %sp,-104,%sp
 
442
        !#PROLOGUE# 1
 
443
        mov %i0,%l0
 
444
        ld [%l0+4],%o0
 
445
        sethi %hi(65535),%o1
 
446
        or %o1,%lo(65535),%o1
 
447
        and %o0,%o1,%l1
 
448
        ld [%i1+4],%o0
 
449
        and %o0,%o1,%l2
 
450
        cmp %l1,%l2
 
451
        bge,a L204
 
452
        ldsb [%i1+4],%o5
 
453
        mov %i1,%l0
 
454
        mov %i0,%i1
 
455
        mov %l1,%l3
 
456
        mov %l2,%l1
 
457
        mov %l3,%l2
 
458
        ldsb [%i1+4],%o5
 
459
L204:
 
460
        cmp %o5,0
 
461
        bne,a L74
 
462
        ldsb [%l0+4],%l3
 
463
        call _icopy,0
 
464
        mov %l0,%o0
 
465
        b L201
 
466
        mov %o0,%i0
 
467
L74:
 
468
        cmp %l3,%o5
 
469
        bne L75
 
470
        cmp %l1,%l2
 
471
        call _cgeti,0
 
472
        add %l1,1,%o0
 
473
        mov %o0,%i0
 
474
        mov 0,%o2
 
475
        sll %l1,2,%o0
 
476
        add %i0,%o0,%o4
 
477
        add %o4,4,%o4
 
478
        add %l0,%o0,%o3
 
479
        sll %l2,2,%o0
 
480
        add %i1,%o0,%o1
 
481
        add %l2,-2,%o5
 
482
        sethi %hi(L113),%o0
 
483
        or %o0,%lo(L113),%g2
 
484
        add %o5,-1,%o0
 
485
L220:
 
486
        cmp %o0,15
 
487
        bgu L81
 
488
        sll %o0,2,%o0
 
489
        ld [%o0+%g2],%o0
 
490
        jmp %o0
 
491
        nop
 
492
L113:
 
493
        .word   L111
 
494
        .word   L109
 
495
        .word   L107
 
496
        .word   L105
 
497
        .word   L103
 
498
        .word   L101
 
499
        .word   L99
 
500
        .word   L97
 
501
        .word   L95
 
502
        .word   L93
 
503
        .word   L91
 
504
        .word   L89
 
505
        .word   L87
 
506
        .word   L85
 
507
        .word   L83
 
508
        .word   L81
 
509
L81:
 
510
        subcc %g0,%o2,%g0
 
511
        b L82
 
512
        add %o4,-4,%o4
 
513
L83:
 
514
        subcc %g0,%o2,%g0
 
515
        b L205
 
516
        add %o4,-4,%o4
 
517
L85:
 
518
        subcc %g0,%o2,%g0
 
519
        b L206
 
520
        add %o4,-4,%o4
 
521
L87:
 
522
        subcc %g0,%o2,%g0
 
523
        b L207
 
524
        add %o4,-4,%o4
 
525
L89:
 
526
        subcc %g0,%o2,%g0
 
527
        b L208
 
528
        add %o4,-4,%o4
 
529
L91:
 
530
        subcc %g0,%o2,%g0
 
531
        b L209
 
532
        add %o4,-4,%o4
 
533
L93:
 
534
        subcc %g0,%o2,%g0
 
535
        b L210
 
536
        add %o4,-4,%o4
 
537
L95:
 
538
        subcc %g0,%o2,%g0
 
539
        b L211
 
540
        add %o4,-4,%o4
 
541
L97:
 
542
        subcc %g0,%o2,%g0
 
543
        b L212
 
544
        add %o4,-4,%o4
 
545
L99:
 
546
        subcc %g0,%o2,%g0
 
547
        b L213
 
548
        add %o4,-4,%o4
 
549
L101:
 
550
        subcc %g0,%o2,%g0
 
551
        b L214
 
552
        add %o4,-4,%o4
 
553
L103:
 
554
        subcc %g0,%o2,%g0
 
555
        b L215
 
556
        add %o4,-4,%o4
 
557
L105:
 
558
        subcc %g0,%o2,%g0
 
559
        b L216
 
560
        add %o4,-4,%o4
 
561
L107:
 
562
        subcc %g0,%o2,%g0
 
563
        b L217
 
564
        add %o4,-4,%o4
 
565
L109:
 
566
        subcc %g0,%o2,%g0
 
567
        b L218
 
568
        add %o4,-4,%o4
 
569
L111:
 
570
        subcc %g0,%o2,%g0
 
571
        b L219
 
572
        add %o4,-4,%o4
 
573
L82:
 
574
        add %o3,-4,%o3
 
575
        add %o1,-4,%o1
 
576
        ld [%o3],%l4
 
577
        ld [%o1],%g3
 
578
        addxcc %l4,%g3,%o0
 
579
        st %o0,[%o4]
 
580
        add %o4,-4,%o4
 
581
L205:
 
582
        add %o3,-4,%o3
 
583
        add %o1,-4,%o1
 
584
        ld [%o3],%l4
 
585
        ld [%o1],%g3
 
586
        addxcc %l4,%g3,%o0
 
587
        st %o0,[%o4]
 
588
        add %o4,-4,%o4
 
589
L206:
 
590
        add %o3,-4,%o3
 
591
        add %o1,-4,%o1
 
592
        ld [%o3],%l4
 
593
        ld [%o1],%g3
 
594
        addxcc %l4,%g3,%o0
 
595
        st %o0,[%o4]
 
596
        add %o4,-4,%o4
 
597
L207:
 
598
        add %o3,-4,%o3
 
599
        add %o1,-4,%o1
 
600
        ld [%o3],%l4
 
601
        ld [%o1],%g3
 
602
        addxcc %l4,%g3,%o0
 
603
        st %o0,[%o4]
 
604
        add %o4,-4,%o4
 
605
L208:
 
606
        add %o3,-4,%o3
 
607
        add %o1,-4,%o1
 
608
        ld [%o3],%l4
 
609
        ld [%o1],%g3
 
610
        addxcc %l4,%g3,%o0
 
611
        st %o0,[%o4]
 
612
        add %o4,-4,%o4
 
613
L209:
 
614
        add %o3,-4,%o3
 
615
        add %o1,-4,%o1
 
616
        ld [%o3],%l4
 
617
        ld [%o1],%g3
 
618
        addxcc %l4,%g3,%o0
 
619
        st %o0,[%o4]
 
620
        add %o4,-4,%o4
 
621
L210:
 
622
        add %o3,-4,%o3
 
623
        add %o1,-4,%o1
 
624
        ld [%o3],%l4
 
625
        ld [%o1],%g3
 
626
        addxcc %l4,%g3,%o0
 
627
        st %o0,[%o4]
 
628
        add %o4,-4,%o4
 
629
L211:
 
630
        add %o3,-4,%o3
 
631
        add %o1,-4,%o1
 
632
        ld [%o3],%l4
 
633
        ld [%o1],%g3
 
634
        addxcc %l4,%g3,%o0
 
635
        st %o0,[%o4]
 
636
        add %o4,-4,%o4
 
637
L212:
 
638
        add %o3,-4,%o3
 
639
        add %o1,-4,%o1
 
640
        ld [%o3],%l4
 
641
        ld [%o1],%g3
 
642
        addxcc %l4,%g3,%o0
 
643
        st %o0,[%o4]
 
644
        add %o4,-4,%o4
 
645
L213:
 
646
        add %o3,-4,%o3
 
647
        add %o1,-4,%o1
 
648
        ld [%o3],%l4
 
649
        ld [%o1],%g3
 
650
        addxcc %l4,%g3,%o0
 
651
        st %o0,[%o4]
 
652
        add %o4,-4,%o4
 
653
L214:
 
654
        add %o3,-4,%o3
 
655
        add %o1,-4,%o1
 
656
        ld [%o3],%l4
 
657
        ld [%o1],%g3
 
658
        addxcc %l4,%g3,%o0
 
659
        st %o0,[%o4]
 
660
        add %o4,-4,%o4
 
661
L215:
 
662
        add %o3,-4,%o3
 
663
        add %o1,-4,%o1
 
664
        ld [%o3],%l4
 
665
        ld [%o1],%g3
 
666
        addxcc %l4,%g3,%o0
 
667
        st %o0,[%o4]
 
668
        add %o4,-4,%o4
 
669
L216:
 
670
        add %o3,-4,%o3
 
671
        add %o1,-4,%o1
 
672
        ld [%o3],%l4
 
673
        ld [%o1],%g3
 
674
        addxcc %l4,%g3,%o0
 
675
        st %o0,[%o4]
 
676
        add %o4,-4,%o4
 
677
L217:
 
678
        add %o3,-4,%o3
 
679
        add %o1,-4,%o1
 
680
        ld [%o3],%l4
 
681
        ld [%o1],%g3
 
682
        addxcc %l4,%g3,%o0
 
683
        st %o0,[%o4]
 
684
        add %o4,-4,%o4
 
685
L218:
 
686
        add %o3,-4,%o3
 
687
        add %o1,-4,%o1
 
688
        ld [%o3],%l4
 
689
        ld [%o1],%g3
 
690
        addxcc %l4,%g3,%o0
 
691
        st %o0,[%o4]
 
692
        add %o4,-4,%o4
 
693
L219:
 
694
        add %o3,-4,%o3
 
695
        add %o1,-4,%o1
 
696
        ld [%o3],%l4
 
697
        ld [%o1],%g3
 
698
        addxcc %l4,%g3,%o0
 
699
        st %o0,[%o4]
 
700
        addx %g0,%g0,%o2
 
701
        add %o5,-16,%o5
 
702
        cmp %o5,0
 
703
        bg,a L220
 
704
        add %o5,-1,%o0
 
705
        cmp %o2,0
 
706
        be L115
 
707
        add %l0,8,%o2
 
708
L116:
 
709
        add %o3,-4,%o3
 
710
        cmp %o3,%o2
 
711
        blu L117
 
712
        mov %o3,%o1
 
713
        ld [%o3],%o0
 
714
        cmp %o0,-1
 
715
        bne L118
 
716
        add %o4,-4,%o4
 
717
        b L116
 
718
        st %g0,[%o4]
 
719
L118:
 
720
        ld [%o1],%o0
 
721
        b L203
 
722
        add %o0,1,%o0
 
723
L122:
 
724
        add %o4,-4,%o4
 
725
        ld [%o1],%o0
 
726
L203:
 
727
        st %o0,[%o4]
 
728
        add %o3,-4,%o3
 
729
        cmp %o3,%o2
 
730
        bgeu L122
 
731
        mov %o3,%o1
 
732
        b L221
 
733
        ld [%i0],%o0
 
734
L117:
 
735
        mov 1,%o0
 
736
        st %o0,[%i0+8]
 
737
        ld [%l0+4],%o0
 
738
        add %o0,1,%o0
 
739
        b L201
 
740
        st %o0,[%i0+4]
 
741
L115:
 
742
        subcc %l1,%l2,%o2
 
743
        be,a L221
 
744
        ld [%i0],%o0
 
745
L128:
 
746
        add %o4,-4,%o4
 
747
        add %o3,-4,%o3
 
748
        ld [%o3],%o0
 
749
        addcc %o2,-1,%o2
 
750
        bne L128
 
751
        st %o0,[%o4]
 
752
        ld [%i0],%o0
 
753
L221:
 
754
        add %o0,-1,%o0
 
755
        st %o0,[%i0+4]
 
756
        ld [%l0+4],%o0
 
757
        st %o0,[%i0+8]
 
758
        add %i0,4,%i0
 
759
        sethi %hi(_avma),%o1
 
760
        ld [%o1+%lo(_avma)],%o0
 
761
        add %o0,4,%o0
 
762
        b L201
 
763
        st %o0,[%o1+%lo(_avma)]
 
764
L75:
 
765
        bne L131
 
766
        add %l0,8,%o3
 
767
        addcc %l1,-2,%o2
 
768
        be L140
 
769
        add %i1,8,%o1
 
770
        ld [%o3],%o4
 
771
L222:
 
772
        add %o3,4,%o3
 
773
        ld [%o1],%o0
 
774
        cmp %o0,%o4
 
775
        bgu L202
 
776
        add %o1,4,%o1
 
777
        cmp %o4,%o0
 
778
        bgu L131
 
779
        addcc %o2,-1,%o2
 
780
        bne,a L222
 
781
        ld [%o3],%o4
 
782
L140:
 
783
        sethi %hi(_gzero),%o0
 
784
        b L201
 
785
        ld [%o0+%lo(_gzero)],%i0
 
786
L202:
 
787
        mov %l0,%i0
 
788
        mov %i1,%l0
 
789
        mov %i0,%i1
 
790
        mov %o5,%l3
 
791
L131:
 
792
        call _cgeti,0
 
793
        mov %l1,%o0
 
794
        mov %o0,%i0
 
795
        mov 0,%o2
 
796
        sll %l1,2,%o0
 
797
        add %l0,%o0,%o3
 
798
        sll %l2,2,%o1
 
799
        add %i1,%o1,%o1
 
800
        add %i0,%o0,%o4
 
801
        add %l2,-2,%o5
 
802
        sethi %hi(L178),%o0
 
803
        or %o0,%lo(L178),%g2
 
804
        add %o5,-1,%o0
 
805
L238:
 
806
        cmp %o0,15
 
807
        bgu L146
 
808
        sll %o0,2,%o0
 
809
        ld [%o0+%g2],%o0
 
810
        jmp %o0
 
811
        nop
 
812
L178:
 
813
        .word   L176
 
814
        .word   L174
 
815
        .word   L172
 
816
        .word   L170
 
817
        .word   L168
 
818
        .word   L166
 
819
        .word   L164
 
820
        .word   L162
 
821
        .word   L160
 
822
        .word   L158
 
823
        .word   L156
 
824
        .word   L154
 
825
        .word   L152
 
826
        .word   L150
 
827
        .word   L148
 
828
        .word   L146
 
829
L146:
 
830
        subcc %g0,%o2,%g0
 
831
        b L147
 
832
        add %o4,-4,%o4
 
833
L148:
 
834
        subcc %g0,%o2,%g0
 
835
        b L223
 
836
        add %o4,-4,%o4
 
837
L150:
 
838
        subcc %g0,%o2,%g0
 
839
        b L224
 
840
        add %o4,-4,%o4
 
841
L152:
 
842
        subcc %g0,%o2,%g0
 
843
        b L225
 
844
        add %o4,-4,%o4
 
845
L154:
 
846
        subcc %g0,%o2,%g0
 
847
        b L226
 
848
        add %o4,-4,%o4
 
849
L156:
 
850
        subcc %g0,%o2,%g0
 
851
        b L227
 
852
        add %o4,-4,%o4
 
853
L158:
 
854
        subcc %g0,%o2,%g0
 
855
        b L228
 
856
        add %o4,-4,%o4
 
857
L160:
 
858
        subcc %g0,%o2,%g0
 
859
        b L229
 
860
        add %o4,-4,%o4
 
861
L162:
 
862
        subcc %g0,%o2,%g0
 
863
        b L230
 
864
        add %o4,-4,%o4
 
865
L164:
 
866
        subcc %g0,%o2,%g0
 
867
        b L231
 
868
        add %o4,-4,%o4
 
869
L166:
 
870
        subcc %g0,%o2,%g0
 
871
        b L232
 
872
        add %o4,-4,%o4
 
873
L168:
 
874
        subcc %g0,%o2,%g0
 
875
        b L233
 
876
        add %o4,-4,%o4
 
877
L170:
 
878
        subcc %g0,%o2,%g0
 
879
        b L234
 
880
        add %o4,-4,%o4
 
881
L172:
 
882
        subcc %g0,%o2,%g0
 
883
        b L235
 
884
        add %o4,-4,%o4
 
885
L174:
 
886
        subcc %g0,%o2,%g0
 
887
        b L236
 
888
        add %o4,-4,%o4
 
889
L176:
 
890
        subcc %g0,%o2,%g0
 
891
        b L237
 
892
        add %o4,-4,%o4
 
893
L147:
 
894
        add %o3,-4,%o3
 
895
        add %o1,-4,%o1
 
896
        ld [%o3],%l4
 
897
        ld [%o1],%g3
 
898
        subxcc %l4,%g3,%o0
 
899
        st %o0,[%o4]
 
900
        add %o4,-4,%o4
 
901
L223:
 
902
        add %o3,-4,%o3
 
903
        add %o1,-4,%o1
 
904
        ld [%o3],%l4
 
905
        ld [%o1],%g3
 
906
        subxcc %l4,%g3,%o0
 
907
        st %o0,[%o4]
 
908
        add %o4,-4,%o4
 
909
L224:
 
910
        add %o3,-4,%o3
 
911
        add %o1,-4,%o1
 
912
        ld [%o3],%l4
 
913
        ld [%o1],%g3
 
914
        subxcc %l4,%g3,%o0
 
915
        st %o0,[%o4]
 
916
        add %o4,-4,%o4
 
917
L225:
 
918
        add %o3,-4,%o3
 
919
        add %o1,-4,%o1
 
920
        ld [%o3],%l4
 
921
        ld [%o1],%g3
 
922
        subxcc %l4,%g3,%o0
 
923
        st %o0,[%o4]
 
924
        add %o4,-4,%o4
 
925
L226:
 
926
        add %o3,-4,%o3
 
927
        add %o1,-4,%o1
 
928
        ld [%o3],%l4
 
929
        ld [%o1],%g3
 
930
        subxcc %l4,%g3,%o0
 
931
        st %o0,[%o4]
 
932
        add %o4,-4,%o4
 
933
L227:
 
934
        add %o3,-4,%o3
 
935
        add %o1,-4,%o1
 
936
        ld [%o3],%l4
 
937
        ld [%o1],%g3
 
938
        subxcc %l4,%g3,%o0
 
939
        st %o0,[%o4]
 
940
        add %o4,-4,%o4
 
941
L228:
 
942
        add %o3,-4,%o3
 
943
        add %o1,-4,%o1
 
944
        ld [%o3],%l4
 
945
        ld [%o1],%g3
 
946
        subxcc %l4,%g3,%o0
 
947
        st %o0,[%o4]
 
948
        add %o4,-4,%o4
 
949
L229:
 
950
        add %o3,-4,%o3
 
951
        add %o1,-4,%o1
 
952
        ld [%o3],%l4
 
953
        ld [%o1],%g3
 
954
        subxcc %l4,%g3,%o0
 
955
        st %o0,[%o4]
 
956
        add %o4,-4,%o4
 
957
L230:
 
958
        add %o3,-4,%o3
 
959
        add %o1,-4,%o1
 
960
        ld [%o3],%l4
 
961
        ld [%o1],%g3
 
962
        subxcc %l4,%g3,%o0
 
963
        st %o0,[%o4]
 
964
        add %o4,-4,%o4
 
965
L231:
 
966
        add %o3,-4,%o3
 
967
        add %o1,-4,%o1
 
968
        ld [%o3],%l4
 
969
        ld [%o1],%g3
 
970
        subxcc %l4,%g3,%o0
 
971
        st %o0,[%o4]
 
972
        add %o4,-4,%o4
 
973
L232:
 
974
        add %o3,-4,%o3
 
975
        add %o1,-4,%o1
 
976
        ld [%o3],%l4
 
977
        ld [%o1],%g3
 
978
        subxcc %l4,%g3,%o0
 
979
        st %o0,[%o4]
 
980
        add %o4,-4,%o4
 
981
L233:
 
982
        add %o3,-4,%o3
 
983
        add %o1,-4,%o1
 
984
        ld [%o3],%l4
 
985
        ld [%o1],%g3
 
986
        subxcc %l4,%g3,%o0
 
987
        st %o0,[%o4]
 
988
        add %o4,-4,%o4
 
989
L234:
 
990
        add %o3,-4,%o3
 
991
        add %o1,-4,%o1
 
992
        ld [%o3],%l4
 
993
        ld [%o1],%g3
 
994
        subxcc %l4,%g3,%o0
 
995
        st %o0,[%o4]
 
996
        add %o4,-4,%o4
 
997
L235:
 
998
        add %o3,-4,%o3
 
999
        add %o1,-4,%o1
 
1000
        ld [%o3],%l4
 
1001
        ld [%o1],%g3
 
1002
        subxcc %l4,%g3,%o0
 
1003
        st %o0,[%o4]
 
1004
        add %o4,-4,%o4
 
1005
L236:
 
1006
        add %o3,-4,%o3
 
1007
        add %o1,-4,%o1
 
1008
        ld [%o3],%l4
 
1009
        ld [%o1],%g3
 
1010
        subxcc %l4,%g3,%o0
 
1011
        st %o0,[%o4]
 
1012
        add %o4,-4,%o4
 
1013
L237:
 
1014
        add %o3,-4,%o3
 
1015
        add %o1,-4,%o1
 
1016
        ld [%o3],%l4
 
1017
        ld [%o1],%g3
 
1018
        subxcc %l4,%g3,%o0
 
1019
        st %o0,[%o4]
 
1020
        addx %g0,%g0,%o2
 
1021
        add %o5,-16,%o5
 
1022
        cmp %o5,0
 
1023
        bg,a L238
 
1024
        add %o5,-1,%o0
 
1025
        cmp %o2,0
 
1026
        be,a L180
 
1027
        subcc %l1,%l2,%o5
 
1028
        add %o3,-4,%o3
 
1029
        ld [%o3],%o0
 
1030
        cmp %o0,0
 
1031
        bne L239
 
1032
        add %l0,8,%o1
 
1033
        mov -1,%o1
 
1034
        add %o4,-4,%o4
 
1035
L240:
 
1036
        st %o1,[%o4]
 
1037
        add %o3,-4,%o3
 
1038
        ld [%o3],%o0
 
1039
        cmp %o0,0
 
1040
        be,a L240
 
1041
        add %o4,-4,%o4
 
1042
        add %l0,8,%o1
 
1043
L239:
 
1044
        cmp %o3,%o1
 
1045
        blu L190
 
1046
        add %o0,-1,%o0
 
1047
        add %o4,-4,%o4
 
1048
        st %o0,[%o4]
 
1049
        add %o3,-4,%o3
 
1050
        cmp %o3,%o1
 
1051
        blu L190
 
1052
        mov %o3,%o0
 
1053
L188:
 
1054
        add %o4,-4,%o4
 
1055
        ld [%o0],%o0
 
1056
        st %o0,[%o4]
 
1057
        add %o3,-4,%o3
 
1058
        cmp %o3,%o1
 
1059
        bgeu L188
 
1060
        mov %o3,%o0
 
1061
        b L241
 
1062
        ld [%i0+8],%o0
 
1063
L180:
 
1064
        be,a L241
 
1065
        ld [%i0+8],%o0
 
1066
L193:
 
1067
        add %o4,-4,%o4
 
1068
        add %o3,-4,%o3
 
1069
        ld [%o3],%o0
 
1070
        addcc %o5,-1,%o5
 
1071
        bne L193
 
1072
        st %o0,[%o4]
 
1073
L190:
 
1074
        ld [%i0+8],%o0
 
1075
L241:
 
1076
        cmp %o0,0
 
1077
        be,a L195
 
1078
        ld [%i0+12],%o0
 
1079
        ld [%l0+4],%o0
 
1080
        b L201
 
1081
        st %o0,[%i0+4]
 
1082
L195:
 
1083
        cmp %o0,0
 
1084
        bne L198
 
1085
        add %i0,12,%o4
 
1086
        add %o4,4,%o4
 
1087
L242:
 
1088
        ld [%o4],%o0
 
1089
        cmp %o0,0
 
1090
        be,a L242
 
1091
        add %o4,4,%o4
 
1092
L198:
 
1093
        add %o4,-8,%o4
 
1094
        sub %o4,%i0,%o5
 
1095
        sra %o5,2,%o5
 
1096
        ld [%i0],%o1
 
1097
        sub %o1,%o5,%o1
 
1098
        st %o1,[%o4]
 
1099
        st %o1,[%o4+4]
 
1100
        mov %o4,%i0
 
1101
        sethi %hi(-16777216),%o0
 
1102
        andn %o1,%o0,%o0
 
1103
        sll %l3,24,%o1
 
1104
        add %o0,%o1,%o0
 
1105
        st %o0,[%i0+4]
 
1106
        sethi %hi(_avma),%o2
 
1107
        sll %o5,2,%o0
 
1108
        ld [%o2+%lo(_avma)],%o1
 
1109
        add %o0,%o1,%o0
 
1110
        st %o0,[%o2+%lo(_avma)]
 
1111
L201:
 
1112
        ret
 
1113
        restore
 
1114
        .align 4
 
1115
        .global _mulss
 
1116
        .proc   0104
 
1117
_mulss:
 
1118
        !#PROLOGUE# 0
 
1119
        save %sp,-104,%sp
 
1120
        !#PROLOGUE# 1
 
1121
        orcc %i0,%g0,%o0
 
1122
        be L245
 
1123
        cmp %i1,0
 
1124
        bne L244
 
1125
        cmp %o0,0
 
1126
L245:
 
1127
        sethi %hi(_gzero),%o0
 
1128
        b L253
 
1129
        ld [%o0+%lo(_gzero)],%i0
 
1130
L244:
 
1131
        bge L246
 
1132
        mov 1,%l0
 
1133
        subcc %g0,%o0,%o0
 
1134
        bpos L246
 
1135
        mov -1,%l0
 
1136
        call _stoi,0
 
1137
        nop
 
1138
        mov %o0,%o1
 
1139
        b L254
 
1140
        mov %i1,%o0
 
1141
L246:
 
1142
        cmp %i1,0
 
1143
        bge L255
 
1144
        mov %o0,%l1
 
1145
        subcc %g0,%i1,%i1
 
1146
        bpos L255
 
1147
        sub %g0,%l0,%l0
 
1148
        cmp %l0,0
 
1149
        bg L250
 
1150
        mov %o0,%o1
 
1151
        sub %g0,%o0,%o1
 
1152
L250:
 
1153
        mov %o1,%o0
 
1154
        sethi %hi(_ABS_MOST_NEGS),%o1
 
1155
        or %o1,%lo(_ABS_MOST_NEGS),%o1
 
1156
L254:
 
1157
        call _mulsi,0
 
1158
        nop
 
1159
        b L253
 
1160
        mov %o0,%i0
 
1161
L255:
 
1162
         
 
1163
        or      %l1,%i1,%o4      
 
1164
        mov     %l1,%y
 
1165
        andncc  %o4,0xfff,%g0
 
1166
        be      2f
 
1167
        andcc   %g0,%g0,%o4
 
1168
        mulscc  %o4,%i1,%o4
 
1169
        mulscc  %o4,%i1,%o4
 
1170
        mulscc  %o4,%i1,%o4
 
1171
        mulscc  %o4,%i1,%o4
 
1172
        mulscc  %o4,%i1,%o4
 
1173
        mulscc  %o4,%i1,%o4
 
1174
        mulscc  %o4,%i1,%o4
 
1175
        mulscc  %o4,%i1,%o4
 
1176
        mulscc  %o4,%i1,%o4
 
1177
        mulscc  %o4,%i1,%o4
 
1178
        mulscc  %o4,%i1,%o4
 
1179
        mulscc  %o4,%i1,%o4
 
1180
        mulscc  %o4,%i1,%o4
 
1181
        mulscc  %o4,%i1,%o4
 
1182
        mulscc  %o4,%i1,%o4
 
1183
        mulscc  %o4,%i1,%o4
 
1184
        mulscc  %o4,%i1,%o4
 
1185
        mulscc  %o4,%i1,%o4
 
1186
        mulscc  %o4,%i1,%o4
 
1187
        mulscc  %o4,%i1,%o4
 
1188
        mulscc  %o4,%i1,%o4
 
1189
        mulscc  %o4,%i1,%o4
 
1190
        mulscc  %o4,%i1,%o4
 
1191
        mulscc  %o4,%i1,%o4
 
1192
        mulscc  %o4,%i1,%o4
 
1193
        mulscc  %o4,%i1,%o4
 
1194
        mulscc  %o4,%i1,%o4
 
1195
        mulscc  %o4,%i1,%o4
 
1196
        mulscc  %o4,%i1,%o4
 
1197
        mulscc  %o4,%i1,%o4
 
1198
        mulscc  %o4,%i1,%o4
 
1199
        mulscc  %o4,%i1,%o4
 
1200
        mulscc  %o4,%g0,%o4
 
1201
        tst     %i1
 
1202
        bl,a    1f
 
1203
        add     %o4,%l1,%o4
 
1204
1:      mov     %o4,%o2
 
1205
        b       3f 
 
1206
        rd      %y,%l1
 
1207
2:      clr     %o2
 
1208
        mulscc  %o4,%i1,%o4
 
1209
        mulscc  %o4,%i1,%o4
 
1210
        mulscc  %o4,%i1,%o4
 
1211
        mulscc  %o4,%i1,%o4
 
1212
        mulscc  %o4,%i1,%o4
 
1213
        mulscc  %o4,%i1,%o4
 
1214
        mulscc  %o4,%i1,%o4
 
1215
        mulscc  %o4,%i1,%o4
 
1216
        mulscc  %o4,%i1,%o4
 
1217
        mulscc  %o4,%i1,%o4
 
1218
        mulscc  %o4,%i1,%o4
 
1219
        mulscc  %o4,%i1,%o4
 
1220
        mulscc  %o4,%g0,%o4
 
1221
        rd      %y,%o5
 
1222
        sll     %o4,12,%o4
 
1223
        srl     %o5,20,%o5
 
1224
        or      %o5,%o4,%l1
 
1225
3:       
 
1226
 
 
1227
        orcc %o2,%g0,%i1
 
1228
        be L251
 
1229
        nop
 
1230
        call _cgeti,0
 
1231
        mov 4,%o0
 
1232
        mov %o0,%i0
 
1233
        st %i1,[%i0+8]
 
1234
        b L252
 
1235
        st %l1,[%i0+12]
 
1236
L251:
 
1237
        call _cgeti,0
 
1238
        mov 3,%o0
 
1239
        mov %o0,%i0
 
1240
        st %l1,[%i0+8]
 
1241
L252:
 
1242
        ld [%i0],%o0
 
1243
        sethi %hi(-16777216),%o1
 
1244
        andn %o0,%o1,%o1
 
1245
        sll %l0,24,%o0
 
1246
        add %o1,%o0,%o1
 
1247
        st %o1,[%i0+4]
 
1248
L253:
 
1249
        ret
 
1250
        restore
 
1251
        .align 4
 
1252
        .global _mulii
 
1253
        .proc   0104
 
1254
_mulii:
 
1255
        !#PROLOGUE# 0
 
1256
        save %sp,-104,%sp
 
1257
        !#PROLOGUE# 1
 
1258
        mov %i0,%l4
 
1259
        ld [%l4+4],%o0
 
1260
        sethi %hi(65535),%o1
 
1261
        or %o1,%lo(65535),%o1
 
1262
        and %o0,%o1,%l0
 
1263
        ld [%i1+4],%o2
 
1264
        sra %o0,24,%l2
 
1265
        cmp %l2,0
 
1266
        be L276
 
1267
        and %o2,%o1,%l3
 
1268
        ldsb [%i1+4],%o0
 
1269
        cmp %o0,0
 
1270
        bne L258
 
1271
        nop
 
1272
L276:
 
1273
        sethi %hi(_gzero),%o0
 
1274
        b L275
 
1275
        ld [%o0+%lo(_gzero)],%i0
 
1276
L258:
 
1277
        bl,a L259
 
1278
        sub %g0,%l2,%l2
 
1279
L259:
 
1280
        cmp %l0,%l3
 
1281
        ble L260
 
1282
        sethi %hi(65535),%o0
 
1283
        mov %l4,%i0
 
1284
        mov %i1,%l4
 
1285
        mov %i0,%i1
 
1286
        mov %l0,%l1
 
1287
        mov %l3,%l0
 
1288
        mov %l1,%l3
 
1289
L260:
 
1290
        add %l0,%l3,%l1
 
1291
        add %l1,-2,%l1
 
1292
        or %o0,%lo(65535),%o0
 
1293
        cmp %l1,%o0
 
1294
        ble L261
 
1295
        nop
 
1296
        call _err,0
 
1297
        mov 17,%o0
 
1298
L261:
 
1299
        call _cgeti,0
 
1300
        mov %l1,%o0
 
1301
        mov %o0,%i0
 
1302
        ld [%i0],%o1
 
1303
        sethi %hi(-16777216),%o0
 
1304
        andn %o1,%o0,%o0
 
1305
        sll %l2,24,%o1
 
1306
        add %o0,%o1,%o0
 
1307
        st %o0,[%i0+4]
 
1308
        sll %l0,2,%o0
 
1309
        add %l4,%o0,%l2
 
1310
        add %l2,-4,%l2
 
1311
        ld [%l2],%o2
 
1312
        mov 0,%o3
 
1313
        sll %l3,2,%o0
 
1314
        add %i1,%o0,%o7
 
1315
        sll %l1,2,%o0
 
1316
        addcc %l3,-2,%g2
 
1317
        be L263
 
1318
        add %i0,%o0,%g4
 
1319
L264:
 
1320
        add %g4,-4,%g4
 
1321
        mov %o3,%o0
 
1322
        add %o7,-4,%o7
 
1323
        ld [%o7],%o1
 
1324
        mov %o2,%l5
 
1325
         
 
1326
        or      %l5,%o1,%o4      
 
1327
        mov     %l5,%y
 
1328
        andncc  %o4,0xfff,%g0
 
1329
        be      2f
 
1330
        andcc   %g0,%g0,%o4
 
1331
        mulscc  %o4,%o1,%o4
 
1332
        mulscc  %o4,%o1,%o4
 
1333
        mulscc  %o4,%o1,%o4
 
1334
        mulscc  %o4,%o1,%o4
 
1335
        mulscc  %o4,%o1,%o4
 
1336
        mulscc  %o4,%o1,%o4
 
1337
        mulscc  %o4,%o1,%o4
 
1338
        mulscc  %o4,%o1,%o4
 
1339
        mulscc  %o4,%o1,%o4
 
1340
        mulscc  %o4,%o1,%o4
 
1341
        mulscc  %o4,%o1,%o4
 
1342
        mulscc  %o4,%o1,%o4
 
1343
        mulscc  %o4,%o1,%o4
 
1344
        mulscc  %o4,%o1,%o4
 
1345
        mulscc  %o4,%o1,%o4
 
1346
        mulscc  %o4,%o1,%o4
 
1347
        mulscc  %o4,%o1,%o4
 
1348
        mulscc  %o4,%o1,%o4
 
1349
        mulscc  %o4,%o1,%o4
 
1350
        mulscc  %o4,%o1,%o4
 
1351
        mulscc  %o4,%o1,%o4
 
1352
        mulscc  %o4,%o1,%o4
 
1353
        mulscc  %o4,%o1,%o4
 
1354
        mulscc  %o4,%o1,%o4
 
1355
        mulscc  %o4,%o1,%o4
 
1356
        mulscc  %o4,%o1,%o4
 
1357
        mulscc  %o4,%o1,%o4
 
1358
        mulscc  %o4,%o1,%o4
 
1359
        mulscc  %o4,%o1,%o4
 
1360
        mulscc  %o4,%o1,%o4
 
1361
        mulscc  %o4,%o1,%o4
 
1362
        mulscc  %o4,%o1,%o4
 
1363
        mulscc  %o4,%g0,%o4
 
1364
        tst     %o1
 
1365
        bl,a    1f
 
1366
        add     %o4,%l5,%o4
 
1367
1:      mov     %o4,%o3
 
1368
        b       3f 
 
1369
        rd      %y,%l5
 
1370
2:      clr     %o3
 
1371
        mulscc  %o4,%o1,%o4
 
1372
        mulscc  %o4,%o1,%o4
 
1373
        mulscc  %o4,%o1,%o4
 
1374
        mulscc  %o4,%o1,%o4
 
1375
        mulscc  %o4,%o1,%o4
 
1376
        mulscc  %o4,%o1,%o4
 
1377
        mulscc  %o4,%o1,%o4
 
1378
        mulscc  %o4,%o1,%o4
 
1379
        mulscc  %o4,%o1,%o4
 
1380
        mulscc  %o4,%o1,%o4
 
1381
        mulscc  %o4,%o1,%o4
 
1382
        mulscc  %o4,%o1,%o4
 
1383
        mulscc  %o4,%g0,%o4
 
1384
        rd      %y,%o5
 
1385
        sll     %o4,12,%o4
 
1386
        srl     %o5,20,%o5
 
1387
        or      %o5,%o4,%l5
 
1388
3:       
 
1389
 
 
1390
        mov %l5,%o1
 
1391
        addcc %o0,%o1,%l5
 
1392
        addx %o3,%g0,%o3
 
1393
        addcc %g2,-1,%g2
 
1394
        bne L264
 
1395
        st %l5,[%g4]
 
1396
L263:
 
1397
        st %o3,[%g4-4]
 
1398
        sll %l1,2,%o0
 
1399
        add %i0,%o0,%g4
 
1400
        sll %l3,2,%o0
 
1401
        add %i1,%o0,%i1
 
1402
        add %l0,-3,%l0
 
1403
        cmp %l0,0
 
1404
        ble L267
 
1405
        add %l3,-1,%l3
 
1406
L268:
 
1407
        add %l2,-4,%l2
 
1408
        ld [%l2],%g1
 
1409
        mov %i1,%o7
 
1410
        add %g4,-4,%o2
 
1411
        mov %o2,%g4
 
1412
        addcc %l3,-1,%g2
 
1413
        be L270
 
1414
        mov 0,%g3
 
1415
L271:
 
1416
        add %o7,-4,%o7
 
1417
        ld [%o7],%o0
 
1418
        mov %o0,%o1
 
1419
         
 
1420
        or      %o1,%g1,%o4      
 
1421
        mov     %o1,%y
 
1422
        andncc  %o4,0xfff,%g0
 
1423
        be      2f
 
1424
        andcc   %g0,%g0,%o4
 
1425
        mulscc  %o4,%g1,%o4
 
1426
        mulscc  %o4,%g1,%o4
 
1427
        mulscc  %o4,%g1,%o4
 
1428
        mulscc  %o4,%g1,%o4
 
1429
        mulscc  %o4,%g1,%o4
 
1430
        mulscc  %o4,%g1,%o4
 
1431
        mulscc  %o4,%g1,%o4
 
1432
        mulscc  %o4,%g1,%o4
 
1433
        mulscc  %o4,%g1,%o4
 
1434
        mulscc  %o4,%g1,%o4
 
1435
        mulscc  %o4,%g1,%o4
 
1436
        mulscc  %o4,%g1,%o4
 
1437
        mulscc  %o4,%g1,%o4
 
1438
        mulscc  %o4,%g1,%o4
 
1439
        mulscc  %o4,%g1,%o4
 
1440
        mulscc  %o4,%g1,%o4
 
1441
        mulscc  %o4,%g1,%o4
 
1442
        mulscc  %o4,%g1,%o4
 
1443
        mulscc  %o4,%g1,%o4
 
1444
        mulscc  %o4,%g1,%o4
 
1445
        mulscc  %o4,%g1,%o4
 
1446
        mulscc  %o4,%g1,%o4
 
1447
        mulscc  %o4,%g1,%o4
 
1448
        mulscc  %o4,%g1,%o4
 
1449
        mulscc  %o4,%g1,%o4
 
1450
        mulscc  %o4,%g1,%o4
 
1451
        mulscc  %o4,%g1,%o4
 
1452
        mulscc  %o4,%g1,%o4
 
1453
        mulscc  %o4,%g1,%o4
 
1454
        mulscc  %o4,%g1,%o4
 
1455
        mulscc  %o4,%g1,%o4
 
1456
        mulscc  %o4,%g1,%o4
 
1457
        mulscc  %o4,%g0,%o4
 
1458
        tst     %g1
 
1459
        bl,a    1f
 
1460
        add     %o4,%o1,%o4
 
1461
1:      mov     %o4,%o3
 
1462
        b       3f 
 
1463
        rd      %y,%o1
 
1464
2:      clr     %o3
 
1465
        mulscc  %o4,%g1,%o4
 
1466
        mulscc  %o4,%g1,%o4
 
1467
        mulscc  %o4,%g1,%o4
 
1468
        mulscc  %o4,%g1,%o4
 
1469
        mulscc  %o4,%g1,%o4
 
1470
        mulscc  %o4,%g1,%o4
 
1471
        mulscc  %o4,%g1,%o4
 
1472
        mulscc  %o4,%g1,%o4
 
1473
        mulscc  %o4,%g1,%o4
 
1474
        mulscc  %o4,%g1,%o4
 
1475
        mulscc  %o4,%g1,%o4
 
1476
        mulscc  %o4,%g1,%o4
 
1477
        mulscc  %o4,%g0,%o4
 
1478
        rd      %y,%o5
 
1479
        sll     %o4,12,%o4
 
1480
        srl     %o5,20,%o5
 
1481
        or      %o5,%o4,%o1
 
1482
3:       
 
1483
 
 
1484
        add %o2,-4,%o2
 
1485
        ld [%o2],%o0
 
1486
        addcc %o1,%o0,%o0
 
1487
        addx %o3,%g0,%o3
 
1488
        addcc %o0,%g3,%l5
 
1489
        addx %o3,%g0,%o3
 
1490
        st %l5,[%o2]
 
1491
        addcc %g2,-1,%g2
 
1492
        bne L271
 
1493
        mov %o3,%g3
 
1494
L270:
 
1495
        add %l0,-1,%l0
 
1496
        cmp %l0,0
 
1497
        bg L268
 
1498
        st %o3,[%o2-4]
 
1499
L267:
 
1500
        ld [%i0+8],%o0
 
1501
        cmp %o0,0
 
1502
        bne L275
 
1503
        sethi %hi(_avma),%o1
 
1504
        ld [%i0+4],%o0
 
1505
        add %o0,-1,%o0
 
1506
        st %o0,[%i0+8]
 
1507
        ld [%i0],%o0
 
1508
        add %o0,-1,%o0
 
1509
        st %o0,[%i0+4]
 
1510
        add %i0,4,%i0
 
1511
        ld [%o1+%lo(_avma)],%o0
 
1512
        add %o0,4,%o0
 
1513
        st %o0,[%o1+%lo(_avma)]
 
1514
L275:
 
1515
        ret
 
1516
        restore
 
1517
.data
 
1518
        .align 8
 
1519
LC0:
 
1520
        .word   0x3fd34413
 
1521
        .word   0x55475a32
 
1522
        .align 8
 
1523
LC1:
 
1524
        .word   0x3ff00000
 
1525
        .word   0x0
 
1526
.text
 
1527
        .align 4
 
1528
        .global _confrac
 
1529
        .proc   0104
 
1530
_confrac:
 
1531
        !#PROLOGUE# 0
 
1532
        save %sp,-112,%sp
 
1533
        !#PROLOGUE# 1
 
1534
        ld [%i0],%o1
 
1535
        sethi %hi(65535),%o0
 
1536
        or %o0,%lo(65535),%o0
 
1537
        and %o1,%o0,%l2
 
1538
        ld [%i0+4],%o0
 
1539
        sethi %hi(-16777216),%o1
 
1540
        andn %o0,%o1,%o1
 
1541
        sethi %hi(8388607),%o0
 
1542
        or %o0,%lo(8388607),%o0
 
1543
        sub %o0,%o1,%l0
 
1544
        sethi %hi(_avma),%o0
 
1545
        ld [%o0+%lo(_avma)],%l5
 
1546
        add %l2,-2,%l4
 
1547
        sll %l4,5,%l4
 
1548
        add %l4,%l0,%l4
 
1549
        add %l4,63,%l3
 
1550
        sra %l3,5,%l3
 
1551
        call _cgeti,0
 
1552
        mov %l3,%o0
 
1553
        sra %l0,5,%o1
 
1554
        mov 0,%g2
 
1555
        cmp %g2,%o1
 
1556
        bge L279
 
1557
        mov %o0,%l1
 
1558
L281:
 
1559
        sll %g2,2,%o0
 
1560
        add %g2,1,%g2
 
1561
        cmp %g2,%o1
 
1562
        bl L281
 
1563
        st %g0,[%l1+%o0]
 
1564
L279:
 
1565
        andcc %l0,31,%l0
 
1566
        bne L283
 
1567
        mov 2,%g3
 
1568
        cmp %g3,%l2
 
1569
        bge L305
 
1570
        sll %l3,2,%o0
 
1571
L287:
 
1572
        sll %g2,2,%o0
 
1573
        sll %g3,2,%o1
 
1574
        ld [%i0+%o1],%o1
 
1575
        st %o1,[%l1+%o0]
 
1576
        add %g3,1,%g3
 
1577
        cmp %g3,%l2
 
1578
        bl L287
 
1579
        add %g2,1,%g2
 
1580
        b L305
 
1581
        sll %l3,2,%o0
 
1582
L283:
 
1583
        cmp %g3,%l2
 
1584
        bge L291
 
1585
        mov 0,%o3
 
1586
        mov 32,%o0
 
1587
        sub %o0,%l0,%o4
 
1588
L293:
 
1589
        sll %g2,2,%o1
 
1590
        sll %g3,2,%o0
 
1591
        ld [%i0+%o0],%o2
 
1592
        add %g2,1,%g2
 
1593
        srl %o2,%l0,%o0
 
1594
        add %o0,%o3,%o0
 
1595
        st %o0,[%l1+%o1]
 
1596
        add %g3,1,%g3
 
1597
        cmp %g3,%l2
 
1598
        bl L293
 
1599
        sll %o2,%o4,%o3
 
1600
L291:
 
1601
        sll %l3,2,%o0
 
1602
        add %o0,%l1,%o0
 
1603
        st %o3,[%o0-8]
 
1604
        sll %l3,2,%o0
 
1605
L305:
 
1606
        add %o0,%l1,%o0
 
1607
        st %g0,[%o0-4]
 
1608
        st %l4,[%fp-12]
 
1609
        ld [%fp-12],%f6
 
1610
        fitod %f6,%f2
 
1611
        sethi %hi(LC0),%l6
 
1612
        ldd [%l6+%lo(LC0)],%f4
 
1613
        fmuld %f2,%f4,%f2
 
1614
        sethi %hi(LC1),%l6
 
1615
        ldd [%l6+%lo(LC1)],%f4
 
1616
        faddd %f2,%f4,%f2
 
1617
        fdtoi %f2,%f2
 
1618
        st %f2,[%fp-12]
 
1619
        ld [%fp-12],%l0
 
1620
        add %l0,17,%l2
 
1621
        mov %l2,%o0
 
1622
        call .div,0
 
1623
        mov 9,%o1
 
1624
        call _cgeti,0
 
1625
        mov %o0,%l2
 
1626
        mov %o0,%i0
 
1627
        mov 1,%g3
 
1628
        cmp %g3,%l2
 
1629
        bge L296
 
1630
        st %l0,[%i0]
 
1631
L298:
 
1632
        addcc %l3,-1,%g2
 
1633
        bneg L300
 
1634
        mov 0,%o3
 
1635
        sethi %hi(1000000000),%o0
 
1636
        or %o0,%lo(1000000000),%o7
 
1637
L302:
 
1638
        sll %g2,2,%o1
 
1639
        mov %o3,%o2
 
1640
        ld [%l1+%o1],%o0
 
1641
         
 
1642
        or      %o0,%o7,%o4      
 
1643
        mov     %o0,%y
 
1644
        andncc  %o4,0xfff,%g0
 
1645
        be      2f
 
1646
        andcc   %g0,%g0,%o4
 
1647
        mulscc  %o4,%o7,%o4
 
1648
        mulscc  %o4,%o7,%o4
 
1649
        mulscc  %o4,%o7,%o4
 
1650
        mulscc  %o4,%o7,%o4
 
1651
        mulscc  %o4,%o7,%o4
 
1652
        mulscc  %o4,%o7,%o4
 
1653
        mulscc  %o4,%o7,%o4
 
1654
        mulscc  %o4,%o7,%o4
 
1655
        mulscc  %o4,%o7,%o4
 
1656
        mulscc  %o4,%o7,%o4
 
1657
        mulscc  %o4,%o7,%o4
 
1658
        mulscc  %o4,%o7,%o4
 
1659
        mulscc  %o4,%o7,%o4
 
1660
        mulscc  %o4,%o7,%o4
 
1661
        mulscc  %o4,%o7,%o4
 
1662
        mulscc  %o4,%o7,%o4
 
1663
        mulscc  %o4,%o7,%o4
 
1664
        mulscc  %o4,%o7,%o4
 
1665
        mulscc  %o4,%o7,%o4
 
1666
        mulscc  %o4,%o7,%o4
 
1667
        mulscc  %o4,%o7,%o4
 
1668
        mulscc  %o4,%o7,%o4
 
1669
        mulscc  %o4,%o7,%o4
 
1670
        mulscc  %o4,%o7,%o4
 
1671
        mulscc  %o4,%o7,%o4
 
1672
        mulscc  %o4,%o7,%o4
 
1673
        mulscc  %o4,%o7,%o4
 
1674
        mulscc  %o4,%o7,%o4
 
1675
        mulscc  %o4,%o7,%o4
 
1676
        mulscc  %o4,%o7,%o4
 
1677
        mulscc  %o4,%o7,%o4
 
1678
        mulscc  %o4,%o7,%o4
 
1679
        mulscc  %o4,%g0,%o4
 
1680
        tst     %o7
 
1681
        bl,a    1f
 
1682
        add     %o4,%o0,%o4
 
1683
1:      mov     %o4,%o3
 
1684
        b       3f 
 
1685
        rd      %y,%o0
 
1686
2:      clr     %o3
 
1687
        mulscc  %o4,%o7,%o4
 
1688
        mulscc  %o4,%o7,%o4
 
1689
        mulscc  %o4,%o7,%o4
 
1690
        mulscc  %o4,%o7,%o4
 
1691
        mulscc  %o4,%o7,%o4
 
1692
        mulscc  %o4,%o7,%o4
 
1693
        mulscc  %o4,%o7,%o4
 
1694
        mulscc  %o4,%o7,%o4
 
1695
        mulscc  %o4,%o7,%o4
 
1696
        mulscc  %o4,%o7,%o4
 
1697
        mulscc  %o4,%o7,%o4
 
1698
        mulscc  %o4,%o7,%o4
 
1699
        mulscc  %o4,%g0,%o4
 
1700
        rd      %y,%o5
 
1701
        sll     %o4,12,%o4
 
1702
        srl     %o5,20,%o5
 
1703
        or      %o5,%o4,%o0
 
1704
3:       
 
1705
 
 
1706
        addcc %o2,%o0,%l6
 
1707
        addx %o3,%g0,%o3
 
1708
        addcc %g2,-1,%g2
 
1709
        bpos L302
 
1710
        st %l6,[%l1+%o1]
 
1711
L300:
 
1712
        sll %g3,2,%o0
 
1713
        add %g3,1,%g3
 
1714
        cmp %g3,%l2
 
1715
        bl L298
 
1716
        st %o3,[%i0+%o0]
 
1717
L296:
 
1718
        sethi %hi(_avma),%o0
 
1719
        st %l5,[%o0+%lo(_avma)]
 
1720
        ret
 
1721
        restore
 
1722
        .align 4
 
1723
        .global _divss
 
1724
        .proc   0104
 
1725
_divss:
 
1726
        !#PROLOGUE# 0
 
1727
        save %sp,-104,%sp
 
1728
        !#PROLOGUE# 1
 
1729
        cmp %i1,0
 
1730
        bne L315
 
1731
        sethi %hi(-2147483648),%o0
 
1732
        call _err,0
 
1733
        mov 23,%o0
 
1734
        sethi %hi(-2147483648),%o0
 
1735
L315:
 
1736
        cmp %i0,%o0
 
1737
        bne L308
 
1738
        sethi %hi(_hiremainder),%o0
 
1739
        call _stoi,0
 
1740
        mov %i0,%o0
 
1741
        call _divis,0
 
1742
        mov %i1,%o1
 
1743
        b L316
 
1744
        mov %o0,%i0
 
1745
L308:
 
1746
        st %g0,[%o0+%lo(_hiremainder)]
 
1747
        cmp %i0,0
 
1748
        bge L309
 
1749
        mov %i0,%o0
 
1750
        sub %g0,%i0,%o0
 
1751
L309:
 
1752
        cmp %i1,0
 
1753
        bge L310
 
1754
        mov %i1,%o1
 
1755
        sub %g0,%i1,%o1
 
1756
L310:
 
1757
        sethi %hi(_hiremainder),%l0
 
1758
        call _divul3,0
 
1759
        or %l0,%lo(_hiremainder),%o2
 
1760
        cmp %i1,0
 
1761
        bge L311
 
1762
        mov %o0,%o1
 
1763
        ld [%l0+%lo(_hiremainder)],%o0
 
1764
        sub %g0,%o0,%o0
 
1765
        st %o0,[%l0+%lo(_hiremainder)]
 
1766
        sub %g0,%o1,%o1
 
1767
L311:
 
1768
        cmp %i0,0
 
1769
        bl,a L312
 
1770
        sub %g0,%o1,%o1
 
1771
L312:
 
1772
        call _stoi,0
 
1773
        mov %o1,%o0
 
1774
        mov %o0,%i0
 
1775
L316:
 
1776
        ret
 
1777
        restore
 
1778
        .align 4
 
1779
        .global _modss
 
1780
        .proc   0104
 
1781
_modss:
 
1782
        !#PROLOGUE# 0
 
1783
        save %sp,-112,%sp
 
1784
        !#PROLOGUE# 1
 
1785
        cmp %i1,0
 
1786
        bne L327
 
1787
        sethi %hi(-2147483648),%o0
 
1788
        call _err,0
 
1789
        mov 38,%o0
 
1790
        sethi %hi(-2147483648),%o0
 
1791
L327:
 
1792
        cmp %i0,%o0
 
1793
        bne L319
 
1794
        mov %i0,%o0
 
1795
        call _stoi,0
 
1796
        mov %i0,%o0
 
1797
        call _modis,0
 
1798
        mov %i1,%o1
 
1799
        b L325
 
1800
        mov %o0,%i0
 
1801
L319:
 
1802
        cmp %o0,0
 
1803
        bge L320
 
1804
        st %g0,[%fp-12]
 
1805
        sub %g0,%o0,%o0
 
1806
L320:
 
1807
        cmp %i1,0
 
1808
        bl,a L321
 
1809
        sub %g0,%i1,%i1
 
1810
L321:
 
1811
        mov %i1,%o1
 
1812
        call _divul3,0
 
1813
        add %fp,-12,%o2
 
1814
        ld [%fp-12],%o0
 
1815
        cmp %o0,0
 
1816
        bne L322
 
1817
        nop
 
1818
        sethi %hi(_gzero),%o0
 
1819
        b L325
 
1820
        ld [%o0+%lo(_gzero)],%i0
 
1821
L322:
 
1822
        bge,a L326
 
1823
        ld [%fp-12],%o0
 
1824
        sub %i1,%o0,%o0
 
1825
L326:
 
1826
        call _stoi,0
 
1827
        nop
 
1828
        mov %o0,%i0
 
1829
L325:
 
1830
        ret
 
1831
        restore
 
1832
        .align 4
 
1833
        .global _resss
 
1834
        .proc   0104
 
1835
_resss:
 
1836
        !#PROLOGUE# 0
 
1837
        save %sp,-112,%sp
 
1838
        !#PROLOGUE# 1
 
1839
        cmp %i1,0
 
1840
        bne L335
 
1841
        mov %i0,%o0
 
1842
        call _err,0
 
1843
        mov 40,%o0
 
1844
        mov %i0,%o0
 
1845
L335:
 
1846
        cmp %o0,0
 
1847
        bge L330
 
1848
        st %g0,[%fp-12]
 
1849
        sub %g0,%o0,%o0
 
1850
L330:
 
1851
        cmp %i1,0
 
1852
        bge L331
 
1853
        mov %i1,%o1
 
1854
        sub %g0,%i1,%o1
 
1855
L331:
 
1856
        call _divul3,0
 
1857
        add %fp,-12,%o2
 
1858
        cmp %i1,0
 
1859
        bge L334
 
1860
        ld [%fp-12],%o0
 
1861
        sub %g0,%o0,%o0
 
1862
L334:
 
1863
        call _stoi,0
 
1864
        nop
 
1865
        mov %o0,%i0
 
1866
        ret
 
1867
        restore
 
1868
        .align 4
 
1869
        .global _divsi
 
1870
        .proc   0104
 
1871
_divsi:
 
1872
        !#PROLOGUE# 0
 
1873
        save %sp,-104,%sp
 
1874
        !#PROLOGUE# 1
 
1875
        ld [%i1+4],%o0
 
1876
        sra %o0,24,%o2
 
1877
        sethi %hi(65535),%o1
 
1878
        or %o1,%lo(65535),%o1
 
1879
        cmp %o2,0
 
1880
        bne L337
 
1881
        and %o0,%o1,%l0
 
1882
        call _err,0
 
1883
        mov 24,%o0
 
1884
L337:
 
1885
        cmp %i0,0
 
1886
        be L339
 
1887
        cmp %l0,3
 
1888
        bg L346
 
1889
        sethi %hi(_hiremainder),%o0
 
1890
        ld [%i1+8],%o0
 
1891
        cmp %o0,0
 
1892
        bge L338
 
1893
        sethi %hi(-2147483648),%o0
 
1894
L339:
 
1895
        sethi %hi(_hiremainder),%o0
 
1896
L346:
 
1897
        st %i0,[%o0+%lo(_hiremainder)]
 
1898
        sethi %hi(_gzero),%o0
 
1899
        b L344
 
1900
        ld [%o0+%lo(_gzero)],%i0
 
1901
L338:
 
1902
        cmp %i0,%o0
 
1903
        bne L340
 
1904
        sethi %hi(_hiremainder),%o0
 
1905
        call _stoi,0
 
1906
        mov %i0,%o0
 
1907
        mov %i1,%o1
 
1908
        call _dvmdii,0
 
1909
        mov 0,%o2
 
1910
        b L344
 
1911
        mov %o0,%i0
 
1912
L340:
 
1913
        st %g0,[%o0+%lo(_hiremainder)]
 
1914
        cmp %i0,0
 
1915
        bge L341
 
1916
        mov %i0,%o0
 
1917
        sub %g0,%i0,%o0
 
1918
L341:
 
1919
        ld [%i1+8],%o1
 
1920
        sethi %hi(_hiremainder),%l0
 
1921
        call _divul3,0
 
1922
        or %l0,%lo(_hiremainder),%o2
 
1923
        mov %o0,%o1
 
1924
        ldsb [%i1+4],%o0
 
1925
        cmp %o0,0
 
1926
        bge L347
 
1927
        cmp %i0,0
 
1928
        ld [%l0+%lo(_hiremainder)],%o0
 
1929
        sub %g0,%o0,%o0
 
1930
        st %o0,[%l0+%lo(_hiremainder)]
 
1931
        sub %g0,%o1,%o1
 
1932
L347:
 
1933
        bl,a L343
 
1934
        sub %g0,%o1,%o1
 
1935
L343:
 
1936
        call _stoi,0
 
1937
        mov %o1,%o0
 
1938
        mov %o0,%i0
 
1939
L344:
 
1940
        ret
 
1941
        restore
 
1942
        .align 4
 
1943
        .global _divis
 
1944
        .proc   0104
 
1945
_divis:
 
1946
        !#PROLOGUE# 0
 
1947
        save %sp,-112,%sp
 
1948
        !#PROLOGUE# 1
 
1949
        ld [%i0+4],%o1
 
1950
        sra %o1,24,%l4
 
1951
        sethi %hi(65535),%o0
 
1952
        or %o0,%lo(65535),%o0
 
1953
        cmp %i1,0
 
1954
        bne L349
 
1955
        and %o1,%o0,%l3
 
1956
        call _err,0
 
1957
        mov 26,%o0
 
1958
L349:
 
1959
        cmp %l4,0
 
1960
        bne L350
 
1961
        cmp %i1,0
 
1962
        sethi %hi(_hiremainder),%o0
 
1963
        b L365
 
1964
        st %g0,[%o0+%lo(_hiremainder)]
 
1965
L350:
 
1966
        bge,a L366
 
1967
        ld [%i0+8],%o0
 
1968
        subcc %g0,%i1,%i1
 
1969
        bpos L351
 
1970
        sub %g0,%l4,%l4
 
1971
        call _stoi,0
 
1972
        mov %i1,%o0
 
1973
        mov %o0,%o1
 
1974
        mov %i0,%o0
 
1975
        call _dvmdii,0
 
1976
        mov 0,%o2
 
1977
        b L364
 
1978
        mov %o0,%i0
 
1979
L351:
 
1980
        ld [%i0+8],%o0
 
1981
L366:
 
1982
        cmp %i1,%o0
 
1983
        bleu L353
 
1984
        cmp %l3,3
 
1985
        bne L354
 
1986
        sethi %hi(_hiremainder),%l0
 
1987
        call _itos,0
 
1988
        mov %i0,%o0
 
1989
        st %o0,[%l0+%lo(_hiremainder)]
 
1990
L365:
 
1991
        sethi %hi(_gzero),%o0
 
1992
        b L364
 
1993
        ld [%o0+%lo(_gzero)],%i0
 
1994
L354:
 
1995
        call _cgeti,0
 
1996
        add %l3,-1,%o0
 
1997
        mov %o0,%l2
 
1998
        mov 1,%l1
 
1999
        ld [%i0+8],%o0
 
2000
        b L356
 
2001
        st %o0,[%fp-12]
 
2002
L353:
 
2003
        call _cgeti,0
 
2004
        mov %l3,%o0
 
2005
        mov %o0,%l2
 
2006
        mov 0,%l1
 
2007
        st %g0,[%fp-12]
 
2008
L356:
 
2009
        add %l1,2,%l0
 
2010
        cmp %l0,%l3
 
2011
        bge,a L367
 
2012
        ld [%l2],%o0
 
2013
L360:
 
2014
        sll %l0,2,%o0
 
2015
        ld [%i0+%o0],%o0
 
2016
        mov %i1,%o1
 
2017
        call _divul3,0
 
2018
        add %fp,-12,%o2
 
2019
        sub %l0,%l1,%o1
 
2020
        sll %o1,2,%o1
 
2021
        add %l0,1,%l0
 
2022
        cmp %l0,%l3
 
2023
        bl L360
 
2024
        st %o0,[%l2+%o1]
 
2025
        ld [%l2],%o0
 
2026
L367:
 
2027
        sethi %hi(-16777216),%o1
 
2028
        andn %o0,%o1,%o1
 
2029
        sll %l4,24,%o0
 
2030
        add %o1,%o0,%o1
 
2031
        st %o1,[%l2+4]
 
2032
        sethi %hi(_hiremainder),%o1
 
2033
        cmp %l4,0
 
2034
        bge L362
 
2035
        or %o1,%lo(_hiremainder),%o2
 
2036
        ld [%fp-12],%o0
 
2037
        sub %g0,%o0,%o0
 
2038
        b L363
 
2039
        st %o0,[%o1+%lo(_hiremainder)]
 
2040
L362:
 
2041
        ld [%fp-12],%o0
 
2042
        st %o0,[%o2]
 
2043
L363:
 
2044
        mov %l2,%i0
 
2045
L364:
 
2046
        ret
 
2047
        restore
 
2048
        .align 4
 
2049
        .global _dvmdii
 
2050
        .proc   0104
 
2051
_dvmdii:
 
2052
        !#PROLOGUE# 0
 
2053
        save %sp,-144,%sp
 
2054
        !#PROLOGUE# 1
 
2055
        mov %i2,%i4
 
2056
        ldsb [%i0+4],%g4
 
2057
        st %g4,[%fp-28]
 
2058
        ldsb [%i1+4],%g1
 
2059
        cmp %g1,0
 
2060
        bne L369
 
2061
        st %g1,[%fp-36]
 
2062
        call _err,0
 
2063
        mov 36,%o0
 
2064
L369:
 
2065
        ld [%fp-28],%g4
 
2066
        cmp %g4,0
 
2067
        bne,a L370
 
2068
        ld [%i0+4],%o0
 
2069
        cmp %i4,-1
 
2070
        be L471
 
2071
        cmp %i4,0
 
2072
        be L471
 
2073
        sethi %hi(_gzero),%o1
 
2074
        ld [%o1+%lo(_gzero)],%o0
 
2075
        st %o0,[%i4]
 
2076
        b L470
 
2077
        ld [%o1+%lo(_gzero)],%i0
 
2078
L370:
 
2079
        sethi %hi(65535),%o1
 
2080
        or %o1,%lo(65535),%o1
 
2081
        and %o0,%o1,%l6
 
2082
        ld [%i1+4],%o0
 
2083
        and %o0,%o1,%i3
 
2084
        subcc %l6,%i3,%i5
 
2085
        bpos,a L373
 
2086
        sethi %hi(_avma),%o0
 
2087
        cmp %i4,-1
 
2088
        bne L374
 
2089
        cmp %i4,0
 
2090
        call _icopy,0
 
2091
        mov %i0,%o0
 
2092
        b L470
 
2093
        mov %o0,%i0
 
2094
L374:
 
2095
        be L477
 
2096
        sethi %hi(_gzero),%o0
 
2097
        call _icopy,0
 
2098
        mov %i0,%o0
 
2099
        b L471
 
2100
        st %o0,[%i4]
 
2101
L373:
 
2102
        ld [%o0+%lo(_avma)],%o0
 
2103
        st %o0,[%fp-20]
 
2104
        ld [%fp-28],%g1
 
2105
        cmp %g1,0
 
2106
        bge L478
 
2107
        cmp %i3,3
 
2108
        ld [%fp-36],%g4
 
2109
        sub %g0,%g4,%g4
 
2110
        st %g4,[%fp-36]
 
2111
L478:
 
2112
        bne L377
 
2113
        nop
 
2114
        ld [%i1+8],%i1
 
2115
        ld [%i0+8],%o0
 
2116
        cmp %i1,%o0
 
2117
        bleu L378
 
2118
        add %i0,8,%l1
 
2119
        add %l6,-1,%l0
 
2120
        st %o0,[%fp-12]
 
2121
        b L379
 
2122
        add %i0,12,%l1
 
2123
L378:
 
2124
        mov %l6,%l0
 
2125
        st %g0,[%fp-12]
 
2126
L379:
 
2127
        call _cgeti,0
 
2128
        mov %l0,%o0
 
2129
        mov %o0,%l5
 
2130
        addcc %l0,-2,%l3
 
2131
        be L381
 
2132
        add %l5,8,%l2
 
2133
L382:
 
2134
        ld [%l1],%o0
 
2135
        add %l1,4,%l1
 
2136
        mov %i1,%o1
 
2137
        call _divul3,0
 
2138
        add %fp,-12,%o2
 
2139
        st %o0,[%l2]
 
2140
        addcc %l3,-1,%l3
 
2141
        bne L382
 
2142
        add %l2,4,%l2
 
2143
L381:
 
2144
        cmp %i4,-1
 
2145
        bne L384
 
2146
        cmp %l0,2
 
2147
        sethi %hi(_avma),%o0
 
2148
        ld [%fp-20],%g1
 
2149
        st %g1,[%o0+%lo(_avma)]
 
2150
        ld [%fp-12],%o0
 
2151
        cmp %o0,0
 
2152
        bne L385
 
2153
        nop
 
2154
L471:
 
2155
        sethi %hi(_gzero),%o0
 
2156
L477:
 
2157
        b L470
 
2158
        ld [%o0+%lo(_gzero)],%i0
 
2159
L385:
 
2160
        call _cgeti,0
 
2161
        mov 3,%o0
 
2162
        mov %o0,%l4
 
2163
        ld [%fp-28],%g4
 
2164
        sll %g4,24,%o0
 
2165
        add %o0,3,%o0
 
2166
        st %o0,[%l4+4]
 
2167
        ld [%fp-12],%o0
 
2168
        st %o0,[%l4+8]
 
2169
        b L470
 
2170
        mov %l4,%i0
 
2171
L384:
 
2172
        be L386
 
2173
        sethi %hi(-16777216),%o1
 
2174
        ld [%l5],%o0
 
2175
        andn %o0,%o1,%o1
 
2176
        ld [%fp-36],%g1
 
2177
        sll %g1,24,%o0
 
2178
        add %o1,%o0,%o1
 
2179
        b L387
 
2180
        st %o1,[%l5+4]
 
2181
L386:
 
2182
        sethi %hi(_avma),%o0
 
2183
        ld [%fp-20],%g4
 
2184
        st %g4,[%o0+%lo(_avma)]
 
2185
        sethi %hi(_gzero),%o0
 
2186
        ld [%o0+%lo(_gzero)],%l5
 
2187
L387:
 
2188
        cmp %i4,0
 
2189
        bne L388
 
2190
        ld [%fp-12],%o0
 
2191
L473:
 
2192
        b L470
 
2193
        mov %l5,%i0
 
2194
L388:
 
2195
        cmp %o0,0
 
2196
        bne L389
 
2197
        sethi %hi(_gzero),%o0
 
2198
        ld [%o0+%lo(_gzero)],%o0
 
2199
        b L473
 
2200
        st %o0,[%i4]
 
2201
L389:
 
2202
        call _cgeti,0
 
2203
        mov 3,%o0
 
2204
        mov %o0,%l4
 
2205
        ld [%fp-28],%g1
 
2206
        sll %g1,24,%o0
 
2207
        add %o0,3,%o0
 
2208
        st %o0,[%l4+4]
 
2209
        ld [%fp-12],%o0
 
2210
        st %o0,[%l4+8]
 
2211
        b L473
 
2212
        st %l4,[%i4]
 
2213
L377:
 
2214
        call _cgeti,0
 
2215
        mov %l6,%o0
 
2216
        mov %o0,%l5
 
2217
        call _bfffo,0
 
2218
        ld [%i1+8],%o0
 
2219
        orcc %o0,%g0,%i2
 
2220
        be L392
 
2221
        add %i0,8,%l1
 
2222
        call _cgeti,0
 
2223
        mov %i3,%o0
 
2224
        mov %o0,%l4
 
2225
        ld [%i1+8],%o3
 
2226
        add %i1,12,%o1
 
2227
        mov 32,%o0
 
2228
        sub %o0,%i2,%o0
 
2229
        srl %o3,%o0,%o0
 
2230
        st %o0,[%fp-12]
 
2231
        sll %o3,%i2,%g2
 
2232
        addcc %i3,-3,%l3
 
2233
        be L394
 
2234
        add %l4,8,%o2
 
2235
        mov 32,%o0
 
2236
        sub %o0,%i2,%o4
 
2237
L395:
 
2238
        ld [%o1],%o3
 
2239
        add %o1,4,%o1
 
2240
        srl %o3,%o4,%o0
 
2241
        st %o0,[%fp-12]
 
2242
        add %g2,%o0,%o0
 
2243
        st %o0,[%o2]
 
2244
        add %o2,4,%o2
 
2245
        addcc %l3,-1,%l3
 
2246
        bne L395
 
2247
        sll %o3,%i2,%g2
 
2248
L394:
 
2249
        st %g2,[%o2]
 
2250
        mov 0,%g2
 
2251
        add %i0,8,%l1
 
2252
        addcc %l6,-2,%l3
 
2253
        be L398
 
2254
        add %l5,4,%l2
 
2255
        mov 32,%o0
 
2256
        sub %o0,%i2,%o1
 
2257
L399:
 
2258
        ld [%l1],%o3
 
2259
        add %l1,4,%l1
 
2260
        srl %o3,%o1,%o0
 
2261
        st %o0,[%fp-12]
 
2262
        add %g2,%o0,%o0
 
2263
        st %o0,[%l2]
 
2264
        add %l2,4,%l2
 
2265
        addcc %l3,-1,%l3
 
2266
        bne L399
 
2267
        sll %o3,%i2,%g2
 
2268
L398:
 
2269
        b L401
 
2270
        st %g2,[%l2]
 
2271
L392:
 
2272
        st %g0,[%l5+4]
 
2273
        addcc %l6,-2,%l0
 
2274
        be L403
 
2275
        add %l5,8,%l2
 
2276
L404:
 
2277
        ld [%l1],%o0
 
2278
        st %o0,[%l2]
 
2279
        add %l1,4,%l1
 
2280
        addcc %l0,-1,%l0
 
2281
        bne L404
 
2282
        add %l2,4,%l2
 
2283
L403:
 
2284
        mov %i1,%l4
 
2285
L401:
 
2286
        ld [%l4+8],%i1
 
2287
        ld [%l4+12],%i0
 
2288
        addcc %i5,1,%l3
 
2289
        be L407
 
2290
        add %l5,4,%l2
 
2291
        sll %i3,2,%l1
 
2292
L408:
 
2293
        ld [%l2],%o0
 
2294
        cmp %o0,%i1
 
2295
        bne L409
 
2296
        add %l2,4,%l2
 
2297
        mov -1,%o7
 
2298
        mov %i1,%o3
 
2299
        ld [%l2],%o0
 
2300
        add %o3,%o0,%o1
 
2301
        cmp %o1,%o3
 
2302
        addx %g0,0,%o2
 
2303
        b L410
 
2304
        mov %o1,%g2
 
2305
L409:
 
2306
        ld [%l2-4],%o0
 
2307
        st %o0,[%fp-12]
 
2308
        ld [%l2],%o0
 
2309
        mov %i1,%o1
 
2310
        call _divul3,0
 
2311
        add %fp,-12,%o2
 
2312
        mov %o0,%o7
 
2313
        mov 0,%o2
 
2314
        ld [%fp-12],%g2
 
2315
L410:
 
2316
        cmp %o2,0
 
2317
        bne,a L479
 
2318
        st %g0,[%fp-12]
 
2319
        mov %o7,%o3
 
2320
         
 
2321
        or      %o3,%i0,%o4      
 
2322
        mov     %o3,%y
 
2323
        andncc  %o4,0xfff,%g0
 
2324
        be      2f
 
2325
        andcc   %g0,%g0,%o4
 
2326
        mulscc  %o4,%i0,%o4
 
2327
        mulscc  %o4,%i0,%o4
 
2328
        mulscc  %o4,%i0,%o4
 
2329
        mulscc  %o4,%i0,%o4
 
2330
        mulscc  %o4,%i0,%o4
 
2331
        mulscc  %o4,%i0,%o4
 
2332
        mulscc  %o4,%i0,%o4
 
2333
        mulscc  %o4,%i0,%o4
 
2334
        mulscc  %o4,%i0,%o4
 
2335
        mulscc  %o4,%i0,%o4
 
2336
        mulscc  %o4,%i0,%o4
 
2337
        mulscc  %o4,%i0,%o4
 
2338
        mulscc  %o4,%i0,%o4
 
2339
        mulscc  %o4,%i0,%o4
 
2340
        mulscc  %o4,%i0,%o4
 
2341
        mulscc  %o4,%i0,%o4
 
2342
        mulscc  %o4,%i0,%o4
 
2343
        mulscc  %o4,%i0,%o4
 
2344
        mulscc  %o4,%i0,%o4
 
2345
        mulscc  %o4,%i0,%o4
 
2346
        mulscc  %o4,%i0,%o4
 
2347
        mulscc  %o4,%i0,%o4
 
2348
        mulscc  %o4,%i0,%o4
 
2349
        mulscc  %o4,%i0,%o4
 
2350
        mulscc  %o4,%i0,%o4
 
2351
        mulscc  %o4,%i0,%o4
 
2352
        mulscc  %o4,%i0,%o4
 
2353
        mulscc  %o4,%i0,%o4
 
2354
        mulscc  %o4,%i0,%o4
 
2355
        mulscc  %o4,%i0,%o4
 
2356
        mulscc  %o4,%i0,%o4
 
2357
        mulscc  %o4,%i0,%o4
 
2358
        mulscc  %o4,%g0,%o4
 
2359
        tst     %i0
 
2360
        bl,a    1f
 
2361
        add     %o4,%o3,%o4
 
2362
1:      mov     %o4,%g4
 
2363
        b       3f 
 
2364
        rd      %y,%o3
 
2365
2:      clr     %g4
 
2366
        mulscc  %o4,%i0,%o4
 
2367
        mulscc  %o4,%i0,%o4
 
2368
        mulscc  %o4,%i0,%o4
 
2369
        mulscc  %o4,%i0,%o4
 
2370
        mulscc  %o4,%i0,%o4
 
2371
        mulscc  %o4,%i0,%o4
 
2372
        mulscc  %o4,%i0,%o4
 
2373
        mulscc  %o4,%i0,%o4
 
2374
        mulscc  %o4,%i0,%o4
 
2375
        mulscc  %o4,%i0,%o4
 
2376
        mulscc  %o4,%i0,%o4
 
2377
        mulscc  %o4,%i0,%o4
 
2378
        mulscc  %o4,%g0,%o4
 
2379
        rd      %y,%o5
 
2380
        sll     %o4,12,%o4
 
2381
        srl     %o5,20,%o5
 
2382
        or      %o5,%o4,%o3
 
2383
3:       
 
2384
 
 
2385
        st %g4,[%fp-12]
 
2386
        ld [%l2+4],%o0
 
2387
        cmp %o3,%o0
 
2388
        addx %g0,0,%o2
 
2389
        sub %o3,%o0,%o4
 
2390
        ld [%fp-12],%o3
 
2391
        mov %g2,%o0
 
2392
        sub %o3,%g2,%o1
 
2393
        cmp %g2,%o3
 
2394
        bgu L476
 
2395
        sub %o1,%o2,%o1
 
2396
        b L480
 
2397
        cmp %o0,%o3
 
2398
L424:
 
2399
        be L411
 
2400
        mov %o4,%o3
 
2401
        add %o7,-1,%o7
 
2402
        mov %i0,%o0
 
2403
        cmp %o3,%o0
 
2404
        addx %g0,0,%o2
 
2405
        sub %o3,%o0,%o4
 
2406
        mov %o1,%o3
 
2407
        mov %i1,%o0
 
2408
        sub %o3,%o0,%o1
 
2409
        cmp %o0,%o3
 
2410
        bleu L480
 
2411
        sub %o1,%o2,%o1
 
2412
L476:
 
2413
        b L421
 
2414
        mov 1,%o2
 
2415
L480:
 
2416
        blu,a L421
 
2417
        mov 0,%o2
 
2418
L421:
 
2419
        cmp %o2,0
 
2420
        be L424
 
2421
        cmp %o1,0
 
2422
L411:
 
2423
        st %g0,[%fp-12]
 
2424
L479:
 
2425
        add %l2,%l1,%g2
 
2426
        add %g2,-8,%g2
 
2427
        addcc %i3,-2,%l0
 
2428
        be L426
 
2429
        add %l4,%l1,%g3
 
2430
L427:
 
2431
        ld [%fp-12],%o3
 
2432
        add %g3,-4,%g3
 
2433
        ld [%g3],%o0
 
2434
        mov %o7,%o1
 
2435
         
 
2436
        or      %o1,%o0,%o4      
 
2437
        mov     %o1,%y
 
2438
        andncc  %o4,0xfff,%g0
 
2439
        be      2f
 
2440
        andcc   %g0,%g0,%o4
 
2441
        mulscc  %o4,%o0,%o4
 
2442
        mulscc  %o4,%o0,%o4
 
2443
        mulscc  %o4,%o0,%o4
 
2444
        mulscc  %o4,%o0,%o4
 
2445
        mulscc  %o4,%o0,%o4
 
2446
        mulscc  %o4,%o0,%o4
 
2447
        mulscc  %o4,%o0,%o4
 
2448
        mulscc  %o4,%o0,%o4
 
2449
        mulscc  %o4,%o0,%o4
 
2450
        mulscc  %o4,%o0,%o4
 
2451
        mulscc  %o4,%o0,%o4
 
2452
        mulscc  %o4,%o0,%o4
 
2453
        mulscc  %o4,%o0,%o4
 
2454
        mulscc  %o4,%o0,%o4
 
2455
        mulscc  %o4,%o0,%o4
 
2456
        mulscc  %o4,%o0,%o4
 
2457
        mulscc  %o4,%o0,%o4
 
2458
        mulscc  %o4,%o0,%o4
 
2459
        mulscc  %o4,%o0,%o4
 
2460
        mulscc  %o4,%o0,%o4
 
2461
        mulscc  %o4,%o0,%o4
 
2462
        mulscc  %o4,%o0,%o4
 
2463
        mulscc  %o4,%o0,%o4
 
2464
        mulscc  %o4,%o0,%o4
 
2465
        mulscc  %o4,%o0,%o4
 
2466
        mulscc  %o4,%o0,%o4
 
2467
        mulscc  %o4,%o0,%o4
 
2468
        mulscc  %o4,%o0,%o4
 
2469
        mulscc  %o4,%o0,%o4
 
2470
        mulscc  %o4,%o0,%o4
 
2471
        mulscc  %o4,%o0,%o4
 
2472
        mulscc  %o4,%o0,%o4
 
2473
        mulscc  %o4,%g0,%o4
 
2474
        tst     %o0
 
2475
        bl,a    1f
 
2476
        add     %o4,%o1,%o4
 
2477
1:      mov     %o4,%g1
 
2478
        b       3f 
 
2479
        rd      %y,%o1
 
2480
2:      clr     %g1
 
2481
        mulscc  %o4,%o0,%o4
 
2482
        mulscc  %o4,%o0,%o4
 
2483
        mulscc  %o4,%o0,%o4
 
2484
        mulscc  %o4,%o0,%o4
 
2485
        mulscc  %o4,%o0,%o4
 
2486
        mulscc  %o4,%o0,%o4
 
2487
        mulscc  %o4,%o0,%o4
 
2488
        mulscc  %o4,%o0,%o4
 
2489
        mulscc  %o4,%o0,%o4
 
2490
        mulscc  %o4,%o0,%o4
 
2491
        mulscc  %o4,%o0,%o4
 
2492
        mulscc  %o4,%o0,%o4
 
2493
        mulscc  %o4,%g0,%o4
 
2494
        rd      %y,%o5
 
2495
        sll     %o4,12,%o4
 
2496
        srl     %o5,20,%o5
 
2497
        or      %o5,%o4,%o1
 
2498
3:       
 
2499
 
 
2500
        st %g1,[%fp-12]
 
2501
        mov %g1,%g4
 
2502
        addcc %o3,%o1,%o2
 
2503
        addx %g4,%g0,%g4
 
2504
        st %g4,[%fp-12]
 
2505
        add %g2,-4,%g2
 
2506
        ld [%g2],%o3
 
2507
        sub %o3,%o2,%o1
 
2508
        cmp %o3,%o2
 
2509
        st %o1,[%g2]
 
2510
        ld [%fp-12],%o0
 
2511
        addx %g0,%o0,%o0
 
2512
        addcc %l0,-1,%l0
 
2513
        bne L427
 
2514
        st %o0,[%fp-12]
 
2515
L426:
 
2516
        ld [%l2-4],%o1
 
2517
        ld [%fp-12],%o0
 
2518
        cmp %o1,%o0
 
2519
        bgeu,a L481
 
2520
        addcc %l3,-1,%l3
 
2521
        mov 0,%o2
 
2522
        add %o7,-1,%o7
 
2523
        add %l2,%l1,%g2
 
2524
        add %g2,-8,%g2
 
2525
        addcc %i3,-2,%l0
 
2526
        be L429
 
2527
        add %l4,%l1,%g3
 
2528
        add %g2,-4,%g2
 
2529
L482:
 
2530
        subcc %g0,%o2,%g0
 
2531
        add %g3,-4,%g3
 
2532
        ld [%g2],%g1
 
2533
        ld [%g3],%g4
 
2534
        addxcc %g1,%g4,%o0
 
2535
        st %o0,[%g2]
 
2536
        addx %g0,%g0,%o2
 
2537
        addcc %l0,-1,%l0
 
2538
        bne,a L482
 
2539
        add %g2,-4,%g2
 
2540
L429:
 
2541
        addcc %l3,-1,%l3
 
2542
L481:
 
2543
        bne L408
 
2544
        st %o7,[%l2-4]
 
2545
L407:
 
2546
        sethi %hi(_avma),%o0
 
2547
        cmp %i4,-1
 
2548
        be L435
 
2549
        ld [%o0+%lo(_avma)],%l4
 
2550
        add %i5,2,%l1
 
2551
        sll %l1,2,%o0
 
2552
        add %l5,%o0,%l2
 
2553
        ld [%l5+4],%o0
 
2554
        cmp %o0,0
 
2555
        be L436
 
2556
        cmp %i5,0
 
2557
        b L437
 
2558
        add %i5,3,%l1
 
2559
L436:
 
2560
        be,a L437
 
2561
        st %g0,[%fp-36]
 
2562
L437:
 
2563
        call _cgeti,0
 
2564
        mov %l1,%o0
 
2565
        st %o0,[%fp-44]
 
2566
        sll %l1,2,%o0
 
2567
        ld [%fp-44],%g1
 
2568
        addcc %l1,-2,%l0
 
2569
        be L440
 
2570
        add %g1,%o0,%o1
 
2571
L441:
 
2572
        add %o1,-4,%o1
 
2573
        add %l2,-4,%l2
 
2574
        ld [%l2],%o0
 
2575
        addcc %l0,-1,%l0
 
2576
        bne L441
 
2577
        st %o0,[%o1]
 
2578
L440:
 
2579
        cmp %l1,2
 
2580
        bgu L443
 
2581
        mov 2,%o0
 
2582
        ld [%fp-44],%g4
 
2583
        b L435
 
2584
        st %o0,[%g4+4]
 
2585
L443:
 
2586
        ld [%fp-44],%g1
 
2587
        ld [%g1],%o0
 
2588
        sethi %hi(-16777216),%o1
 
2589
        andn %o0,%o1,%o1
 
2590
        ld [%fp-36],%g4
 
2591
        sll %g4,24,%o0
 
2592
        add %o1,%o0,%o1
 
2593
        st %o1,[%g1+4]
 
2594
L435:
 
2595
        cmp %i4,0
 
2596
        be L483
 
2597
        cmp %i4,-1
 
2598
        add %i5,2,%l0
 
2599
        cmp %l0,%l6
 
2600
        bge L484
 
2601
        sll %l0,2,%o0
 
2602
        ld [%l5+%o0],%o0
 
2603
        cmp %o0,0
 
2604
        bne L484
 
2605
        cmp %l0,%l6
 
2606
        add %i5,3,%l0
 
2607
L448:
 
2608
        cmp %l0,%l6
 
2609
        bge L484
 
2610
        sll %l0,2,%o0
 
2611
        ld [%l5+%o0],%o0
 
2612
        cmp %o0,0
 
2613
        be,a L448
 
2614
        add %l0,1,%l0
 
2615
        cmp %l0,%l6
 
2616
L484:
 
2617
        bne L452
 
2618
        sub %l6,%l0,%o0
 
2619
        sethi %hi(_gzero),%o0
 
2620
        call _icopy,0
 
2621
        ld [%o0+%lo(_gzero)],%o0
 
2622
        b L445
 
2623
        mov %o0,%l7
 
2624
L452:
 
2625
        call _cgeti,0
 
2626
        add %o0,2,%o0
 
2627
        mov %o0,%l7
 
2628
        ld [%l7],%o0
 
2629
        cmp %i2,0
 
2630
        bne L454
 
2631
        st %o0,[%l7+4]
 
2632
        cmp %l0,%l6
 
2633
        bge L460
 
2634
        mov 2,%l3
 
2635
L458:
 
2636
        sll %l3,2,%o0
 
2637
        sll %l0,2,%o1
 
2638
        ld [%l5+%o1],%o1
 
2639
        st %o1,[%l7+%o0]
 
2640
        add %l0,1,%l0
 
2641
        cmp %l0,%l6
 
2642
        bl L458
 
2643
        add %l3,1,%l3
 
2644
        b L485
 
2645
        ld [%l7+4],%o0
 
2646
L454:
 
2647
        st %g0,[%fp-12]
 
2648
        sll %l0,2,%o0
 
2649
        ld [%l5+%o0],%o3
 
2650
        add %l0,1,%l0
 
2651
        mov 32,%o0
 
2652
        sub %o0,%i2,%o0
 
2653
        sll %o3,%o0,%o0
 
2654
        st %o0,[%fp-12]
 
2655
        srl %o3,%i2,%o2
 
2656
        cmp %o2,0
 
2657
        be L461
 
2658
        mov %o0,%g2
 
2659
        st %o2,[%l7+8]
 
2660
        b L462
 
2661
        mov 1,%o0
 
2662
L461:
 
2663
        ld [%l7],%o0
 
2664
        add %o0,-1,%o0
 
2665
        st %o0,[%l7+4]
 
2666
        add %l7,4,%l7
 
2667
        sethi %hi(_avma),%o1
 
2668
        ld [%o1+%lo(_avma)],%o0
 
2669
        add %o0,4,%o0
 
2670
        st %o0,[%o1+%lo(_avma)]
 
2671
        ld [%l7],%o0
 
2672
        st %o0,[%l7+4]
 
2673
        mov 0,%o0
 
2674
L462:
 
2675
        cmp %l0,%l6
 
2676
        bge L460
 
2677
        add %o0,2,%l3
 
2678
        mov 32,%o0
 
2679
        sub %o0,%i2,%o4
 
2680
L466:
 
2681
        sll %l3,2,%o2
 
2682
        sll %l0,2,%o0
 
2683
        ld [%l5+%o0],%o3
 
2684
        sll %o3,%o4,%o1
 
2685
        st %o1,[%fp-12]
 
2686
        srl %o3,%i2,%o0
 
2687
        add %o0,%g2,%o0
 
2688
        st %o0,[%l7+%o2]
 
2689
        mov %o1,%g2
 
2690
        add %l0,1,%l0
 
2691
        cmp %l0,%l6
 
2692
        bl L466
 
2693
        add %l3,1,%l3
 
2694
L460:
 
2695
        ld [%l7+4],%o0
 
2696
L485:
 
2697
        sethi %hi(-16777216),%o1
 
2698
        andn %o0,%o1,%o1
 
2699
        ld [%fp-28],%g1
 
2700
        sll %g1,24,%o0
 
2701
        add %o1,%o0,%o1
 
2702
        st %o1,[%l7+4]
 
2703
L445:
 
2704
        cmp %i4,-1
 
2705
L483:
 
2706
        bne L468
 
2707
        cmp %i4,0
 
2708
        ld [%fp-20],%o0
 
2709
        mov %l4,%o1
 
2710
        b L475
 
2711
        mov %l7,%o2
 
2712
L468:
 
2713
        be L469
 
2714
        ld [%fp-20],%o0
 
2715
        mov %l4,%o1
 
2716
        call _gerepile,0
 
2717
        mov 0,%o2
 
2718
        and %o0,-4,%o0
 
2719
        add %l7,%o0,%o1
 
2720
        st %o1,[%i4]
 
2721
        ld [%fp-44],%g4
 
2722
        b L470
 
2723
        add %g4,%o0,%i0
 
2724
L469:
 
2725
        mov %l4,%o1
 
2726
        ld [%fp-44],%o2
 
2727
L475:
 
2728
        call _gerepile,0
 
2729
        nop
 
2730
        mov %o0,%i0
 
2731
L470:
 
2732
        ret
 
2733
        restore
 
2734
        .align 4
 
2735
        .global _mulul3
 
2736
        .proc   016
 
2737
_mulul3:
 
2738
        !#PROLOGUE# 0
 
2739
        save %sp,-104,%sp
 
2740
        !#PROLOGUE# 1
 
2741
         
 
2742
        or      %i0,%i1,%o4      
 
2743
        mov     %i0,%y
 
2744
        andncc  %o4,0xfff,%g0
 
2745
        be      2f
 
2746
        andcc   %g0,%g0,%o4
 
2747
        mulscc  %o4,%i1,%o4
 
2748
        mulscc  %o4,%i1,%o4
 
2749
        mulscc  %o4,%i1,%o4
 
2750
        mulscc  %o4,%i1,%o4
 
2751
        mulscc  %o4,%i1,%o4
 
2752
        mulscc  %o4,%i1,%o4
 
2753
        mulscc  %o4,%i1,%o4
 
2754
        mulscc  %o4,%i1,%o4
 
2755
        mulscc  %o4,%i1,%o4
 
2756
        mulscc  %o4,%i1,%o4
 
2757
        mulscc  %o4,%i1,%o4
 
2758
        mulscc  %o4,%i1,%o4
 
2759
        mulscc  %o4,%i1,%o4
 
2760
        mulscc  %o4,%i1,%o4
 
2761
        mulscc  %o4,%i1,%o4
 
2762
        mulscc  %o4,%i1,%o4
 
2763
        mulscc  %o4,%i1,%o4
 
2764
        mulscc  %o4,%i1,%o4
 
2765
        mulscc  %o4,%i1,%o4
 
2766
        mulscc  %o4,%i1,%o4
 
2767
        mulscc  %o4,%i1,%o4
 
2768
        mulscc  %o4,%i1,%o4
 
2769
        mulscc  %o4,%i1,%o4
 
2770
        mulscc  %o4,%i1,%o4
 
2771
        mulscc  %o4,%i1,%o4
 
2772
        mulscc  %o4,%i1,%o4
 
2773
        mulscc  %o4,%i1,%o4
 
2774
        mulscc  %o4,%i1,%o4
 
2775
        mulscc  %o4,%i1,%o4
 
2776
        mulscc  %o4,%i1,%o4
 
2777
        mulscc  %o4,%i1,%o4
 
2778
        mulscc  %o4,%i1,%o4
 
2779
        mulscc  %o4,%g0,%o4
 
2780
        tst     %i1
 
2781
        bl,a    1f
 
2782
        add     %o4,%i0,%o4
 
2783
1:      mov     %o4,%g2
 
2784
        b       3f 
 
2785
        rd      %y,%i0
 
2786
2:      clr     %g2
 
2787
        mulscc  %o4,%i1,%o4
 
2788
        mulscc  %o4,%i1,%o4
 
2789
        mulscc  %o4,%i1,%o4
 
2790
        mulscc  %o4,%i1,%o4
 
2791
        mulscc  %o4,%i1,%o4
 
2792
        mulscc  %o4,%i1,%o4
 
2793
        mulscc  %o4,%i1,%o4
 
2794
        mulscc  %o4,%i1,%o4
 
2795
        mulscc  %o4,%i1,%o4
 
2796
        mulscc  %o4,%i1,%o4
 
2797
        mulscc  %o4,%i1,%o4
 
2798
        mulscc  %o4,%i1,%o4
 
2799
        mulscc  %o4,%g0,%o4
 
2800
        rd      %y,%o5
 
2801
        sll     %o4,12,%o4
 
2802
        srl     %o5,20,%o5
 
2803
        or      %o5,%o4,%i0
 
2804
3:       
 
2805
 
 
2806
        st %g2,[%i2]
 
2807
        ret
 
2808
        restore