fixed csb so that it also handles 0 cases
authorceriel <none@none>
Wed, 16 Mar 1988 19:38:14 +0000 (19:38 +0000)
committerceriel <none@none>
Wed, 16 Mar 1988 19:38:14 +0000 (19:38 +0000)
mach/mantra/int/mloop9
mach/pdp/int/em_int.s

index b267ffc..2774355 100644 (file)
@@ -80,9 +80,10 @@ csb_z:               mov     (sp)+,d0 ;      bra     0f
 csb_l:         adroff          ;       move.w  (a5),d0
 0:             comp    wrd,d0 ;        bne     e_illins
 csb_1W:                move.l  (sp)+,a0 ;      mov     (sp)+,d0
-               mov     4(a0),d1 ;      sub.l   #1,d1
                move.l  a0,a3
 !Use a3 as a general register
+               mov     4(a0),d1 ;      sub.l   #1,d1
+               blt     2f
                move.l  wrd,d2 ;        add.l   #4,d2
 1:             add.l   d2,a0   ;       comp    (a0),d0
                dbeq    d1,1b   ;       bne     2f
index d38cdab..2ff7cfd 100644 (file)
@@ -2921,11 +2921,12 @@ csb.z:  mov     (sp)+,r0;       br      1f;
 csb.l: jsr     pc,wrdoff;
 1:     sub     $2,r0;          jne     e.illins;
 csb.1W:        mov     (sp)+,r0;       mov     (sp)+,r1;
-       mov     2(r0),r5;       mov     r0,pcx;
+       mov     r0,pcx;         mov     2(r0),r5
                                        /use pcx as ordinary register
+       ble     3f
 2:     add     $4,r0;          cmp     (r0),r1;
        beq     4f;             sob     r5,2b;
-       mov     (pcx),pcx;      jeq     e.case;         next
+3:     mov     (pcx),pcx;      jeq     e.case;         next
 4:     mov     2(r0),pcx;      jeq     e.case;         next
 
 rck.l: jsr     pc,wrdoff;      br      1f;