From f4fb73386e52cbcaa6ceb28d3650d2e8267baeec Mon Sep 17 00:00:00 2001 From: ceriel Date: Fri, 27 Mar 1987 09:21:14 +0000 Subject: [PATCH] fixed --- mach/m68k4/libem/cii.s | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/mach/m68k4/libem/cii.s b/mach/m68k4/libem/cii.s index 8523a706a..c695bdc77 100644 --- a/mach/m68k4/libem/cii.s +++ b/mach/m68k4/libem/cii.s @@ -7,18 +7,33 @@ .sect .text .cii: move.l (sp)+,a0 ! return address - move (sp)+,d0 ! destination size - sub (sp)+,d0 ! destination - source size + move.l (sp)+,d0 ! destination size + move.l (sp)+,d1 + move.l (sp),d2 + cmp.l #1,d1 + bne 1f + move.l #2,d1 + ext.w d2 +1: + cmp.l #2,d1 + bne 1f + move.l #4,d1 + ext.l d2 +1: + move.l d2,(sp) + sub.l d1,d0 bgt 1f - sub d0,sp ! pop extra bytes + sub.l d0,sp ! pop extra bytes bra 3f 1: - move (sp),d1 - ext.l d1 - swap d1 - asr #1,d0 + clr.l d1 + tst.l d2 + bge 1f + move.l #-1,d1 +1: + asr #2,d0 2: - move.w d1,-(sp) + move.l d1,-(sp) dbf d0,2b 3: move.l a0,-(sp)