Pristine Ack-5.5
[Ack-5.5.git] / mach / vax4 / libem / libem_s.a
1 eÿadf.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\05\ 1#include "em_abs.h"
2 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
3 .define .adf
4
5         ! $Id: adf.s,v 1.4 1994/06/24 13:44:11 ceriel Exp $
6
7
8 .adf:
9         movl    (sp)+,r1
10         cmpl    r0,$4
11         bneq    1f
12         addf2   (sp)+,(sp)
13         jmp     (r1)
14 1:
15         cmpl    r0,$8
16         bneq    2f
17         addd2   (sp)+,(sp)
18         jmp     (r1)
19 2:
20         pushl   $EILLINS
21         jmp     .fat
22 \0adi.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ 1\ 1#include "em_abs.h"
23 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
24 .define .adi
25
26         ! $Id: adi.s,v 1.4 1994/06/24 13:44:14 ceriel Exp $
27
28
29 .adi:
30         movl    (sp)+,r1
31         cmpl    r0,$4
32         bneq    1f
33         addl2   (sp)+,(sp)
34         jmp     (r1)
35 1:
36         pushl   $EILLINS
37         jmp     .fat
38 2and.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\b\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
39 .define .and
40
41         ! $Id: and.s,v 1.3 1994/06/24 13:44:16 ceriel Exp $
42
43         ! bytes in r0
44 .and:
45         movl    (sp)+,r3
46         addl3   r0,sp,r1
47         ashl    $-2,r0,r0
48 1:
49         mcoml   (sp)+,r2
50         bicl2   r2,(r1)+
51         sobgtr  r0,1b
52         jmp     (r3)
53 ass.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0!\ 1#include "em_abs.h"
54 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
55 .define .ass
56
57         ! $Id: ass.s,v 1.4 1994/06/24 13:44:20 ceriel Exp $
58
59
60 .ass:
61         movl    (sp)+,r1
62         cmpl    r0,$4
63         bneq    1f
64         movl    (sp)+,r0
65         addl2   r0,sp
66         jmp     (r1)
67 1:
68         pushl   $EILLINS
69         jmp     .fat
70         bls.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0Í\ 1#include "em_abs.h"
71 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
72 .define .bls
73
74         ! $Id: bls.s,v 1.4 1994/06/24 13:44:23 ceriel Exp $
75
76
77 .bls:
78         movl    (sp)+,r3
79         cmpl    r0,$4
80         bneq    5f
81         movl    (sp)+,r0        ! number of bytes in r0
82         movl    (sp)+,r1        ! addresses in r1, r2
83         movl    (sp)+,r2
84         blbc    r0,1f
85         movb    (r2)+,(r1)+
86 1:
87         bbc     $1,r0,2f
88         movw    (r2)+,(r1)+
89 2:
90         ashl    $-2,r0,r0
91         beql    4f
92 3:
93         movl    (r2)+,(r1)+
94         sobgtr  r0,3b
95 4:
96         jmp     (r3)
97 5:
98         pushl   $EILLINS
99         jmp     .fat
100 \0cff.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0ÿ\ 1#include "em_abs.h"
101 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
102 .define .cff
103
104         ! $Id: cff.s,v 1.4 1994/06/24 13:44:26 ceriel Exp $
105
106
107 .cff:
108         movl    (sp)+,r1
109         movl    (sp)+,r0
110         cmpl    r0,$4
111         bneq    1f
112         movl    (sp)+,r0
113         cmpl    r0,$4
114         bneq    2f
115         jmp     (r1)
116 2:
117         cmpl    r0,$8
118         bneq    4f
119         cvtdf   (sp)+,-(sp)
120         jmp     (r1)
121 1:
122         movl    (sp)+,r0
123         cmpl    r0,$4
124         bneq    3f
125         cvtfd   (sp)+,-(sp)
126         jmp     (r1)
127 3:
128         cmpl    r0,$8
129         bneq    4f
130         jmp     (r1)
131 4:
132         pushl   $EILLINS
133         jmp     .fat
134 \0cfi.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\92\ 1#include "em_abs.h"
135 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
136 .define  .cfi
137
138         ! $Id: cfi.s,v 1.4 1994/06/24 13:44:29 ceriel Exp $
139
140
141 .cfi:
142         movl    (sp)+,r1
143         movl    (sp)+,r0
144         cmpl    r0,$4
145         bneq    1f
146         movl    (sp)+,r0
147         cmpl    r0,$4
148         bneq    2f
149         cvtfl   (sp)+,-(sp)
150         jmp     (r1)
151 2:
152         cmpl    r0,$8
153         bneq    1f
154         cvtdl   (sp)+,-(sp)
155         jmp     (r1)
156 1:
157         pushl   $EILLINS
158         jmp     .fat
159 cfu.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\8b\ 2#include "em_abs.h"
160 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
161 .define .cfu
162
163         ! $Id: cfu.s,v 1.4 1994/06/24 13:44:32 ceriel Exp $
164
165
166 .cfu:
167         movl    (sp)+,r2
168         movpsl  r1
169         bicl2   $~040,r1
170         bicpsw  $040            ! integer overflow traps must be ignored
171         movl    (sp)+,r0
172         cmpl    (sp),$4
173         bneq    1f
174         tstl    (sp)+
175         tstf    (sp)
176         bgeq    5f
177         mnegf   (sp),(sp)
178 5:
179         cvtfl   (sp)+,-(sp)
180 2:
181         cmpl    r0,$4
182         bneq    4f
183         bispsw  r1              ! restore trap enable bit
184         jmp     (r2)
185 1:
186         cmpl    (sp)+,$8
187         bneq    4f
188         tstd    (sp)
189         bgeq    3f
190         mnegd   (sp),(sp)
191 3:
192         cvtdl   (sp)+,-(sp)
193         br      2b
194 4:
195         pushl   $EILLINS
196         jmp     .fat
197 \0cif.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0Ñ\ 1#include "em_abs.h"
198 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
199 .define  .cif
200
201         ! $Id: cif.s,v 1.4 1994/06/24 13:44:35 ceriel Exp $
202
203
204 .cif:
205         movl    (sp)+,r1
206         movl    (sp)+,r0
207         cmpl    r0,$4
208         bneq    Idbl
209         movl    (sp)+,r0
210         cmpl    r0,$4
211         bneq    Ierr
212         cvtlf   (sp)+,-(sp)
213         jmp     (r1)
214 Idbl:
215         cmpl    r0,$8
216         bneq    Ierr
217         movl    (sp)+,r0
218         cmpl    r0,$4
219         bneq    Ierr
220         cvtld   (sp)+,-(sp)
221         jmp     (r1)
222 Ierr:
223         pushl   $EILLINS
224         jmp     .fat
225  cmand.s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ 3\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
226 .define .cmand
227
228         ! $Id: cmand.s,v 1.3 1994/06/24 13:44:42 ceriel Exp $
229
230         ! bytes in r0
231
232 .cmand:
233         movl    (sp)+,r2
234         addl3   r0,sp,r1
235         ashl    $-2,r0,r0
236 I1:
237         bicl2   (sp)+,(r1)+
238         sobgtr  r0,I1
239         jmp     (r2)
240 ,cmf.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0¸\ 1#include "em_abs.h"
241 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
242 .define .cmf
243
244         ! $Id: cmf.s,v 1.4 1994/06/24 13:44:45 ceriel Exp $
245
246
247 .cmf:
248         movl    (sp)+,r1
249         cmpl    r0,$4
250         bneq    I1
251         clrl    r0
252         cmpf    (sp)+,(sp)+
253         br     I3
254 I1:
255         cmpl    r0,$8
256         bneq    Ierr
257         clrl    r0
258         cmpd    (sp)+,(sp)+
259 I3:
260         beql    I2
261         bgtr    I4
262         incl    r0
263         br     I2
264 I4:
265         decl    r0
266 I2:
267         jmp     (r1)
268 Ierr:
269         pushl   $EILLINS
270         jmp     .fat
271 cmi.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0h\ 1#include "em_abs.h"
272 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
273 .define .cmi
274
275         ! $Id: cmi.s,v 1.4 1994/06/24 13:44:48 ceriel Exp $
276
277 .cmi:
278         movl    (sp)+,r1
279         cmpl    r0,$4
280         bneq    Ierr
281         clrl    r0
282         cmpl    (sp)+,(sp)+
283         beql    I1
284         bgtr    I2
285         incl    r0
286         br     I1
287 I2:
288         decl    r0
289 I1:
290         jmp     (r1)
291 Ierr:
292         pushl   $EILLINS
293         jmp     .fat
294 cms.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0$\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
295 .define .cms
296
297         ! $Id: cms.s,v 1.3 1994/06/24 13:44:51 ceriel Exp $
298
299         ! bytes in r0
300 .cms:
301         movl    (sp)+,r3
302         addl3   sp,r0,r1
303         addl3   r1,r0,r2
304         ashl    $-2,r0,r0
305 I1:
306         cmpl    (sp)+,(r1)+
307         bneq    I2
308         sobgtr  r0,I1
309 I2:
310         movl    r2,sp
311         jmp     (r3)
312 cmu.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0i\ 1#include "em_abs.h"
313 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
314 .define .cmu
315
316         ! $Id: cmu.s,v 1.4 1994/06/24 13:44:54 ceriel Exp $
317
318
319 .cmu:
320         movl    (sp)+,r1
321         cmpl    r0,$4
322         bneq    Ierr
323         clrl    r0
324         cmpl    (sp)+,(sp)+
325         beqlu   I1
326         bgtru   I2
327         incl    r0
328         br     I1
329 I2:
330         decl    r0
331 I1:
332         jmp     (r1)
333 Ierr:
334         pushl   $EILLINS
335         jmp     .fat
336 rcom.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ 5\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
337 .define  .com
338
339         ! $Id: com.s,v 1.3 1994/06/24 13:44:57 ceriel Exp $
340
341         ! bytes in r0
342 .com:
343         movl    (sp)+,r2
344         movl    sp,r1
345         ashl    $-2,r0,r0
346 I1:
347         mcoml   (r1),(r1)+
348         sobgtr  r0,I1
349         jmp     (r2)
350 ucuf.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0@\ 2#include "em_abs.h"
351 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
352 .define .cuf
353
354         ! $Id: cuf.s,v 1.6 1994/06/24 13:45:09 ceriel Exp $
355
356
357 .cuf:
358         movl    (sp)+,r2
359         movl    (sp)+,r0
360         movl    (sp)+,r1
361         cmpl    r1,$4
362         bneq    Ierr
363         cmpl    r0,$4
364         bneq    Idld
365         cvtld   (sp)+,-(sp)
366         bgeq    Iout
367         addd2   Itwo32F,(sp)
368 Iout:
369         cvtdf   (sp)+,-(sp)
370         jmp     (r2)
371 Idld:
372         cmpl    r0,$8
373         bneq    Ierr
374         cvtld   (sp)+,-(sp)
375         bgeq    Iout2
376         addd2   Itwo32F,(sp)
377 Iout2:
378         jmp     (r2)
379 Ierr:
380         pushl   $EILLINS
381         jmp     .fat
382 .sect .rom
383 Itwo32F:
384         .data1 0200,0120,00,00,00,00,00,00
385 cui.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0F\ 1#include "em_abs.h"
386 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
387 .define .cui
388
389         ! $Id: cui.s,v 1.6 1994/06/24 13:45:12 ceriel Exp $
390
391
392 .cui:
393         movl    (sp)+,r1
394         movl    (sp)+,r0
395         cmpl    r0,$4
396         bneq    Ierr
397         movl    (sp)+,r0
398         cmpl    r0,$4
399         bneq    Ierr
400         jmp     (r1)
401 Ierr:
402         pushl   $EILLINS
403         jmp     .fat
404 cuu.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\1d\ 1#include "em_abs.h"
405 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
406 .define .cuu
407
408         ! $Id: cuu.s,v 1.5 1994/06/24 13:45:15 ceriel Exp $
409
410
411 .cuu:
412         movl    (sp)+,r1
413         cmpl    (sp)+,$4
414         bneq    Ierr
415         cmpl    (sp)+, $4
416         bneq    Ierr
417         jmp     (r1)
418 Ierr:
419         pushl   $EILLINS
420         jmp     .fat
421 (dus.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0#\ 1#include "em_abs.h"
422 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
423 .define .dus
424
425         ! $Id: dus.s,v 1.4 1994/06/24 13:45:19 ceriel Exp $
426
427
428 .dus:
429         movl    (sp)+,r1
430         cmpl    r0,$4
431         bneq    Ierr
432         movl    (sp)+,r0
433         pushl   r1
434         jmp     .dup
435 Ierr:
436         pushl   $EILLINS
437         jmp     .fat
438 edvf.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\07\ 1#include "em_abs.h"
439 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
440 .define .dvf
441
442         ! $Id: dvf.s,v 1.4 1994/06/24 13:45:22 ceriel Exp $
443
444
445 .dvf:
446         movl    (sp)+,r1
447         cmpl    r0,$4
448         bneq    I1
449         divf2   (sp)+,(sp)
450         jmp     (r1)
451 I1:
452         cmpl    r0,$8
453         bneq    I2
454         divd2   (sp)+,(sp)
455         jmp     (r1)
456 I2:
457         pushl   $EILLINS
458         jmp     .fat
459
460 dvi.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ 2\ 1#include "em_abs.h"
461 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
462 .define .dvi
463
464         ! $Id: dvi.s,v 1.4 1994/06/24 13:45:25 ceriel Exp $
465
466
467 .dvi:
468         movl    (sp)+,r1
469         cmpl    r0,$4
470         bneq    I1
471         divl2   (sp)+,(sp)
472         jmp     (r1)
473 I1:
474         pushl   $EILLINS
475         jmp     .fat
476 dvu.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0í\0#include "em_abs.h"
477 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
478 .define .dvu
479
480         ! $Id: dvu.s,v 1.4 1994/06/24 13:45:28 ceriel Exp $
481
482
483 .dvu:
484         cmpl    r0,$4
485         bneq    Ierr
486         jmp     .dvu4
487 Ierr:
488         pushl   $EILLINS
489         jmp     .fat
490 ldvu4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0p\ 1#include "em_abs.h"
491 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
492 .define  .dvu4
493
494         ! $Id: dvu4.s,v 1.4 1994/06/24 13:45:31 ceriel Exp $
495
496
497 .dvu4:
498         movl    (sp)+,r3
499         movl    (sp)+,r2
500         blss    I1
501         movl    (sp)+,r0
502         clrl    r1
503         ediv    r2,r0,r0,r1
504         jmp     (r3)
505 I1:
506         cmpl    (sp)+,r2
507         bgequ   I2
508         clrl    r0
509         jmp     (r3)
510 I2:
511         movl    $1,r0
512         jmp     (r3)
513 exg.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0H\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
514 .define .exg
515
516         ! $Id: exg.s,v 1.3 1994/06/24 13:45:34 ceriel Exp $
517
518         ! bytes in r0
519 .exg:
520         movl    (sp)+,r3
521         addl3   sp,r0,r2
522         addl2   r0,r2
523         ashl    $-2,r0,r1
524 I1:
525         movl    -(r2),-(sp)
526         sobgtr  r1,I1
527         addl3   r0,r2,r1
528 I2:
529         movw    -(r2),-(r1)
530         sobgtr  r0,I2
531         movl    r1,sp
532         jmp     (r3)
533 fef.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0æ\ 1#include "em_abs.h"
534 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
535 .define .fef
536
537         ! $Id: fef.s,v 1.7 1994/06/24 13:45:40 ceriel Exp $
538
539
540 .fef:
541         movl    (sp)+,r3
542         cmpl    r0,$4
543         bneq    I1
544         cvtfd   (sp),r0
545         jsb     Ihulp
546         cvtdf   r0,(sp)
547         movl    r2,-(sp)
548         jmp     (r3)
549 I1:
550         cmpl    r0,$8
551         bneq    I2
552         movd    (sp),r0
553         jsb     Ihulp
554         movd    r0,(sp)
555         movl    r2,-(sp)
556         jmp     (r3)
557 I2:
558         pushl   $EILLINS
559         jmp     .fat
560 Ihulp:
561         tstd    r0
562         bneq    1f
563         clrl    r2
564         rsb
565 1:
566         extzv   $7,$8,r0,r2
567         subl2   $128,r2
568         insv    $128,$7,$8,r0
569         rsb
570 fif.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0Ù\ 1#include "em_abs.h"
571 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
572 .define .fif
573
574         ! $Id: fif.s,v 1.4 1994/06/24 13:45:43 ceriel Exp $
575
576 .sect .rom
577 Ione: .data1 0200, 077, 00, 00, 00, 00, 00, 00
578
579 .fif:
580         movl    (sp)+,r2
581         cmpl    r0,$4
582         bneq    I1
583         mulf3   (sp)+,(sp)+,r0
584         emodf   r0,$0,Ione,r1,-(sp)
585         subf3   (sp),r0,-(sp)
586         jmp     (r2)
587 I1:
588         cmpl    r0,$8
589         bneq    I2
590         muld3   (sp)+,(sp)+,r0
591         emodd   r0,$0,Ione,r0,-(sp)
592         subd3   (sp),r0,-(sp)
593         jmp     (r2)
594 I2:
595         pushl   $EILLINS
596         jmp     .fat
597 7gto.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0ù\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
598 .define .gto
599         ! $Id: gto.s,v 1.4 1994/06/24 13:45:47 ceriel Exp $
600
601 .extern .strlb
602         ! Nonlocal goto.
603         ! On the stack is a pointer to a block containing :
604         ! 1. the new local base         (ptr+8)
605         ! 2. the new stack pointer      (ptr+4)
606         ! 3. the new program counter    (ptr)
607 .gto:
608         movl    (sp)+,r2
609         movl    4(r2),sp        ! Store new stack pointer
610         pushl   (r2)            ! Push target address
611         pushl   8(r2)           ! Push new local base
612         jsb     .strlb          ! Store in fp, compute ap
613         rsb
614
615 inn.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0?\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
616 .define .inn
617
618         ! $Id: inn.s,v 1.3 1994/06/24 13:45:51 ceriel Exp $
619
620         ! bytes in r0
621 .inn:
622         movl    (sp)+,r3
623         movl    (sp)+,r1
624         ashl    $3,r0,r2        ! nr of bits in r2
625         cmpl    r1,r2
626         bgequ   I2
627         bbc     r1,(sp),I2
628         movl    $1,r1
629 I1:
630         addl2   r0,sp
631         jmp     (r3)
632 I2:
633         clrl    r1
634         br      I1
635 eior.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0ü\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
636 .define .ior
637
638         ! $Id: ior.s,v 1.3 1994/06/24 13:45:55 ceriel Exp $
639
640         ! bytes in r0
641 .ior:
642         movl    (sp)+,r2
643         addl3   r0,sp,r1
644         ashl    $-2,r0,r0
645 I1:
646         bisl2   (sp)+,(r1)+
647         sobgtr  r0,I1
648         jmp     (r2)
649 los.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0å\ 1#include "em_abs.h"
650 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
651 .define .los
652
653         ! $Id: los.s,v 1.4 1994/06/24 13:46:01 ceriel Exp $
654
655
656 .los:
657         movl    (sp)+,r2
658         cmpl    r0,$4
659         beql    I1
660         pushl   $EILLINS
661         jmp     .fat
662 I1:
663         movl    (sp)+,r0        ! nbytes in r0
664         movl    (sp)+,r1        ! address in r1
665         cmpl    r0,$1
666         beql    I2
667         cmpl    r0,$2
668         beql    I3
669         addl2   r0,r1
670         ashl    $-2,r0,r0
671 I4:
672         movl    -(r1),-(sp)
673         sobgtr  r0,I4
674         jmp     (r2)
675 I2:
676         cvtbl   (r1),-(sp)
677         jmp     (r2)
678 I3:
679         cvtwl   (r1),-(sp)
680         jmp     (r2)
681 flxa.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0Ö\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
682 .define  .lxa
683
684         ! $Id: lxa.s,v 1.3 1994/06/24 13:46:07 ceriel Exp $
685
686 .lxa:
687         jsb     .lxl    ! Find local base
688         jsb     .lpb    ! Convert to argument base
689         rsb
690 lxl.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\b\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
691 .define  .lxl
692
693         ! $Id: lxl.s,v 1.3 1994/06/24 13:46:11 ceriel Exp $
694
695         ! nlevels in r0 (>=2)
696 .lxl:
697         pushl   r0
698         decl    (sp)
699         movl    4(ap),r0
700 I1:
701         jsb     .lpb
702         movl    (r0),r0
703         sobgtr  (sp),I1
704         tstl    (sp)+
705         rsb
706 mlf.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\07\ 1#include "em_abs.h"
707 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
708 .define .mlf
709
710         ! $Id: mlf.s,v 1.4 1994/06/24 13:46:14 ceriel Exp $
711
712
713 .mlf:
714         movl    (sp)+,r1
715         cmpl    r0,$4
716         bneq    I1
717         mulf2   (sp)+,(sp)
718         jmp     (r1)
719 I1:
720         cmpl    r0,$8
721         bneq    I2
722         muld2   (sp)+,(sp)
723         jmp     (r1)
724 I2:
725         pushl   $EILLINS
726         jmp     .fat
727 0mli.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ 2\ 1#include "em_abs.h"
728 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
729 .define .mli
730
731         ! $Id: mli.s,v 1.4 1994/06/24 13:46:18 ceriel Exp $
732
733
734 .mli:
735         movl    (sp)+,r1
736         cmpl    r0,$4
737         bneq    I1
738         mull2   (sp)+,(sp)
739         jmp     (r1)
740 I1:
741         pushl   $EILLINS
742         jmp     .fat
743 ngf.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\05\ 1#include "em_abs.h"
744 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
745 .define .ngf
746
747         ! $Id: ngf.s,v 1.4 1994/06/24 13:46:27 ceriel Exp $
748
749
750 .ngf:
751         movl    (sp)+,r1
752         cmpl    r0,$4
753         bneq    I1
754         mnegf   (sp),(sp)
755         jmp     (r1)
756 I1:
757         cmpl    r0,$8
758         bneq    I2
759         mnegd   (sp),(sp)
760         jmp     (r1)
761 I2:
762         pushl   $EILLINS
763         jmp     .fat
764 tngi.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ 1\ 1#include "em_abs.h"
765 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
766 .define .ngi
767
768         ! $Id: ngi.s,v 1.4 1994/06/24 13:46:30 ceriel Exp $
769
770
771 .ngi:
772         movl    (sp)+,r1
773         cmpl    r0,$4
774         bneq    I1
775         mnegl   (sp),(sp)
776         jmp     (r1)
777 I1:
778         pushl   $EILLINS
779         jmp     .fat
780 dnop.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\1e\ 1#include "em_abs.h"
781 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
782 .define  .nop
783
784         ! $Id: nop.s,v 1.4 1994/06/24 13:46:33 ceriel Exp $
785
786
787 .nop:
788         movl    hol0+LINO_AD,r0
789         jsb     printd
790         movb    $011,r0
791         jsb     printc
792         movl    sp,r0
793         jsb     printd
794         movb    $012,r0
795         jmp     printc
796 print.s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\86\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
797 .define  printd
798 .define  printc
799
800         ! $Id: print.s,v 1.6 1994/06/24 13:46:39 ceriel Exp $
801
802 printd:
803         clrl    r1
804         ediv    $10,r0,r0,r1
805         beql    I1
806         pushl   r1
807         jsb     printd
808         movl    (sp)+,r1
809 I1:
810         addb3   $'0',r1,r0
811
812 printc:
813         movb    r0,Ich
814         pushl   $1
815         pushab  Ich
816         pushl   $2
817         calls   $3,WRITE
818         rsb
819
820         .sect .data
821 Ich:    .data1   0
822 rmi.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0;\ 1#include "em_abs.h"
823 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
824 .define .rmi
825
826         ! $Id: rmi.s,v 1.4 1994/06/24 13:46:49 ceriel Exp $
827
828
829 .rmi:
830         movl    (sp)+,r3
831         cmpl    r0,$4
832         bneq    I1
833         movl    (sp)+,r2
834         movl    (sp)+,r1
835         ashq    $-32,r0,r0
836         ediv    r2,r0,r1,r0
837         pushl   r0
838         jmp     (r3)
839 I1:
840         pushl   $EILLINS
841         jmp     .fat
842 prmu.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0ü\0#include "em_abs.h"
843 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
844 .define .rmu
845
846         ! $Id: rmu.s,v 1.4 1994/06/24 13:46:52 ceriel Exp $
847
848
849 .rmu:
850         cmpl    r0,$4
851         bneq    Ierr
852         jsb     .rmu4
853         pushl   r0
854         rsb
855 Ierr:
856         pushl   $EILLINS
857         jmp     .fat
858 rmu4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0U\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
859 .define .rmu4
860
861         ! $Id: rmu4.s,v 1.3 1994/06/24 13:46:55 ceriel Exp $
862
863 .rmu4:
864         movl    (sp)+,r3
865         movl    (sp)+,r2
866         blss    I1
867         movl    (sp)+,r0
868         clrl    r1
869         ediv    r2,r0,r1,r0
870         jmp     (r3)
871 I1:
872         movl    (sp)+,r0
873         cmpl    r0,r2
874         blssu   I2
875         subl2   r2,r0
876 I2:
877         jmp     (r3)
878 srol.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0*\ 1#include "em_abs.h"
879 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
880 .define .rol
881
882         ! $Id: rol.s,v 1.4 1994/06/24 13:46:59 ceriel Exp $
883
884
885 .rol:
886         movl    (sp)+,r1
887         cmpl    r0,$4
888         bneq    Ierr
889         movl    (sp)+,r0
890         rotl    r0,(sp),(sp)
891         jmp     (r1)
892 Ierr:
893         pushl   $EILLINS
894         jmp     .fat
895 ror.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\01\ 1#include "em_abs.h"
896 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
897 .define .ror
898
899         ! $Id: ror.s,v 1.4 1994/06/24 13:47:02 ceriel Exp $
900
901
902 .ror:
903         movl    (sp)+,r1
904         cmpl    r0,$4
905         bneq    Ierr
906         subl3   (sp)+,$32,r0
907         rotl    r0,(sp),(sp)
908         jmp     (r1)
909 Ierr:
910         pushl   $EILLINS
911         jmp     .fat
912 Isbf.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\07\ 1#include "em_abs.h"
913 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
914 .define .sbf
915
916         ! $Id: sbf.s,v 1.4 1994/06/24 13:47:08 ceriel Exp $
917
918
919 .sbf:
920         movl    (sp)+,r1
921         cmpl    r0,$4
922         bneq    I1
923         subf2   (sp)+,(sp)
924         jmp     (r1)
925 I1:
926         cmpl    r0,$8
927         bneq    I2
928         subd2   (sp)+,(sp)
929         jmp     (r1)
930 I2:
931         pushl   $EILLINS
932         jmp     .fat
933 bsbi.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\ 2\ 1#include "em_abs.h"
934 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
935 .define .sbi
936
937         ! $Id: sbi.s,v 1.4 1994/06/24 13:47:11 ceriel Exp $
938
939
940 .sbi:
941         movl    (sp)+,r1
942         cmpl    r0,$4
943         bneq    I1
944         subl2   (sp)+,(sp)
945         jmp     (r1)
946 I1:
947         pushl   $EILLINS
948         jmp     .fat
949 sbs.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0ù\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
950 .define .sbs
951
952         ! $Id: sbs.s,v 1.3 1994/06/24 13:47:14 ceriel Exp $
953
954 .sbs:
955         movl    (sp)+,r1
956         subl2   (sp)+,(sp)
957         movl    $4,-(sp)
958         movl    r0,-(sp)
959         movl    r1,-(sp)
960         jmp     .cii
961 jcii.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\95\ 1#include "em_abs.h"
962 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
963 .define  .cii
964
965         ! $Id: cii.s,v 1.4 1994/06/24 13:44:39 ceriel Exp $
966
967
968 .cii:
969         movl    (sp)+, r1
970         movl    (sp)+, r0
971         cmpl    (sp), $1
972         beql    Ifrom1
973         cmpl    (sp), $2
974         beql    Ifrom2
975         cmpl    (sp)+, $4
976         bgtr    Ierr
977         jmp     (r1)
978 Ifrom1:
979         cvtbw   4(sp), 4(sp)
980 Ifrom2:
981         tstl    (sp)+
982         cvtwl   (sp), (sp)
983         jmp     (r1)
984 Ierr:
985         pushl   $EILLINS
986         jmp     .fat
987 rset.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\9b\ 1#include "em_abs.h"
988 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
989 .define .setx
990
991         ! $Id: set.s,v 1.4 1994/06/24 13:47:17 ceriel Exp $
992
993
994         ! bytes in r0
995 .setx:
996         movl    (sp)+,r3
997         movl    (sp)+,r1        ! bitnumber in r1
998         subl3   r0,sp,r2
999 I1:
1000         clrl    -(sp)
1001         cmpl    sp,r2
1002         bgtru   I1
1003         ashl    $3,r0,r2        ! number of bits in r2
1004         cmpl    r1,r2
1005         bgequ   I2
1006         bbcs    r1,(sp),I3
1007 I3:
1008         jmp     (r3)
1009 I2:
1010         pushl   $ESET
1011         jsb     .trp
1012         jmp     (r3)
1013         sig.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0ã\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1014 .define  .sig
1015
1016         ! $Id: sig.s,v 1.3 1994/06/24 13:47:21 ceriel Exp $
1017
1018 .sig:
1019         movl    (sp)+,r1
1020         movl    (sp)+,r0
1021         pushl   .trppc
1022         movl    r0,.trppc
1023         jmp     (r1)
1024 1sim.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0k\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1025 .define .sim
1026
1027         ! $Id: sim.s,v 1.3 1994/06/24 13:47:24 ceriel Exp $
1028
1029 .sim:
1030         movl    (sp)+,r0
1031         movl    (sp)+,.trpim    ! store ignore mask
1032         bbc     $5,.trpim,I3    ! floating underflow to be ignored?
1033         bicpsw  $0100
1034         jmp     (r0)
1035 I3:
1036         bispsw  $0100           ! enable underflow trap
1037         jmp     (r0)
1038
1039 sli.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0 \ 1#include "em_abs.h"
1040 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1041 .define .sli
1042
1043         ! $Id: sli.s,v 1.4 1994/06/24 13:47:27 ceriel Exp $
1044
1045
1046 .sli:
1047         movl    (sp)+,r2
1048         cmpl    r0,$4
1049         bneq    I1
1050         movl    (sp)+,r0
1051         movl    (sp)+,r1
1052         ashl    r0,r1,-(sp)
1053         jmp     (r2)
1054 I1:
1055         pushl   $EILLINS
1056         jmp     .fat
1057 sri.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0-\ 1#include "em_abs.h"
1058 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1059 .define .sri
1060
1061         ! $Id: sri.s,v 1.4 1994/06/24 13:47:30 ceriel Exp $
1062
1063
1064 .sri:
1065         movl    (sp)+,r2
1066         cmpl    r0,$4
1067         bneq    I1
1068         movl    (sp)+,r0
1069         mnegl   r0,r0
1070         movl    (sp)+,r1
1071         ashl    r0,r1,-(sp)
1072         jmp     (r2)
1073 I1:
1074         pushl   $EILLINS
1075         jmp     .fat
1076 bsru.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0j\ 1#include "em_abs.h"
1077 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1078 .define .sru
1079
1080         ! $Id: sru.s,v 1.4 1994/06/24 13:47:34 ceriel Exp $
1081
1082
1083 .sru:
1084         movl    (sp)+,r3
1085         cmpl    r0,$4
1086         beql    .sru4
1087         pushl   $EILLINS
1088         jmp     .fat
1089 .sru4:
1090         movl    (sp)+,r2
1091         mnegl   r2,r2
1092         movl    (sp)+,r0
1093         clrl    r1
1094         ashq    r2,r0,r0
1095         movl    r0,-(sp)
1096         jmp     (r3)
1097 strhp.s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\84\ 1#include "em_abs.h"
1098 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1099 .define  .strhp
1100
1101         ! $Id: strhp.s,v 1.9 1994/06/24 13:47:38 ceriel Exp $
1102
1103
1104 .strhp:
1105         movl    (sp)+,r1
1106         movl    (sp)+,r0
1107         pushl   r1
1108         movl    r0,.reghp
1109         cmpl    r0,.limhp
1110         blssu   I2
1111         addl2   $02000,r0
1112         bicl2   $0777,r0
1113         pushl   r0
1114         calls   $1,BRK
1115         tstl    r0
1116         beql    I2
1117         pushl   $EHEAP
1118         jsb     .trp
1119         rsb
1120 I2:
1121         rsb
1122 sts.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0ê\ 1#include "em_abs.h"
1123 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1124 .define .sts
1125
1126         ! $Id: sts.s,v 1.4 1994/06/24 13:47:44 ceriel Exp $
1127
1128
1129 .sts:
1130         movl    (sp)+,r2
1131         cmpl    r0,$4
1132         beql    I1
1133         pushl   $EILLINS
1134         jmp     .fat
1135 I1:
1136         movl    (sp)+,r0        ! number of bytes in r0
1137         movl    (sp)+,r1        ! address in r1
1138         cmpl    r0,$1
1139         beql    I3
1140         cmpl    r0,$2
1141         beql    I4
1142         ashl    $-2,r0,r0
1143 I2:
1144         movl    (sp)+,(r1)+
1145         sobgtr  r0,I2
1146         jmp     (r2)
1147 I3:
1148         movl    (sp)+,r0
1149         movb    r0,(r1)
1150         jmp     (r2)
1151 I4:
1152         movl    (sp)+,r0
1153         movw    r0,(r1)
1154         jmp     (r2)
1155 xar.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\84\ 1#include "em_abs.h"
1156 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1157 .define  .lar
1158 .define  .sar
1159 .define  .aar
1160
1161         ! $Id: xar.s,v 1.4 1994/06/24 13:47:50 ceriel Exp $
1162
1163
1164 .lar:
1165         cmpl    r0,$4
1166         bneq    Iillins
1167         jmp     .lar4
1168
1169 .sar:
1170         cmpl    r0,$4
1171         bneq    Iillins
1172         jmp     .sar4
1173
1174 .aar:
1175         cmpl    r0,$4
1176         bneq    Iillins
1177         jmp     .aar4
1178
1179 Iillins:
1180         pushl   $EILLINS
1181         jmp     .fat
1182 xor.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0ü\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1183 .define .xor
1184
1185         ! $Id: xor.s,v 1.3 1994/06/24 13:47:54 ceriel Exp $
1186
1187         ! bytes in r0
1188 .xor:
1189         movl    (sp)+,r2
1190         addl3   r0,sp,r1
1191         ashl    $-2,r0,r0
1192 I1:
1193         xorl2   (sp)+,(r1)+
1194         sobgtr  r0,I1
1195         jmp     (r2)
1196 aar4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\1c\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1197 .define  .aar4
1198
1199         ! $Id: aar4.s,v 1.3 1994/06/24 13:44:07 ceriel Exp $
1200
1201 .aar4:
1202         movl    (sp)+,r2
1203         movl    (sp)+,r0
1204         movl    8(r0),r1        ! elementsize in r1
1205         subl3   (r0),(sp)+,r0
1206         mull2   r1,r0
1207         addl2   (sp)+,r0
1208         jmp     (r2)
1209 lar4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0É\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1210 .define  .lar4
1211
1212         ! $Id: lar4.s,v 1.3 1994/06/24 13:45:58 ceriel Exp $
1213
1214 .lar4:
1215         movl    (sp)+,r2
1216         movl    (sp)+,r0
1217         movl    8(r0),r1
1218         subl2   (r0),(sp)
1219         mull3   (sp)+,r1,r0
1220         addl2   (sp)+,r0
1221         addl2   r1,r0
1222         cmpl    r1,$1
1223         bgtr    I3
1224         movzbl  -(r0),-(sp)
1225         jmp     (r2)
1226 I3:
1227         cmpl    r1,$2
1228         bgtr    I2
1229         movzwl  -(r0),-(sp)
1230         jmp     (r2)
1231 I2:
1232         ashl    $-2,r1,r1
1233 I1:
1234         movl    -(r0),-(sp)
1235         sobgtr  r1,I1
1236         jmp     (r2)
1237 (sar4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0À\ 1.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1238 .define  .sar4
1239
1240         ! $Id: sar4.s,v 1.3 1994/06/24 13:47:05 ceriel Exp $
1241
1242 .sar4:
1243         movl    (sp)+,r2
1244         movl    (sp)+,r0
1245         movl    8(r0),r1
1246         subl2   (r0),(sp)
1247         movl    (sp)+,r0
1248         mull2   r1,r0
1249         addl2   (sp)+,r0
1250         cmpl    r1,$1
1251         bgtr    I3
1252         cvtlb   (sp)+,(r0)
1253         jmp     (r2)
1254 I3:
1255         cmpl    r1,$2
1256         bgtr    I2
1257         cvtlw   (sp)+,(r0)
1258         jmp     (r2)
1259 I2:
1260         ashl    $-2,r1,r1
1261 I1:
1262         movl    (sp)+,(r0)+
1263         sobgtr  r1,I1
1264         jmp     (r2)
1265 csx.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\00\ 1#include "em_abs.h"
1266 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1267 .define .csa
1268 .define .csb
1269
1270         ! $Id: csx.s,v 1.4 1994/06/24 13:45:06 ceriel Exp $
1271
1272
1273 .csa:
1274         cmpl    r0,$4
1275         bneq    Iillins
1276         jmp     .csa4
1277
1278 .csb:
1279         cmpl    r0,$4
1280         bneq    Iillins
1281         jmp     .csb4
1282
1283 Iillins:
1284         pushl   $EILLINS
1285         jmp     .fat
1286 csa4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0¸\ 1#include "em_abs.h"
1287 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1288 .define  .csa4
1289
1290         ! $Id: csa4.s,v 1.4 1994/06/24 13:45:00 ceriel Exp $
1291
1292
1293 .csa4:
1294         movl    (sp)+,r0        ! descriptor address
1295         movl    (sp)+,r1        ! index
1296         movl    (r0)+,r2        ! default
1297         subl2   (r0)+,r1
1298         cmpl    (r0)+,r1
1299         blssu   I1
1300         movl    (r0)[r1],r1
1301         bneq    I2
1302 I1:
1303         movl    r2,r1
1304         bneq    I2
1305         pushl   $ECASE
1306         jmp     .fat
1307 I2:
1308         jmp     (r1)
1309 csb4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0G\ 2#include "em_abs.h"
1310 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1311 .define  .csb4
1312
1313         ! $Id: csb4.s,v 1.4 1994/06/24 13:45:03 ceriel Exp $
1314
1315
1316 .csb4:
1317         movl    (sp)+,r0        ! descriptor address
1318         movl    (sp)+,r1        ! index
1319         pushl   r4              ! Save r4
1320         movl    (r0)+,r4        ! default
1321         movl    (r0)+,r2        ! number of cases
1322 I1:
1323         decl    r2
1324         blss    I2
1325         movl    (r0)+,r3
1326         cmpl    r1,r3
1327         beql    Ifound
1328         tstl    (r0)+           ! useless address
1329         br      I1
1330 Ifound:
1331         movl    (r0)+,r4
1332 I2:
1333         movl    r4,r0
1334         beql    a3
1335         movl    (sp)+,r4        ! Restore r4
1336         jmp     (r0)
1337 a3:
1338         pushl   $ECASE
1339         jmp     .fat
1340 :rck.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0í\0#include "em_abs.h"
1341 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1342 .define .rck
1343
1344         ! $Id: rck.s,v 1.4 1994/06/24 13:46:43 ceriel Exp $
1345
1346
1347 .rck:
1348         cmpl    r0,$4
1349         bneq    Ierr
1350         jmp     .rck4
1351 Ierr:
1352         pushl   $EILLINS
1353         jmp     .fat
1354  rck4.s\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0`\ 1#include "em_abs.h"
1355 .sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1356 .define .rck4
1357
1358         ! $Id: rck4.s,v 1.5 1994/06/24 13:46:46 ceriel Exp $
1359
1360
1361 .rck4:
1362         movl    (sp)+,r1
1363         movl    (sp)+,r0
1364         cmpl    (sp),(r0)       ! compare lower bound
1365         blss    Ierr
1366         cmpl    (sp),4(r0)      ! compare upper bound
1367         bgtr    Ierr
1368         jmp     (r1)
1369 Ierr:
1370         pushl   r1
1371         pushl   $ERANGE
1372         jsb     .trp
1373         rsb
1374 lpb.s\0\0\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0\94\ 3.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1375 .define .lpb
1376
1377         ! $Id: lpb.s,v 1.4 1994/06/24 13:46:04 ceriel Exp $
1378         ! special version to work with A68S, by CHL
1379         ! compute AB, given LB
1380 .lpb:
1381         cmpl    r0,fp
1382         bneq    I1
1383         moval   4(ap),r0
1384         rsb
1385 I1:
1386         movl    4(r0),r1        ! mask for saved registers
1387         addl2   $24,r0          ! position of AB if no registers saved
1388         movl    $16,r2          ! position of first bit to test
1389 I2:
1390         subl3   r2,$28,r3       ! remaining size of mask
1391         ffs     r2,r3,r1,r2     ! find first bit set in mask
1392         beql    I3              ! no more bits set
1393         addl2   $4,r0           ! for each saved register
1394         incl    r2
1395         jbr     I2
1396 I3:
1397         extzv   $30,$2,r1,r2    ! Now find out about the stack alignment
1398                                 ! between fp and ap
1399         addl2   r2,r0           ! add alignment
1400         rsb
1401 strlb.s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0y\ 3.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1402 .define .strlb
1403
1404         ! $Id: strlb.s,v 1.4 1994/06/24 13:47:42 ceriel Exp $
1405         ! revised version by CHL
1406         ! Store the value that is on the stack in fp.
1407         ! Compute ap.
1408 .strlb:
1409         movl    (sp)+,r3
1410         movl    (sp)+,fp
1411         pushl   r3
1412         movl    $20,ap          ! Compute argumentbase from local base.
1413                                 ! Distance is 5 longwords + the number of
1414                                 ! registers saved.
1415         movl    4(fp),r3        ! mask for saved registers
1416         movl    $16,r2          ! position of first bit to test
1417 I4:
1418         subl3   r2,$28,r1       ! remaining size of mask
1419         ffs     r2,r1,r3,r2     ! find first bit set in mask
1420         beql    I5              ! no more bits set
1421         addl2   $4,ap           ! for each saved register
1422         incl    r2
1423         jbr     I4
1424 I5:
1425         extzv   $14,$2,6(fp),r3 ! Now find out about the stack alignment
1426                                 ! between fp and ap
1427         addl2   r3,ap           ! add alignment
1428         addl2   fp,ap
1429         rsb
1430  mon.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0£\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1431 .define .mon
1432
1433         ! $Id: mon.s,v 1.8 1994/06/24 13:46:22 ceriel Exp $
1434
1435
1436 .mon:
1437         pushl   $EBADMON
1438         jmp     .fat
1439 tfat.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\0¾\0.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1440 .define .fat
1441
1442         ! $Id: fat.s,v 1.5 1994/06/24 13:45:37 ceriel Exp $
1443
1444 .fat:
1445         pushl   (sp)
1446         jsb     .trp
1447         movl    (sp)+,r0
1448         jmp     EXIT
1449 trp.s\0s\0\0\0\0\0\0\0\0\0\0\0\ 2\ 2¤\ 1\0\07\ 4.sect .text; .sect .rom; .sect .data; .sect .bss; .sect .text
1450 .define .trp
1451         ! $Id: trp.s,v 1.9 1994/06/24 13:47:47 ceriel Exp $
1452
1453 .trp:
1454         pushl   r0
1455         movl    8(sp),r0
1456         movl    4(sp),8(sp)
1457         movl    (sp)+,(sp)
1458         cmpl    r0,$16
1459         bgequ   I1              ! a trapnumber >= 16 cannot be ignored
1460         bbc     r0,.trpim,I1
1461         movl    (sp)+,r0
1462         rsb
1463 I1:
1464         pushr   $017776         ! save registers
1465         pushl   r0              ! trapnumber on stack
1466         movl    .trppc,r0
1467         beql    I2              ! is there a user defined traphandler?
1468         clrl    .trppc
1469         calls   $1,(r0)         ! if so, call it
1470         popr    $017776         ! restore registers
1471         movl    (sp)+,r0
1472         rsb
1473
1474 I2:
1475         ! Put the (octal) trapnumber in the zeroes in Iemes[].
1476
1477         movl    $Iemesend-9,r1  ! Addres after last '0'.
1478         movl    $5,r2           ! Max number of digits.
1479         movl    (sp),r0         ! Trap number in r0.
1480 I3:
1481         bicw3   $0177770,r0,r3  ! Lower 3 bits form lower octal digit.
1482         bisb2   r3,-(r1)        ! Put them in the '0'.
1483         ashl    $-3,r0,r0       ! Shift the 3 bits off.
1484         sobgtr  r2,I3
1485         pushl   $Iemesend-Iemes
1486         pushab  Iemes
1487         pushl   $2
1488         calls   $3,WRITE
1489         bpt
1490 .sect .data
1491 Iemes:
1492 .data1 'E','M',' ','t','r','a','p',' ','0','0','0','0','0',' ','(','o','c','t','a','l',')',0xa
1493 Iemesend:
1494 .align 2
1495 \0