~ubuntu-branches/ubuntu/quantal/gclcvs/quantal

« back to all changes in this revision

Viewing changes to mp/mpi-bsd68k.s

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2004-06-24 15:13:46 UTC
  • Revision ID: james.westby@ubuntu.com-20040624151346-xh0xaaktyyp7aorc
Tags: 2.7.0-26
C_GC_OFFSET is 2 on m68k-linux

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#NO_APP
 
2
gcc_compiled.:
 
3
.text
 
4
        .even
 
5
.globl _mulsi
 
6
_mulsi:
 
7
        link a6,#0
 
8
        moveml #0x3f30,sp@-
 
9
        movel a6@(8),d4
 
10
        movel a6@(12),a2
 
11
        moveb a2@(4),d6
 
12
        extbl d6
 
13
        movel a2@(4),d5
 
14
        andl #65535,d5
 
15
        tstl d4
 
16
        jeq L3
 
17
        tstl d6
 
18
        jne L2
 
19
L3:
 
20
        movel _gzero,d0
 
21
        jra L1
 
22
L2:
 
23
        tstl d4
 
24
        jge L4
 
25
        negl d6
 
26
        negl d4
 
27
        jpl L4
 
28
        movel a2,sp@-
 
29
        movel #-2147483648,sp@-
 
30
        jbsr _stoi
 
31
        addqw #4,sp
 
32
        movel d0,sp@-
 
33
        jbsr _mulii
 
34
        jra L1
 
35
L4:
 
36
        movel d5,a3
 
37
        pea a3@(1)
 
38
        jbsr _cgeti
 
39
        movel d0,a1
 
40
        clrl d2
 
41
        movel d5,d0
 
42
        asll #2,d0
 
43
        addl d0,a2
 
44
        lea a1@(4,d0:l),a0
 
45
        movel d5,d3
 
46
        subql #2,d3
 
47
        jra L6
 
48
L8:
 
49
        movel d2,d0
 
50
        movel d4,d1
 
51
#APP
 
52
        mulul a2@-,d2:d1
 
53
#NO_APP
 
54
        addl d1,d0
 
55
        clrl d7
 
56
#APP
 
57
        addxl d7,d2
 
58
#NO_APP
 
59
        movel d0,a0@-
 
60
L6:
 
61
        dbra d3,L8
 
62
        clrw d3
 
63
        subql #1,d3
 
64
        jcc L8
 
65
        tstl d2
 
66
        jeq L9
 
67
        movel d2,a0@-
 
68
        movel a1@(4),d0
 
69
        clrw d0
 
70
        movel d0,a3
 
71
        lea a3@(1,d5:l),a3
 
72
        movel a3,a1@(4)
 
73
        jra L10
 
74
L9:
 
75
        addql #4,_avma
 
76
        movel a1@,d7
 
77
        subql #1,d7
 
78
        movel d7,a1@(4)
 
79
        addqw #4,a1
 
80
        movel a1@(4),d0
 
81
        clrw d0
 
82
        addl d5,d0
 
83
        movel d0,a1@(4)
 
84
L10:
 
85
        movel a1@(4),d0
 
86
        andl #16777215,d0
 
87
        movel d6,d1
 
88
        moveq #24,d7
 
89
        asll d7,d1
 
90
        addl d1,d0
 
91
        movel d0,a1@(4)
 
92
        movel a1,d0
 
93
L1:
 
94
        moveml a6@(-32),#0xcfc
 
95
        unlk a6
 
96
        rts
 
97
        .even
 
98
.globl _expi
 
99
_expi:
 
100
        link a6,#0
 
101
        movel d2,sp@-
 
102
        movel a6@(8),a0
 
103
        movel a0@(4),d0
 
104
        andl #65535,d0
 
105
        moveq #2,d2
 
106
        cmpl d0,d2
 
107
        jne L12
 
108
        movel #-8388608,d0
 
109
        jra L13
 
110
L12:
 
111
        subql #2,d0
 
112
        asll #5,d0
 
113
#APP
 
114
        bfffo a0@(8){#0:#0},d1
 
115
#NO_APP
 
116
        subl d1,d0
 
117
        subql #1,d0
 
118
L13:
 
119
        movel a6@(-4),d2
 
120
        unlk a6
 
121
        rts
 
122
        .even
 
123
.globl _addsi
 
124
_addsi:
 
125
        link a6,#0
 
126
        moveml #0x3e20,sp@-
 
127
        movel a6@(8),d3
 
128
        movel a6@(12),a2
 
129
        jne L15
 
130
        movel a2,sp@-
 
131
        jbsr _icopy
 
132
        jra L14
 
133
L15:
 
134
        moveb a2@(4),d4
 
135
        extbl d4
 
136
        jne L16
 
137
        movel d3,sp@-
 
138
        jbsr _stoi
 
139
        jra L14
 
140
L16:
 
141
        tstl d3
 
142
        jge L17
 
143
        moveq #-1,d5
 
144
        negl d3
 
145
        jpl L19
 
146
        movel a2,sp@-
 
147
        pea _MOST_NEGS
 
148
        jbsr _addii
 
149
        jra L14
 
150
L17:
 
151
        moveq #1,d5
 
152
L19:
 
153
        movel a2@(4),d2
 
154
        andl #65535,d2
 
155
        cmpl d5,d4
 
156
        jne L20
 
157
        movel d3,d1
 
158
        addl a2@(-4,d2:l:4),d3
 
159
        cmpl d3,d1
 
160
        jls L21
 
161
        moveq #1,d0
 
162
        jra L22
 
163
L21:
 
164
        clrl d0
 
165
L22:
 
166
        tstl d0
 
167
        jeq L23
 
168
        movel d2,a1
 
169
        pea a1@(1)
 
170
        jbsr _cgeti
 
171
        movel d0,a0
 
172
        movel d3,a0@(d2:l:4)
 
173
        movel d2,d0
 
174
        jra L65
 
175
L27:
 
176
        moveq #-1,d6
 
177
        cmpl a2@(-4,d0:l:4),d6
 
178
        jne L25
 
179
        clrl a0@(d0:l:4)
 
180
L65:
 
181
        subql #1,d0
 
182
        moveq #2,d6
 
183
        cmpl d0,d6
 
184
        jlt L27
 
185
L25:
 
186
        moveq #2,d6
 
187
        cmpl d0,d6
 
188
        jge L28
 
189
        movel a2@(-4,d0:l:4),d6
 
190
        addql #1,d6
 
191
        movel d6,a0@(d0:l:4)
 
192
        jra L66
 
193
L31:
 
194
        movel a2@(-4,d0:l:4),a0@(d0:l:4)
 
195
L66:
 
196
        subql #1,d0
 
197
        moveq #2,d6
 
198
        cmpl d0,d6
 
199
        jlt L31
 
200
        movel a0@,d0
 
201
        subql #1,d0
 
202
        movel d0,a0@(4)
 
203
        movel d0,a0@(8)
 
204
        addqw #4,a0
 
205
        addql #4,_avma
 
206
        jra L33
 
207
L28:
 
208
        moveq #1,d6
 
209
        movel d6,a0@(8)
 
210
        movel a0@,a0@(4)
 
211
        jra L33
 
212
L23:
 
213
        movel d2,sp@-
 
214
        jbsr _cgeti
 
215
        movel d0,a0
 
216
        movel d3,a0@(-4,d2:l:4)
 
217
        moveq #1,d0
 
218
        movel d2,d1
 
219
        subql #1,d1
 
220
        jra L34
 
221
L37:
 
222
        movel a2@(d0:l:4),a0@(d0:l:4)
 
223
        addql #1,d0
 
224
L34:
 
225
        cmpl d0,d1
 
226
        jgt L37
 
227
L33:
 
228
        movel a0@(4),d0
 
229
        andl #16777215,d0
 
230
        movel d5,d1
 
231
        jra L67
 
232
L20:
 
233
        moveq #3,d6
 
234
        cmpl d2,d6
 
235
        jne L39
 
236
        cmpl a2@(8),d3
 
237
        jcc L40
 
238
        pea 3:w
 
239
        jbsr _cgeti
 
240
        movel d0,a0
 
241
        movel d4,d0
 
242
        moveq #24,d6
 
243
        asll d6,d0
 
244
        addql #3,d0
 
245
        movel d0,a0@(4)
 
246
        movel a2@(8),d6
 
247
        subl d3,d6
 
248
        movel d6,a0@(8)
 
249
        jra L38
 
250
L40:
 
251
        cmpl a2@(8),d3
 
252
        jne L41
 
253
        movel _gzero,d0
 
254
        jra L14
 
255
L41:
 
256
        pea 3:w
 
257
        jbsr _cgeti
 
258
        movel d0,a0
 
259
        movel d4,d0
 
260
        negl d0
 
261
        moveq #24,d6
 
262
        asll d6,d0
 
263
        addql #3,d0
 
264
        movel d0,a0@(4)
 
265
        subl a2@(8),d3
 
266
        movel d3,a0@(8)
 
267
        jra L38
 
268
L39:
 
269
        movel a2@(-4,d2:l:4),d1
 
270
        movel d3,d0
 
271
        movel d1,d3
 
272
        subl d0,d3
 
273
        cmpl d1,d0
 
274
        jhi L42
 
275
        clrl d0
 
276
        jra L43
 
277
L42:
 
278
        moveq #1,d0
 
279
L43:
 
280
        tstl d0
 
281
        jeq L44
 
282
        movel d2,sp@-
 
283
        jbsr _cgeti
 
284
        movel d0,a0
 
285
        movel d3,a0@(-4,d2:l:4)
 
286
        movel d2,d0
 
287
        subql #2,d0
 
288
        tstl a2@(d0:l:4)
 
289
        jne L62
 
290
L48:
 
291
        moveq #-1,d6
 
292
        movel d6,a0@(d0:l:4)
 
293
        subql #1,d0
 
294
        tstl a2@(d0:l:4)
 
295
        jeq L48
 
296
L62:
 
297
        movel a2@(d0:l:4),d1
 
298
        subql #1,d1
 
299
        movel d1,a0@(d0:l:4)
 
300
        moveq #2,d6
 
301
        cmpl d0,d6
 
302
        jlt L50
 
303
        tstl d1
 
304
        jeq L49
 
305
L50:
 
306
        subql #1,d0
 
307
        tstl d0
 
308
        jle L38
 
309
L54:
 
310
        movel a2@(d0:l:4),a0@(d0:l:4)
 
311
        subql #1,d0
 
312
        tstl d0
 
313
        jgt L54
 
314
        jra L38
 
315
L49:
 
316
        movel a0@,d0
 
317
        subql #1,d0
 
318
        movel d0,a0@(4)
 
319
        movel d0,a0@(8)
 
320
        addqw #4,a0
 
321
        addql #4,_avma
 
322
        movel a0@(4),d0
 
323
        andl #16777215,d0
 
324
        movel d4,d1
 
325
L67:
 
326
        moveq #24,d6
 
327
        asll d6,d1
 
328
        addl d1,d0
 
329
        movel d0,a0@(4)
 
330
        jra L38
 
331
L44:
 
332
        movel d2,sp@-
 
333
        jbsr _cgeti
 
334
        movel d0,a0
 
335
        movel d3,a0@(-4,d2:l:4)
 
336
        moveq #1,d0
 
337
        movel d2,d1
 
338
        subql #1,d1
 
339
        jra L57
 
340
L60:
 
341
        movel a2@(d0:l:4),a0@(d0:l:4)
 
342
        addql #1,d0
 
343
L57:
 
344
        cmpl d0,d1
 
345
        jgt L60
 
346
L38:
 
347
        movel a0,d0
 
348
L14:
 
349
        moveml a6@(-24),#0x47c
 
350
        unlk a6
 
351
        rts
 
352
        .even
 
353
.globl _addii
 
354
_addii:
 
355
        link a6,#-4
 
356
        moveml #0x3f3c,sp@-
 
357
        movel a6@(8),a5
 
358
        movel a6@(12),a6@(-4)
 
359
        movel a5@(4),d4
 
360
        andl #65535,d4
 
361
        movel a6@(-4),a4
 
362
        movel a4@(4),d5
 
363
        andl #65535,d5
 
364
        cmpl d4,d5
 
365
        jle L69
 
366
        movel a5,a3
 
367
        movel a6@(-4),a5
 
368
        movel a3,a6@(-4)
 
369
        movel d4,d6
 
370
        movel d5,d4
 
371
        movel d6,d5
 
372
L69:
 
373
        movel a6@(-4),a4
 
374
        moveb a4@(4),d7
 
375
        extbl d7
 
376
        movel d7,a2
 
377
        tstl a2
 
378
        jne L70
 
379
        movel a5,sp@-
 
380
        jbsr _icopy
 
381
        jra L68
 
382
L70:
 
383
        moveb a5@(4),d6
 
384
        extbl d6
 
385
        cmpl d6,a2
 
386
        jne L71
 
387
        movel d4,a4
 
388
        pea a4@(1)
 
389
        jbsr _cgeti
 
390
        movel d0,a3
 
391
        clrl d1
 
392
        movel d4,d0
 
393
        asll #2,d0
 
394
        lea a3@(4,d0:l),a2
 
395
        lea a5@(0,d0:l),a1
 
396
        movel a6@(-4),a4
 
397
        lea a4@(d5:l:4),a0
 
398
        movel d5,d2
 
399
        subql #2,d2
 
400
L72:
 
401
#APP
 
402
        addl #-1,d1
 
403
#NO_APP
 
404
        moveq #16,d7
 
405
        cmpl d7,d2
 
406
        jhi L77
 
407
LI94:
 
408
        movew pc@(L94-LI94-2:b,d2:l:2),d7
 
409
        jmp pc@(2,d7:w)
 
410
L94:
 
411
        .word L93-L94
 
412
        .word L92-L94
 
413
        .word L91-L94
 
414
        .word L90-L94
 
415
        .word L89-L94
 
416
        .word L88-L94
 
417
        .word L87-L94
 
418
        .word L86-L94
 
419
        .word L85-L94
 
420
        .word L84-L94
 
421
        .word L83-L94
 
422
        .word L82-L94
 
423
        .word L81-L94
 
424
        .word L80-L94
 
425
        .word L79-L94
 
426
        .word L78-L94
 
427
        .word L77-L94
 
428
L77:
 
429
        movel a1@-,d7
 
430
        movel a0@-,d3
 
431
#APP
 
432
        addxl d3,d7
 
433
#NO_APP
 
434
        movel d7,a2@-
 
435
L78:
 
436
        movel a1@-,d7
 
437
        movel a0@-,d3
 
438
#APP
 
439
        addxl d3,d7
 
440
#NO_APP
 
441
        movel d7,a2@-
 
442
L79:
 
443
        movel a1@-,d7
 
444
        movel a0@-,d3
 
445
#APP
 
446
        addxl d3,d7
 
447
#NO_APP
 
448
        movel d7,a2@-
 
449
L80:
 
450
        movel a1@-,d7
 
451
        movel a0@-,d3
 
452
#APP
 
453
        addxl d3,d7
 
454
#NO_APP
 
455
        movel d7,a2@-
 
456
L81:
 
457
        movel a1@-,d7
 
458
        movel a0@-,d3
 
459
#APP
 
460
        addxl d3,d7
 
461
#NO_APP
 
462
        movel d7,a2@-
 
463
L82:
 
464
        movel a1@-,d7
 
465
        movel a0@-,d3
 
466
#APP
 
467
        addxl d3,d7
 
468
#NO_APP
 
469
        movel d7,a2@-
 
470
L83:
 
471
        movel a1@-,d7
 
472
        movel a0@-,d3
 
473
#APP
 
474
        addxl d3,d7
 
475
#NO_APP
 
476
        movel d7,a2@-
 
477
L84:
 
478
        movel a1@-,d7
 
479
        movel a0@-,d3
 
480
#APP
 
481
        addxl d3,d7
 
482
#NO_APP
 
483
        movel d7,a2@-
 
484
L85:
 
485
        movel a1@-,d7
 
486
        movel a0@-,d3
 
487
#APP
 
488
        addxl d3,d7
 
489
#NO_APP
 
490
        movel d7,a2@-
 
491
L86:
 
492
        movel a1@-,d7
 
493
        movel a0@-,d3
 
494
#APP
 
495
        addxl d3,d7
 
496
#NO_APP
 
497
        movel d7,a2@-
 
498
L87:
 
499
        movel a1@-,d7
 
500
        movel a0@-,d3
 
501
#APP
 
502
        addxl d3,d7
 
503
#NO_APP
 
504
        movel d7,a2@-
 
505
L88:
 
506
        movel a1@-,d7
 
507
        movel a0@-,d3
 
508
#APP
 
509
        addxl d3,d7
 
510
#NO_APP
 
511
        movel d7,a2@-
 
512
L89:
 
513
        movel a1@-,d7
 
514
        movel a0@-,d3
 
515
#APP
 
516
        addxl d3,d7
 
517
#NO_APP
 
518
        movel d7,a2@-
 
519
L90:
 
520
        movel a1@-,d7
 
521
        movel a0@-,d3
 
522
#APP
 
523
        addxl d3,d7
 
524
#NO_APP
 
525
        movel d7,a2@-
 
526
L91:
 
527
        movel a1@-,d7
 
528
        movel a0@-,d3
 
529
#APP
 
530
        addxl d3,d7
 
531
#NO_APP
 
532
        movel d7,a2@-
 
533
L92:
 
534
        movel a1@-,d7
 
535
        movel a0@-,d3
 
536
#APP
 
537
        addxl d3,d7
 
538
#NO_APP
 
539
        movel d7,a2@-
 
540
L93:
 
541
#APP
 
542
        clrl d1
 
543
        addxl d1,d1
 
544
#NO_APP
 
545
        moveq #-16,d7
 
546
        addl d7,d2
 
547
        tstl d2
 
548
        jgt L72
 
549
        tstl d1
 
550
        jeq L95
 
551
        movel a5,d0
 
552
        addql #8,d0
 
553
L96:
 
554
        subqw #4,a1
 
555
        movel a1,a0
 
556
        cmpl a1,d0
 
557
        jhi L97
 
558
        moveq #-1,d7
 
559
        cmpl a1@,d7
 
560
        jne L98
 
561
        clrl a2@-
 
562
        jra L96
 
563
L98:
 
564
        movel a0@,d7
 
565
        addql #1,d7
 
566
        movel d7,a2@-
 
567
        jra L100
 
568
L102:
 
569
        movel a0@,a2@-
 
570
L100:
 
571
        subqw #4,a1
 
572
        movel a1,a0
 
573
        cmpl a1,d0
 
574
        jls L102
 
575
        jra L160
 
576
L97:
 
577
        moveq #1,d7
 
578
        movel d7,a3@(8)
 
579
        movel a5@(4),d7
 
580
        addql #1,d7
 
581
        movel d7,a3@(4)
 
582
        jra L108
 
583
L95:
 
584
        movel d4,d1
 
585
        subl d5,d1
 
586
        jra L105
 
587
L107:
 
588
        movel a1@-,a2@-
 
589
L105:
 
590
        dbra d1,L107
 
591
        clrw d1
 
592
        subql #1,d1
 
593
        jcc L107
 
594
L160:
 
595
        movel a3@,d7
 
596
        subql #1,d7
 
597
        movel d7,a3@(4)
 
598
        movel a5@(4),a3@(8)
 
599
        addqw #4,a3
 
600
        addql #4,_avma
 
601
        jra L108
 
602
L71:
 
603
        cmpl d4,d5
 
604
        jne L109
 
605
        movel d4,d1
 
606
        subql #2,d1
 
607
        lea a5@(8),a1
 
608
        movel a6@(-4),a0
 
609
        addqw #8,a0
 
610
        jra L110
 
611
L116:
 
612
        movel a1@+,d2
 
613
        movel a0@+,d0
 
614
        cmpl d0,d2
 
615
        jcc L112
 
616
        movel a5,a3
 
617
        movel a6@(-4),a5
 
618
        movel a3,a6@(-4)
 
619
        movel a2,d6
 
620
        jra L109
 
621
L112:
 
622
        cmpl d2,d0
 
623
        jcs L109
 
624
L110:
 
625
        dbra d1,L116
 
626
        clrw d1
 
627
        subql #1,d1
 
628
        jcc L116
 
629
        movel _gzero,d0
 
630
        jra L68
 
631
L109:
 
632
        movel d4,sp@-
 
633
        jbsr _cgeti
 
634
        movel d0,a3
 
635
        clrl d1
 
636
        movel d4,d0
 
637
        asll #2,d0
 
638
        lea a5@(0,d0:l),a1
 
639
        movel a6@(-4),a4
 
640
        lea a4@(d5:l:4),a0
 
641
        lea a3@(0,d0:l),a2
 
642
        movel d5,d2
 
643
        subql #2,d2
 
644
L118:
 
645
#APP
 
646
        addl #-1,d1
 
647
#NO_APP
 
648
        moveq #16,d7
 
649
        cmpl d7,d2
 
650
        jhi L123
 
651
LI140:
 
652
        movew pc@(L140-LI140-2:b,d2:l:2),d7
 
653
        jmp pc@(2,d7:w)
 
654
L140:
 
655
        .word L139-L140
 
656
        .word L138-L140
 
657
        .word L137-L140
 
658
        .word L136-L140
 
659
        .word L135-L140
 
660
        .word L134-L140
 
661
        .word L133-L140
 
662
        .word L132-L140
 
663
        .word L131-L140
 
664
        .word L130-L140
 
665
        .word L129-L140
 
666
        .word L128-L140
 
667
        .word L127-L140
 
668
        .word L126-L140
 
669
        .word L125-L140
 
670
        .word L124-L140
 
671
        .word L123-L140
 
672
L123:
 
673
        movel a1@-,d7
 
674
        movel a0@-,d3
 
675
#APP
 
676
        subxl d3,d7
 
677
#NO_APP
 
678
        movel d7,a2@-
 
679
L124:
 
680
        movel a1@-,d7
 
681
        movel a0@-,d3
 
682
#APP
 
683
        subxl d3,d7
 
684
#NO_APP
 
685
        movel d7,a2@-
 
686
L125:
 
687
        movel a1@-,d7
 
688
        movel a0@-,d3
 
689
#APP
 
690
        subxl d3,d7
 
691
#NO_APP
 
692
        movel d7,a2@-
 
693
L126:
 
694
        movel a1@-,d7
 
695
        movel a0@-,d3
 
696
#APP
 
697
        subxl d3,d7
 
698
#NO_APP
 
699
        movel d7,a2@-
 
700
L127:
 
701
        movel a1@-,d7
 
702
        movel a0@-,d3
 
703
#APP
 
704
        subxl d3,d7
 
705
#NO_APP
 
706
        movel d7,a2@-
 
707
L128:
 
708
        movel a1@-,d7
 
709
        movel a0@-,d3
 
710
#APP
 
711
        subxl d3,d7
 
712
#NO_APP
 
713
        movel d7,a2@-
 
714
L129:
 
715
        movel a1@-,d7
 
716
        movel a0@-,d3
 
717
#APP
 
718
        subxl d3,d7
 
719
#NO_APP
 
720
        movel d7,a2@-
 
721
L130:
 
722
        movel a1@-,d7
 
723
        movel a0@-,d3
 
724
#APP
 
725
        subxl d3,d7
 
726
#NO_APP
 
727
        movel d7,a2@-
 
728
L131:
 
729
        movel a1@-,d7
 
730
        movel a0@-,d3
 
731
#APP
 
732
        subxl d3,d7
 
733
#NO_APP
 
734
        movel d7,a2@-
 
735
L132:
 
736
        movel a1@-,d7
 
737
        movel a0@-,d3
 
738
#APP
 
739
        subxl d3,d7
 
740
#NO_APP
 
741
        movel d7,a2@-
 
742
L133:
 
743
        movel a1@-,d7
 
744
        movel a0@-,d3
 
745
#APP
 
746
        subxl d3,d7
 
747
#NO_APP
 
748
        movel d7,a2@-
 
749
L134:
 
750
        movel a1@-,d7
 
751
        movel a0@-,d3
 
752
#APP
 
753
        subxl d3,d7
 
754
#NO_APP
 
755
        movel d7,a2@-
 
756
L135:
 
757
        movel a1@-,d7
 
758
        movel a0@-,d3
 
759
#APP
 
760
        subxl d3,d7
 
761
#NO_APP
 
762
        movel d7,a2@-
 
763
L136:
 
764
        movel a1@-,d7
 
765
        movel a0@-,d3
 
766
#APP
 
767
        subxl d3,d7
 
768
#NO_APP
 
769
        movel d7,a2@-
 
770
L137:
 
771
        movel a1@-,d7
 
772
        movel a0@-,d3
 
773
#APP
 
774
        subxl d3,d7
 
775
#NO_APP
 
776
        movel d7,a2@-
 
777
L138:
 
778
        movel a1@-,d7
 
779
        movel a0@-,d3
 
780
#APP
 
781
        subxl d3,d7
 
782
#NO_APP
 
783
        movel d7,a2@-
 
784
L139:
 
785
#APP
 
786
        clrl d1
 
787
        addxl d1,d1
 
788
#NO_APP
 
789
        moveq #-16,d7
 
790
        addl d7,d2
 
791
        tstl d2
 
792
        jgt L118
 
793
        tstl d1
 
794
        jeq L141
 
795
        jra L142
 
796
L144:
 
797
        moveq #-1,d7
 
798
        movel d7,a2@-
 
799
L142:
 
800
        movel a1@-,d0
 
801
        jeq L144
 
802
        movel a5,d1
 
803
        addql #8,d1
 
804
        cmpl a1,d1
 
805
        jhi L149
 
806
        subql #1,d0
 
807
        movel d0,a2@-
 
808
        jra L146
 
809
L148:
 
810
        movel a0@,a2@-
 
811
L146:
 
812
        subqw #4,a1
 
813
        movel a1,a0
 
814
        cmpl a1,d1
 
815
        jls L148
 
816
        jra L149
 
817
L141:
 
818
        movel d4,d2
 
819
        subl d5,d2
 
820
        jra L150
 
821
L152:
 
822
        movel a1@-,a2@-
 
823
L150:
 
824
        dbra d2,L152
 
825
        clrw d2
 
826
        subql #1,d2
 
827
        jcc L152
 
828
L149:
 
829
        tstl a3@(8)
 
830
        jeq L153
 
831
        movel a5@(4),a3@(4)
 
832
        jra L108
 
833
L153:
 
834
        lea a3@(12),a2
 
835
        tstl a2@
 
836
        jne L159
 
837
L157:
 
838
        addqw #4,a2
 
839
        tstl a2@
 
840
        jeq L157
 
841
L159:
 
842
        subqw #8,a2
 
843
        movel a2,d2
 
844
        subl a3,d2
 
845
        jpl L158
 
846
        addql #3,d2
 
847
L158:
 
848
        asrl #2,d2
 
849
        movel a3@,d0
 
850
        subl d2,d0
 
851
        movel d0,a2@
 
852
        movel d0,a2@(4)
 
853
        movel a2,a3
 
854
        movel a3@(4),d0
 
855
        andl #16777215,d0
 
856
        movel d6,d1
 
857
        moveq #24,d7
 
858
        asll d7,d1
 
859
        addl d1,d0
 
860
        movel d0,a3@(4)
 
861
        movel d2,d0
 
862
        asll #2,d0
 
863
        addl d0,_avma
 
864
L108:
 
865
        movel a3,d0
 
866
L68:
 
867
        moveml a6@(-44),#0x3cfc
 
868
        unlk a6
 
869
        rts
 
870
        .even
 
871
.globl _mulss
 
872
_mulss:
 
873
        link a6,#0
 
874
        moveml #0x3c00,sp@-
 
875
        movel a6@(8),d0
 
876
        movel a6@(12),d2
 
877
        tstl d0
 
878
        jeq L163
 
879
        tstl d2
 
880
        jne L162
 
881
L163:
 
882
        movel _gzero,d0
 
883
        jra L161
 
884
L162:
 
885
        moveq #1,d4
 
886
        tstl d0
 
887
        jge L164
 
888
        moveq #-1,d4
 
889
        negl d0
 
890
        jpl L164
 
891
        movel d0,sp@-
 
892
        jbsr _stoi
 
893
        movel d0,sp@-
 
894
        movel d2,sp@-
 
895
        jbsr _mulsi
 
896
        jra L161
 
897
L164:
 
898
        tstl d2
 
899
        jge L166
 
900
        negl d4
 
901
        negl d2
 
902
        jpl L166
 
903
        pea _ABS_MOST_NEGS
 
904
        tstl d4
 
905
        jgt L169
 
906
        negl d0
 
907
L169:
 
908
        movel d0,sp@-
 
909
        jbsr _mulsi
 
910
        jra L161
 
911
L166:
 
912
#APP
 
913
        mulul d2,d3:d0
 
914
#NO_APP
 
915
        movel d0,d2
 
916
        tstl d3
 
917
        jeq L170
 
918
        pea 4:w
 
919
        jbsr _cgeti
 
920
        movel d0,a0
 
921
        movel d3,a0@(8)
 
922
        movel d2,a0@(12)
 
923
        jra L171
 
924
L170:
 
925
        pea 3:w
 
926
        jbsr _cgeti
 
927
        movel d0,a0
 
928
        movel d2,a0@(8)
 
929
L171:
 
930
        movel a0@,a0@(4)
 
931
        movel a0@(4),d0
 
932
        andl #16777215,d0
 
933
        movel d4,d1
 
934
        moveq #24,d5
 
935
        asll d5,d1
 
936
        addl d1,d0
 
937
        movel d0,a0@(4)
 
938
        movel a0,d0
 
939
L161:
 
940
        moveml a6@(-16),#0x3c
 
941
        unlk a6
 
942
        rts
 
943
        .even
 
944
.globl _mulii
 
945
_mulii:
 
946
        link a6,#-8
 
947
        moveml #0x3f3c,sp@-
 
948
        movel a6@(8),a3
 
949
        movel a6@(12),d7
 
950
        movel a3@(4),d5
 
951
        andl #65535,d5
 
952
        movel d7,a5
 
953
        movel a5@(4),d6
 
954
        andl #65535,d6
 
955
        movel d6,a6@(-4)
 
956
        moveb a3@(4),d2
 
957
        extbl d2
 
958
        jeq L188
 
959
        movel d7,a5
 
960
        moveb a5@(4),d0
 
961
        extbl d0
 
962
        jne L174
 
963
L188:
 
964
        movel _gzero,d0
 
965
        jra L172
 
966
L174:
 
967
        tstl d0
 
968
        jge L175
 
969
        negl d2
 
970
L175:
 
971
        cmpl a6@(-4),d5
 
972
        jle L176
 
973
        movel a3,a2
 
974
        movel d7,a3
 
975
        movel a2,d7
 
976
        movel d5,a4
 
977
        movel a6@(-4),d5
 
978
        movel a4,a6@(-4)
 
979
L176:
 
980
        movel a6@(-4),a5
 
981
        lea a5@(-2,d5:l),a4
 
982
        cmpl #65535,a4
 
983
        jle L177
 
984
        pea 17:w
 
985
        jbsr _err
 
986
        addqw #4,sp
 
987
L177:
 
988
        movel a4,sp@-
 
989
        jbsr _cgeti
 
990
        movel d0,a2
 
991
        movel a2@,a2@(4)
 
992
        movel a2@(4),d0
 
993
        andl #16777215,d0
 
994
        movel d2,d1
 
995
        moveq #24,d6
 
996
        asll d6,d1
 
997
        addl d1,d0
 
998
        movel d0,a2@(4)
 
999
        lea a3@(d5:l:4),a5
 
1000
        movel a5,a6@(-8)
 
1001
        movel a6@(-8),a5
 
1002
        subqw #4,a5
 
1003
        movel a5,a6@(-8)
 
1004
        movel a5@,d4
 
1005
        clrl d2
 
1006
        movel a6@(-4),d3
 
1007
        subql #2,d3
 
1008
        movel d7,a5
 
1009
        movel a6@(-4),d6
 
1010
        lea a5@(d6:l:4),a1
 
1011
        lea a2@(a4:l:4),a3
 
1012
        jra L178
 
1013
L180:
 
1014
        movel d2,d0
 
1015
        movel d4,d1
 
1016
#APP
 
1017
        mulul a1@-,d2:d1
 
1018
#NO_APP
 
1019
        addl d1,d0
 
1020
        clrl d6
 
1021
#APP
 
1022
        addxl d6,d2
 
1023
#NO_APP
 
1024
        movel d0,a3@-
 
1025
L178:
 
1026
        dbra d3,L180
 
1027
        clrw d3
 
1028
        subql #1,d3
 
1029
        jcc L180
 
1030
        movel d2,a3@-
 
1031
        lea a2@(a4:l:4),a3
 
1032
        movel d7,a5
 
1033
        movel a6@(-4),d6
 
1034
        lea a5@(d6:l:4),a4
 
1035
        subql #2,a6@(-4)
 
1036
        subql #2,d5
 
1037
        clrl d7
 
1038
        jra L181
 
1039
L186:
 
1040
        movel a6@(-8),a5
 
1041
        subqw #4,a5
 
1042
        movel a5,a6@(-8)
 
1043
        movel a5@,d4
 
1044
        movel a6@(-4),d3
 
1045
        movel a4,a1
 
1046
        lea a3@(-4),a0
 
1047
        movel a0,a3
 
1048
        clrl d1
 
1049
        jra L183
 
1050
L185:
 
1051
        movel a1@-,d0
 
1052
#APP
 
1053
        mulul d4,d2:d0
 
1054
#NO_APP
 
1055
        addl a0@-,d0
 
1056
#APP
 
1057
        addxl d7,d2
 
1058
#NO_APP
 
1059
        addl d1,d0
 
1060
#APP
 
1061
        addxl d7,d2
 
1062
#NO_APP
 
1063
        movel d0,a0@
 
1064
        movel d2,d1
 
1065
L183:
 
1066
        dbra d3,L185
 
1067
        clrw d3
 
1068
        subql #1,d3
 
1069
        jcc L185
 
1070
        movel d2,a0@-
 
1071
L181:
 
1072
        subql #1,d5
 
1073
        tstl d5
 
1074
        jgt L186
 
1075
        tstl a2@(8)
 
1076
        jne L187
 
1077
        movel a2@(4),d6
 
1078
        subql #1,d6
 
1079
        movel d6,a2@(8)
 
1080
        movel a2@,d6
 
1081
        subql #1,d6
 
1082
        movel d6,a2@(4)
 
1083
        addqw #4,a2
 
1084
        addql #4,_avma
 
1085
L187:
 
1086
        movel a2,d0
 
1087
L172:
 
1088
        moveml a6@(-48),#0x3cfc
 
1089
        unlk a6
 
1090
        rts
 
1091
        .even
 
1092
.globl _confrac
 
1093
_confrac:
 
1094
        link a6,#-8
 
1095
        moveml #0x3f3c,sp@-
 
1096
        movel a6@(8),a5
 
1097
        movel a5@,d7
 
1098
        andl #65535,d7
 
1099
        movel d7,a6@(-8)
 
1100
        movel a5@(4),d5
 
1101
        andl #16777215,d5
 
1102
        addl #-8388608,d5
 
1103
        moveq #-1,d7
 
1104
        subl d5,d7
 
1105
        movel d7,d5
 
1106
        movel _avma,a6@(-4)
 
1107
        movel a6@(-8),a4
 
1108
        subqw #2,a4
 
1109
        movel a4,d7
 
1110
        asll #5,d7
 
1111
        movel d7,a4
 
1112
        addl d5,a4
 
1113
        lea a4@(63),a3
 
1114
        movel a3,d7
 
1115
        asrl #5,d7
 
1116
        movel d7,a3
 
1117
        movel a3,sp@-
 
1118
        jbsr _cgeti
 
1119
        movel d0,a2
 
1120
        movel d5,d0
 
1121
        asrl #5,d0
 
1122
        clrl d3
 
1123
        addqw #4,sp
 
1124
        cmpl d3,d0
 
1125
        jle L216
 
1126
L193:
 
1127
        clrl a2@(d3:l:4)
 
1128
        addql #1,d3
 
1129
        cmpl d3,d0
 
1130
        jgt L193
 
1131
L216:
 
1132
        moveq #31,d7
 
1133
        andl d7,d5
 
1134
        jne L194
 
1135
        moveq #2,d4
 
1136
        cmpl a6@(-8),d4
 
1137
        jge L199
 
1138
L198:
 
1139
        movel a5@(d4:l:4),a2@(d3:l:4)
 
1140
        addql #1,d3
 
1141
        addql #1,d4
 
1142
        cmpl a6@(-8),d4
 
1143
        jlt L198
 
1144
        jra L199
 
1145
L194:
 
1146
        clrl d6
 
1147
        moveq #2,d4
 
1148
        cmpl a6@(-8),d4
 
1149
        jge L214
 
1150
        moveq #32,d7
 
1151
        subl d5,d7
 
1152
        movel d7,a0
 
1153
L203:
 
1154
        movel d3,d0
 
1155
        movel a5@(d4:l:4),d2
 
1156
        addql #1,d3
 
1157
        movel d2,d1
 
1158
        lsrl d5,d1
 
1159
        addl d6,d1
 
1160
        movel d1,a2@(d0:l:4)
 
1161
        movel d2,d6
 
1162
        movel a0,d7
 
1163
        lsll d7,d6
 
1164
        addql #1,d4
 
1165
        cmpl a6@(-8),d4
 
1166
        jlt L203
 
1167
L214:
 
1168
        movel d6,a2@(-8,a3:l:4)
 
1169
L199:
 
1170
        clrl a2@(-4,a3:l:4)
 
1171
        movel a4,d7
 
1172
        fmovel d7,fp0
 
1173
        fmuld #0r.30102999999999999758,fp0
 
1174
        fmovecr #0x32,fp1
 
1175
        faddx fp1,fp0
 
1176
        fintrzx fp0,fp0
 
1177
        fmovel fp0,d2
 
1178
        moveq #17,d5
 
1179
        addl d2,d5
 
1180
        moveq #9,d7
 
1181
        divsl d7,d5
 
1182
        movel d5,sp@-
 
1183
        jbsr _cgeti
 
1184
        movel d0,a0
 
1185
        movel d2,a0@
 
1186
        moveq #1,d4
 
1187
        cmpl d4,d5
 
1188
        jle L213
 
1189
        movel #1000000000,d6
 
1190
L211:
 
1191
        clrl d1
 
1192
        movel a3,d3
 
1193
        jra L217
 
1194
L210:
 
1195
        movel d1,d2
 
1196
        movel a2@(d3:l:4),d0
 
1197
#APP
 
1198
        mulul d6,d1:d0
 
1199
#NO_APP
 
1200
        addl d2,d0
 
1201
        clrl d7
 
1202
#APP
 
1203
        addxl d7,d1
 
1204
#NO_APP
 
1205
        movel d0,a2@(d3:l:4)
 
1206
L217:
 
1207
        subql #1,d3
 
1208
        jpl L210
 
1209
        movel d1,a0@(d4:l:4)
 
1210
        addql #1,d4
 
1211
        cmpl d4,d5
 
1212
        jgt L211
 
1213
L213:
 
1214
        movel a6@(-4),_avma
 
1215
        movel a0,d0
 
1216
        moveml a6@(-48),#0x3cfc
 
1217
        unlk a6
 
1218
        rts
 
1219
        .even
 
1220
.globl _divss
 
1221
_divss:
 
1222
        link a6,#0
 
1223
        moveml #0x3820,sp@-
 
1224
        movel a6@(8),d4
 
1225
        movel a6@(12),d3
 
1226
        jne L219
 
1227
        pea 23:w
 
1228
        jbsr _err
 
1229
        addqw #4,sp
 
1230
L219:
 
1231
        cmpl #-2147483648,d4
 
1232
        jne L220
 
1233
        movel d3,sp@-
 
1234
        movel d4,sp@-
 
1235
        jbsr _stoi
 
1236
        addqw #4,sp
 
1237
        movel d0,sp@-
 
1238
        jbsr _divis
 
1239
        jra L218
 
1240
L220:
 
1241
        clrl _hiremainder
 
1242
        movel d4,sp@-
 
1243
        lea _abs,a2
 
1244
        jbsr a2@
 
1245
        movel d0,d2
 
1246
        movel d3,sp@-
 
1247
        jbsr a2@
 
1248
        movel _hiremainder,d1
 
1249
#APP
 
1250
        divul d0,d1:d2
 
1251
#NO_APP
 
1252
        movel d1,_hiremainder
 
1253
        movel d2,d0
 
1254
        addqw #8,sp
 
1255
        tstl d3
 
1256
        jge L221
 
1257
        negl _hiremainder
 
1258
        negl d0
 
1259
L221:
 
1260
        tstl d4
 
1261
        jge L222
 
1262
        negl d0
 
1263
L222:
 
1264
        movel d0,sp@-
 
1265
        jbsr _stoi
 
1266
L218:
 
1267
        moveml a6@(-16),#0x41c
 
1268
        unlk a6
 
1269
        rts
 
1270
        .even
 
1271
.globl _modss
 
1272
_modss:
 
1273
        link a6,#0
 
1274
        moveml #0x3820,sp@-
 
1275
        movel a6@(8),d2
 
1276
        movel a6@(12),d4
 
1277
        jne L224
 
1278
        pea 38:w
 
1279
        jbsr _err
 
1280
        addqw #4,sp
 
1281
L224:
 
1282
        cmpl #-2147483648,d2
 
1283
        jne L225
 
1284
        movel d4,sp@-
 
1285
        movel d2,sp@-
 
1286
        jbsr _stoi
 
1287
        addqw #4,sp
 
1288
        movel d0,sp@-
 
1289
        jbsr _modis
 
1290
        jra L223
 
1291
L225:
 
1292
        clrl d3
 
1293
        movel d2,sp@-
 
1294
        lea _abs,a2
 
1295
        jbsr a2@
 
1296
        movel d0,d2
 
1297
        movel d4,sp@-
 
1298
        jbsr a2@
 
1299
#APP
 
1300
        divul d0,d3:d2
 
1301
#NO_APP
 
1302
        addqw #8,sp
 
1303
        tstl d3
 
1304
        jne L226
 
1305
        movel _gzero,d0
 
1306
        jra L223
 
1307
L226:
 
1308
        tstl d3
 
1309
        jge L227
 
1310
        subl d3,d0
 
1311
        movel d0,sp@-
 
1312
        jra L229
 
1313
L227:
 
1314
        movel d3,sp@-
 
1315
L229:
 
1316
        jbsr _stoi
 
1317
L223:
 
1318
        moveml a6@(-16),#0x41c
 
1319
        unlk a6
 
1320
        rts
 
1321
        .even
 
1322
.globl _resss
 
1323
_resss:
 
1324
        link a6,#0
 
1325
        moveml #0x3820,sp@-
 
1326
        movel a6@(12),d4
 
1327
        jne L231
 
1328
        pea 40:w
 
1329
        jbsr _err
 
1330
        addqw #4,sp
 
1331
L231:
 
1332
        clrl d3
 
1333
        movel a6@(8),sp@-
 
1334
        lea _abs,a2
 
1335
        jbsr a2@
 
1336
        movel d0,d2
 
1337
        movel d4,sp@-
 
1338
        jbsr a2@
 
1339
#APP
 
1340
        divul d0,d3:d2
 
1341
#NO_APP
 
1342
        addqw #8,sp
 
1343
        tstl d4
 
1344
        jge L232
 
1345
        negl d3
 
1346
L232:
 
1347
        movel d3,sp@-
 
1348
        jbsr _stoi
 
1349
        moveml a6@(-16),#0x41c
 
1350
        unlk a6
 
1351
        rts
 
1352
        .even
 
1353
.globl _divsi
 
1354
_divsi:
 
1355
        link a6,#0
 
1356
        moveml #0x3820,sp@-
 
1357
        movel a6@(8),d3
 
1358
        movel a6@(12),a2
 
1359
        moveb a2@(4),d0
 
1360
        extbl d0
 
1361
        movel a2@(4),d2
 
1362
        andl #65535,d2
 
1363
        tstl d0
 
1364
        jne L235
 
1365
        pea 24:w
 
1366
        jbsr _err
 
1367
        addqw #4,sp
 
1368
L235:
 
1369
        tstl d3
 
1370
        jeq L237
 
1371
        moveq #3,d4
 
1372
        cmpl d2,d4
 
1373
        jlt L237
 
1374
        tstl a2@(8)
 
1375
        jge L236
 
1376
L237:
 
1377
        movel d3,_hiremainder
 
1378
        movel _gzero,d0
 
1379
        jra L234
 
1380
L236:
 
1381
        cmpl #-2147483648,d3
 
1382
        jne L238
 
1383
        clrl sp@-
 
1384
        movel a2,sp@-
 
1385
        movel d3,sp@-
 
1386
        jbsr _stoi
 
1387
        addqw #4,sp
 
1388
        movel d0,sp@-
 
1389
        jbsr _dvmdii
 
1390
        jra L234
 
1391
L238:
 
1392
        clrl _hiremainder
 
1393
        movel d3,sp@-
 
1394
        jbsr _abs
 
1395
        movel _hiremainder,d4
 
1396
#APP
 
1397
        divul a2@(8),d4:d0
 
1398
#NO_APP
 
1399
        movel d4,_hiremainder
 
1400
        movel d0,d1
 
1401
        moveb a2@(4),d0
 
1402
        extbl d0
 
1403
        addqw #4,sp
 
1404
        jpl L239
 
1405
        negl _hiremainder
 
1406
        negl d1
 
1407
L239:
 
1408
        tstl d3
 
1409
        jge L240
 
1410
        negl d1
 
1411
L240:
 
1412
        movel d1,sp@-
 
1413
        jbsr _stoi
 
1414
L234:
 
1415
        moveml a6@(-16),#0x41c
 
1416
        unlk a6
 
1417
        rts
 
1418
        .even
 
1419
.globl _divis
 
1420
_divis:
 
1421
        link a6,#0
 
1422
        moveml #0x3f30,sp@-
 
1423
        movel a6@(8),a2
 
1424
        movel a6@(12),d3
 
1425
        moveb a2@(4),d7
 
1426
        extbl d7
 
1427
        movel a2@(4),d6
 
1428
        andl #65535,d6
 
1429
        tstl d3
 
1430
        jne L242
 
1431
        pea 26:w
 
1432
        jbsr _err
 
1433
        addqw #4,sp
 
1434
L242:
 
1435
        tstl d7
 
1436
        jne L243
 
1437
        clrl _hiremainder
 
1438
        movel _gzero,d0
 
1439
        jra L241
 
1440
L243:
 
1441
        tstl d3
 
1442
        jge L244
 
1443
        negl d7
 
1444
        negl d3
 
1445
        jpl L244
 
1446
        clrl sp@-
 
1447
        movel d3,sp@-
 
1448
        jbsr _stoi
 
1449
        addqw #4,sp
 
1450
        movel d0,sp@-
 
1451
        movel a2,sp@-
 
1452
        jbsr _dvmdii
 
1453
        jra L241
 
1454
L244:
 
1455
        cmpl a2@(8),d3
 
1456
        jls L246
 
1457
        moveq #3,d5
 
1458
        cmpl d6,d5
 
1459
        jne L247
 
1460
        movel a2,sp@-
 
1461
        jbsr _itos
 
1462
        movel d0,_hiremainder
 
1463
        movel _gzero,d0
 
1464
        jra L241
 
1465
L247:
 
1466
        movel d6,a1
 
1467
        pea a1@(-1)
 
1468
        jbsr _cgeti
 
1469
        movel d0,a0
 
1470
        movew #1,a3
 
1471
        movel a2@(8),d4
 
1472
        jra L249
 
1473
L246:
 
1474
        movel d6,sp@-
 
1475
        jbsr _cgeti
 
1476
        movel d0,a0
 
1477
        subl a3,a3
 
1478
        clrl d4
 
1479
L249:
 
1480
        movel a3,d2
 
1481
        addql #2,d2
 
1482
        cmpl d2,d6
 
1483
        jle L256
 
1484
L253:
 
1485
        movel d2,d1
 
1486
        subl a3,d1
 
1487
        movel a2@(d2:l:4),d0
 
1488
#APP
 
1489
        divul d3,d4:d0
 
1490
#NO_APP
 
1491
        movel d0,a0@(d1:l:4)
 
1492
        addql #1,d2
 
1493
        cmpl d2,d6
 
1494
        jgt L253
 
1495
L256:
 
1496
        movel a0@,a0@(4)
 
1497
        movel a0@(4),d0
 
1498
        andl #16777215,d0
 
1499
        movel d7,d1
 
1500
        moveq #24,d5
 
1501
        asll d5,d1
 
1502
        addl d1,d0
 
1503
        movel d0,a0@(4)
 
1504
        tstl d7
 
1505
        jge L254
 
1506
        movel d4,d0
 
1507
        negl d0
 
1508
        jra L255
 
1509
L254:
 
1510
        movel d4,d0
 
1511
L255:
 
1512
        movel d0,_hiremainder
 
1513
        movel a0,d0
 
1514
L241:
 
1515
        moveml a6@(-32),#0xcfc
 
1516
        unlk a6
 
1517
        rts
 
1518
        .even
 
1519
.globl _dvmdii
 
1520
_dvmdii:
 
1521
        link a6,#-60
 
1522
        moveml #0x3f3c,sp@-
 
1523
        movel a6@(8),a4
 
1524
        moveb a4@(4),d6
 
1525
        extbl d6
 
1526
        movel d6,a6@(-24)
 
1527
        movel a6@(12),a1
 
1528
        moveb a1@(4),d6
 
1529
        extbl d6
 
1530
        movel d6,a6@(-28)
 
1531
        jne L258
 
1532
        pea 36:w
 
1533
        jbsr _err
 
1534
        addqw #4,sp
 
1535
L258:
 
1536
        tstl a6@(-24)
 
1537
        jne L259
 
1538
        moveq #-1,d6
 
1539
        cmpl a6@(16),d6
 
1540
        jeq L361
 
1541
        tstl a6@(16)
 
1542
        jeq L361
 
1543
        movel a6@(16),a1
 
1544
        movel _gzero,a1@
 
1545
L361:
 
1546
        movel _gzero,d0
 
1547
        jra L257
 
1548
L259:
 
1549
        movel a4@(4),d6
 
1550
        andl #65535,d6
 
1551
        movel d6,a6@(-8)
 
1552
        movel a6@(12),a1
 
1553
        movel a1@(4),d6
 
1554
        andl #65535,d6
 
1555
        movel d6,a6@(-12)
 
1556
        movel a6@(-8),d6
 
1557
        subl a6@(-12),d6
 
1558
        movel d6,a6@(-16)
 
1559
        jge L262
 
1560
        moveq #-1,d6
 
1561
        cmpl a6@(16),d6
 
1562
        jne L263
 
1563
        movel a4,sp@-
 
1564
        jbsr _icopy
 
1565
        jra L257
 
1566
L263:
 
1567
        tstl a6@(16)
 
1568
        jeq L361
 
1569
        movel a4,sp@-
 
1570
        jbsr _icopy
 
1571
        movel a6@(16),a1
 
1572
        movel d0,a1@
 
1573
        jra L361
 
1574
L262:
 
1575
        movel _avma,a6@(-4)
 
1576
        tstl a6@(-24)
 
1577
        jge L265
 
1578
        negl a6@(-28)
 
1579
L265:
 
1580
        moveq #3,d6
 
1581
        cmpl a6@(-12),d6
 
1582
        jne L266
 
1583
        movel a6@(12),a1
 
1584
        movel a1@(8),a6@(-60)
 
1585
        lea a4@(8),a3
 
1586
        movel a6@(-60),d6
 
1587
        cmpl a4@(8),d6
 
1588
        jls L267
 
1589
        movel a6@(-8),d2
 
1590
        subql #1,d2
 
1591
        movel a3@+,d5
 
1592
        jra L268
 
1593
L267:
 
1594
        movel a6@(-8),d2
 
1595
        clrl d5
 
1596
L268:
 
1597
        movel d2,sp@-
 
1598
        jbsr _cgeti
 
1599
        movel d0,a6@(-36)
 
1600
        movel d2,d7
 
1601
        subql #2,d7
 
1602
        movel d0,a2
 
1603
        addqw #8,a2
 
1604
        addqw #4,sp
 
1605
        jra L269
 
1606
L271:
 
1607
        movel a3@+,d0
 
1608
#APP
 
1609
        divul a6@(-60),d5:d0
 
1610
#NO_APP
 
1611
        movel d0,a2@+
 
1612
L269:
 
1613
        dbra d7,L271
 
1614
        clrw d7
 
1615
        subql #1,d7
 
1616
        jcc L271
 
1617
        moveq #-1,d6
 
1618
        cmpl a6@(16),d6
 
1619
        jne L272
 
1620
        movel a6@(-4),_avma
 
1621
        tstl d5
 
1622
        jeq L361
 
1623
        pea 3:w
 
1624
        jbsr _cgeti
 
1625
        movel d0,a6@(-40)
 
1626
        movel a6@(-24),d0
 
1627
        moveq #24,d6
 
1628
        asll d6,d0
 
1629
        movel a6@(-40),a1
 
1630
        addql #3,d0
 
1631
        movel d0,a1@(4)
 
1632
        movel d5,a1@(8)
 
1633
        movel a1,d0
 
1634
        jra L257
 
1635
L272:
 
1636
        moveq #2,d6
 
1637
        cmpl d2,d6
 
1638
        jeq L274
 
1639
        movel a6@(-36),a1
 
1640
        movel a1@,a1@(4)
 
1641
        movel a1@(4),d0
 
1642
        andl #16777215,d0
 
1643
        movel a6@(-28),d1
 
1644
        moveq #24,d6
 
1645
        asll d6,d1
 
1646
        addl d1,d0
 
1647
        movel d0,a1@(4)
 
1648
        jra L275
 
1649
L274:
 
1650
        movel a6@(-4),_avma
 
1651
        movel _gzero,a6@(-36)
 
1652
L275:
 
1653
        tstl a6@(16)
 
1654
        jne L276
 
1655
L359:
 
1656
        movel a6@(-36),d0
 
1657
        jra L257
 
1658
L276:
 
1659
        tstl d5
 
1660
        jne L277
 
1661
        movel a6@(16),a1
 
1662
        movel _gzero,a1@
 
1663
        jra L359
 
1664
L277:
 
1665
        pea 3:w
 
1666
        jbsr _cgeti
 
1667
        movel d0,a6@(-40)
 
1668
        movel a6@(-24),d0
 
1669
        moveq #24,d6
 
1670
        asll d6,d0
 
1671
        movel a6@(-40),a1
 
1672
        addql #3,d0
 
1673
        movel d0,a1@(4)
 
1674
        movel d5,a1@(8)
 
1675
        movel a6@(16),a1
 
1676
        movel a6@(-40),a1@
 
1677
        jra L359
 
1678
L266:
 
1679
        movel a6@(-8),sp@-
 
1680
        lea _cgeti,a3
 
1681
        jbsr a3@
 
1682
        movel d0,a6@(-36)
 
1683
        movel a6@(12),a1
 
1684
#APP
 
1685
        bfffo a1@(8){#0:#0},d6
 
1686
#NO_APP
 
1687
        movel d6,a6@(-20)
 
1688
        addqw #4,sp
 
1689
        jeq L280
 
1690
        movel a1,a2
 
1691
        addqw #8,a2
 
1692
        movel a6@(-12),sp@-
 
1693
        jbsr a3@
 
1694
        movel d0,a6@(-40)
 
1695
        movel a2@+,d1
 
1696
        moveq #32,d0
 
1697
        subl d6,d0
 
1698
        movel d1,d5
 
1699
        lsrl d0,d5
 
1700
        lsll d6,d1
 
1701
        movel d1,a6@(-56)
 
1702
        movel a6@(-40),a0
 
1703
        addqw #8,a0
 
1704
        movel a6@(-12),d7
 
1705
        subql #3,d7
 
1706
        addqw #4,sp
 
1707
        moveq #32,d0
 
1708
        subl d6,d0
 
1709
        jra L281
 
1710
L283:
 
1711
        movel a2@+,d1
 
1712
        movel d1,d5
 
1713
        lsrl d0,d5
 
1714
        movel a6@(-56),d6
 
1715
        addl d5,d6
 
1716
        movel d6,a0@+
 
1717
        movel a6@(-20),d6
 
1718
        lsll d6,d1
 
1719
        movel d1,a6@(-56)
 
1720
L281:
 
1721
        dbra d7,L283
 
1722
        clrw d7
 
1723
        subql #1,d7
 
1724
        jcc L283
 
1725
        movel a6@(-56),a0@
 
1726
        clrl a6@(-56)
 
1727
        lea a4@(8),a3
 
1728
        movel a6@(-36),a2
 
1729
        addqw #4,a2
 
1730
        movel a6@(-8),d7
 
1731
        subql #2,d7
 
1732
        moveq #32,d0
 
1733
        subl a6@(-20),d0
 
1734
        jra L284
 
1735
L286:
 
1736
        movel a3@+,d1
 
1737
        movel d1,d5
 
1738
        lsrl d0,d5
 
1739
        movel a6@(-56),d6
 
1740
        addl d5,d6
 
1741
        movel d6,a2@+
 
1742
        movel a6@(-20),d6
 
1743
        lsll d6,d1
 
1744
        movel d1,a6@(-56)
 
1745
L284:
 
1746
        dbra d7,L286
 
1747
        clrw d7
 
1748
        subql #1,d7
 
1749
        jcc L286
 
1750
        movel a6@(-56),a2@
 
1751
        jra L287
 
1752
L280:
 
1753
        lea a4@(8),a3
 
1754
        movel a6@(-36),a2
 
1755
        addqw #4,a2
 
1756
        clrl a2@+
 
1757
        movel a6@(-8),d4
 
1758
        subql #2,d4
 
1759
        jra L288
 
1760
L290:
 
1761
        movel a3@+,a2@+
 
1762
L288:
 
1763
        dbra d4,L290
 
1764
        clrw d4
 
1765
        subql #1,d4
 
1766
        jcc L290
 
1767
        movel a6@(12),a6@(-40)
 
1768
L287:
 
1769
        movel a6@(-40),a1
 
1770
        movel a1@(8),a6@(-60)
 
1771
        movel a1@(12),a6@(-32)
 
1772
        movel a6@(-36),a2
 
1773
        addqw #4,a2
 
1774
        movel a6@(-16),d7
 
1775
        addql #1,d7
 
1776
        movel a6@(-12),d6
 
1777
        asll #2,d6
 
1778
        movel d6,a6@(-52)
 
1779
        jra L291
 
1780
L322:
 
1781
        movel a2@+,d6
 
1782
        cmpl a6@(-60),d6
 
1783
        jne L293
 
1784
        movew #-1,a4
 
1785
        movel a6@(-60),d1
 
1786
        movel d1,d3
 
1787
        addl a2@,d3
 
1788
        cmpl d3,d1
 
1789
        jls L294
 
1790
        moveq #1,d2
 
1791
        jra L295
 
1792
L294:
 
1793
        clrl d2
 
1794
L295:
 
1795
        movel d3,a6@(-56)
 
1796
        jra L296
 
1797
L293:
 
1798
        movel a2@,d0
 
1799
        movel a2@(-4),d5
 
1800
#APP
 
1801
        divul a6@(-60),d5:d0
 
1802
#NO_APP
 
1803
        movel d0,a4
 
1804
        clrl d2
 
1805
        movel d5,a6@(-56)
 
1806
L296:
 
1807
        tstl d2
 
1808
        jne L297
 
1809
        movel a4,d0
 
1810
#APP
 
1811
        mulul a6@(-32),d5:d0
 
1812
#NO_APP
 
1813
        movel d0,d1
 
1814
        movel a2@(4),d0
 
1815
        movel d1,d3
 
1816
        subl d0,d3
 
1817
        cmpl d1,d0
 
1818
        jhi L298
 
1819
        clrl d2
 
1820
        jra L299
 
1821
L298:
 
1822
        moveq #1,d2
 
1823
L299:
 
1824
        movel d3,a0
 
1825
        movel d5,d1
 
1826
        movel a6@(-56),d0
 
1827
        movel d5,d3
 
1828
        subl a6@(-56),d3
 
1829
        subl d2,d3
 
1830
        cmpl a6@(-56),d5
 
1831
        jcs L362
 
1832
        jra L308
 
1833
L312:
 
1834
        tstl d4
 
1835
        jeq L297
 
1836
        subqw #1,a4
 
1837
        movel a0,d1
 
1838
        movel a6@(-32),d0
 
1839
        movel d1,d3
 
1840
        subl d0,d3
 
1841
        cmpl d1,d0
 
1842
        jhi L306
 
1843
        clrl d2
 
1844
        jra L307
 
1845
L306:
 
1846
        moveq #1,d2
 
1847
L307:
 
1848
        movel d3,a0
 
1849
        movel d4,d1
 
1850
        movel a6@(-60),d0
 
1851
        movel d1,d3
 
1852
        subl d0,d3
 
1853
        subl d2,d3
 
1854
        cmpl d0,d1
 
1855
        jcc L308
 
1856
L362:
 
1857
        moveq #1,d2
 
1858
        jra L309
 
1859
L308:
 
1860
        cmpl d0,d1
 
1861
        jls L309
 
1862
        clrl d2
 
1863
L309:
 
1864
        movel d3,d4
 
1865
        tstl d2
 
1866
        jeq L312
 
1867
L297:
 
1868
        clrl d5
 
1869
        movel a6@(-12),d4
 
1870
        subql #2,d4
 
1871
        movel a6@(-52),d6
 
1872
        lea a2@(-8,d6:l),a0
 
1873
        movel a6@(-40),d6
 
1874
        addl a6@(-52),d6
 
1875
        movel d6,a6@(-56)
 
1876
        jra L313
 
1877
L317:
 
1878
        movel d5,d1
 
1879
        movel a6@(-56),a1
 
1880
        subqw #4,a1
 
1881
        movel a1,a6@(-56)
 
1882
        movel a4,d0
 
1883
#APP
 
1884
        mulul a1@,d5:d0
 
1885
#NO_APP
 
1886
        movel d0,d3
 
1887
        movel d1,d0
 
1888
        addl d3,d0
 
1889
        clrl d6
 
1890
#APP
 
1891
        addxl d6,d5
 
1892
#NO_APP
 
1893
        movel d0,d2
 
1894
        subqw #4,a0
 
1895
        movel a0,a3
 
1896
        movel a0@,d1
 
1897
        movel d1,d3
 
1898
        subl d2,d3
 
1899
        cmpl d1,d2
 
1900
        jhi L315
 
1901
        clrl d2
 
1902
        jra L316
 
1903
L315:
 
1904
        moveq #1,d2
 
1905
L316:
 
1906
        movel d3,a3@
 
1907
        addl d2,d5
 
1908
L313:
 
1909
        dbra d4,L317
 
1910
        clrw d4
 
1911
        subql #1,d4
 
1912
        jcc L317
 
1913
        cmpl a2@(-4),d5
 
1914
        jls L318
 
1915
        clrl d2
 
1916
        subqw #1,a4
 
1917
        movel a6@(-12),d4
 
1918
        subql #2,d4
 
1919
        movel a6@(-52),d6
 
1920
        lea a2@(-8,d6:l),a0
 
1921
        movel a6@(-40),d6
 
1922
        addl a6@(-52),d6
 
1923
        movel d6,a6@(-56)
 
1924
        jra L319
 
1925
L321:
 
1926
#APP
 
1927
        addl #-1,d2
 
1928
#NO_APP
 
1929
        movel a6@(-56),a1
 
1930
        subqw #4,a1
 
1931
        movel a1,a6@(-56)
 
1932
        movel a0@-,d0
 
1933
        movel a1@,d6
 
1934
#APP
 
1935
        addxl d6,d0
 
1936
#NO_APP
 
1937
        movel d0,a0@
 
1938
#APP
 
1939
        clrl d2
 
1940
        addxl d2,d2
 
1941
#NO_APP
 
1942
L319:
 
1943
        dbra d4,L321
 
1944
        clrw d4
 
1945
        subql #1,d4
 
1946
        jcc L321
 
1947
L318:
 
1948
        movel a4,a2@(-4)
 
1949
L291:
 
1950
        dbra d7,L322
 
1951
        clrw d7
 
1952
        subql #1,d7
 
1953
        jcc L322
 
1954
        movel _avma,d3
 
1955
        moveq #-1,d6
 
1956
        cmpl a6@(16),d6
 
1957
        jeq L323
 
1958
        movel a6@(-16),d2
 
1959
        addql #2,d2
 
1960
        movel a6@(-36),a1
 
1961
        lea a1@(d2:l:4),a2
 
1962
        tstl a1@(4)
 
1963
        jeq L324
 
1964
        addql #1,d2
 
1965
        jra L325
 
1966
L324:
 
1967
        tstl a6@(-16)
 
1968
        jne L325
 
1969
        clrl a6@(-28)
 
1970
L325:
 
1971
        movel d2,sp@-
 
1972
        jbsr _cgeti
 
1973
        movel d0,a6@(-44)
 
1974
        movel d0,a1
 
1975
        lea a1@(d2:l:4),a0
 
1976
        movel d2,d4
 
1977
        subql #2,d4
 
1978
        addqw #4,sp
 
1979
        jra L327
 
1980
L329:
 
1981
        movel a2@-,a0@-
 
1982
L327:
 
1983
        dbra d4,L329
 
1984
        clrw d4
 
1985
        subql #1,d4
 
1986
        jcc L329
 
1987
        moveq #2,d6
 
1988
        cmpl d2,d6
 
1989
        jcs L330
 
1990
        movel a6@(-44),a1
 
1991
        moveq #2,d6
 
1992
        movel d6,a1@(4)
 
1993
        jra L323
 
1994
L330:
 
1995
        movel a6@(-44),a1
 
1996
        movel a1@,a1@(4)
 
1997
        movel a1@(4),d0
 
1998
        andl #16777215,d0
 
1999
        movel a6@(-28),d1
 
2000
        moveq #24,d6
 
2001
        asll d6,d1
 
2002
        addl d1,d0
 
2003
        movel d0,a1@(4)
 
2004
L323:
 
2005
        tstl a6@(16)
 
2006
        jeq L332
 
2007
        movel a6@(-16),d4
 
2008
        addql #2,d4
 
2009
        cmpl a6@(-8),d4
 
2010
        jge L334
 
2011
L336:
 
2012
        movel a6@(-36),a1
 
2013
        tstl a1@(d4:l:4)
 
2014
        jne L334
 
2015
        addql #1,d4
 
2016
        cmpl a6@(-8),d4
 
2017
        jlt L336
 
2018
L334:
 
2019
        cmpl a6@(-8),d4
 
2020
        jne L337
 
2021
        movel _gzero,sp@-
 
2022
        jbsr _icopy
 
2023
        movel d0,a6@(-48)
 
2024
        addqw #4,sp
 
2025
        jra L332
 
2026
L337:
 
2027
        movel a6@(-8),a0
 
2028
        subl d4,a0
 
2029
        pea a0@(2)
 
2030
        jbsr _cgeti
 
2031
        movel d0,a6@(-48)
 
2032
        movel d0,a1
 
2033
        movel a1@,a1@(4)
 
2034
        addqw #4,sp
 
2035
        tstl a6@(-20)
 
2036
        jne L339
 
2037
        moveq #2,d7
 
2038
        cmpl a6@(-8),d4
 
2039
        jge L344
 
2040
L343:
 
2041
        movel a6@(-48),a1
 
2042
        movel a6@(-36),a5
 
2043
        movel a5@(d4:l:4),a1@(d7:l:4)
 
2044
        addql #1,d4
 
2045
        addql #1,d7
 
2046
        cmpl a6@(-8),d4
 
2047
        jlt L343
 
2048
        jra L344
 
2049
L339:
 
2050
        movel a6@(-36),a1
 
2051
        movel a1@(d4:l:4),d1
 
2052
        addql #1,d4
 
2053
        moveq #32,d0
 
2054
        subl a6@(-20),d0
 
2055
        movel d1,d2
 
2056
        movel a6@(-20),d6
 
2057
        lsrl d6,d2
 
2058
        lsll d0,d1
 
2059
        movel d1,a6@(-56)
 
2060
        tstl d2
 
2061
        jeq L345
 
2062
        movel a6@(-48),a1
 
2063
        movel d2,a1@(8)
 
2064
        moveq #1,d0
 
2065
        jra L346
 
2066
L345:
 
2067
        movel a6@(-48),a1
 
2068
        movel a1@,d6
 
2069
        subql #1,d6
 
2070
        movel d6,a1@(4)
 
2071
        addql #4,a6@(-48)
 
2072
        addql #4,_avma
 
2073
        movel a6@(-48),a1
 
2074
        movel a1@,a1@(4)
 
2075
        clrl d0
 
2076
L346:
 
2077
        movel d0,d7
 
2078
        addql #2,d7
 
2079
        cmpl a6@(-8),d4
 
2080
        jge L344
 
2081
        moveq #32,d2
 
2082
        subl a6@(-20),d2
 
2083
L350:
 
2084
        movel a6@(-36),a1
 
2085
        movel a1@(d4:l:4),d1
 
2086
        movel d1,d0
 
2087
        movel a6@(-20),d6
 
2088
        lsrl d6,d0
 
2089
        movel a6@(-48),a1
 
2090
        addl a6@(-56),d0
 
2091
        movel d0,a1@(d7:l:4)
 
2092
        lsll d2,d1
 
2093
        movel d1,a6@(-56)
 
2094
        addql #1,d4
 
2095
        addql #1,d7
 
2096
        cmpl a6@(-8),d4
 
2097
        jlt L350
 
2098
L344:
 
2099
        movel a6@(-48),a1
 
2100
        movel a1@(4),d0
 
2101
        andl #16777215,d0
 
2102
        movel a6@(-24),d1
 
2103
        moveq #24,d6
 
2104
        asll d6,d1
 
2105
        addl d1,d0
 
2106
        movel d0,a1@(4)
 
2107
L332:
 
2108
        moveq #-1,d6
 
2109
        cmpl a6@(16),d6
 
2110
        jne L351
 
2111
        movel a6@(-48),sp@-
 
2112
        jra L360
 
2113
L351:
 
2114
        tstl a6@(16)
 
2115
        jne L352
 
2116
        movel a6@(-44),sp@-
 
2117
L360:
 
2118
        movel d3,sp@-
 
2119
        movel a6@(-4),sp@-
 
2120
        jbsr _gerepile
 
2121
        jra L257
 
2122
L352:
 
2123
        clrl sp@-
 
2124
        movel d3,sp@-
 
2125
        movel a6@(-4),sp@-
 
2126
        jbsr _gerepile
 
2127
        moveq #-4,d6
 
2128
        andl d6,d0
 
2129
        movel a6@(16),a1
 
2130
        movel a6@(-48),d6
 
2131
        addl d0,d6
 
2132
        movel d6,a1@
 
2133
        addl a6@(-44),d0
 
2134
L257:
 
2135
        moveml a6@(-100),#0x3cfc
 
2136
        unlk a6
 
2137
        rts
 
2138
        .even
 
2139
.globl _mulul3
 
2140
_mulul3:
 
2141
        link a6,#0
 
2142
        movel a6@(16),a0
 
2143
        movel a6@(8),d0
 
2144
        movel a0@,d1
 
2145
#APP
 
2146
        mulul a6@(12),d1:d0
 
2147
#NO_APP
 
2148
        movel d1,a0@
 
2149
        unlk a6
 
2150
        rts
 
2151
        .even
 
2152
.globl _divul3
 
2153
_divul3:
 
2154
        link a6,#0
 
2155
        movel a6@(16),a0
 
2156
        movel a6@(8),d0
 
2157
        movel a0@,d1
 
2158
#APP
 
2159
        divul a6@(12),d1:d0
 
2160
#NO_APP
 
2161
        movel d1,a0@
 
2162
        unlk a6
 
2163
        rts
 
2164
.comm _in_saved_avma,4