From 928e341f16e6a88dc6bfd15b3ac45e13cd073bc7 Mon Sep 17 00:00:00 2001 From: bal Date: Thu, 18 Apr 1985 15:12:29 +0000 Subject: [PATCH] Bug fixed: incorrect return value New version adapted from m68k4 version. --- mach/m68k2/libsys/signal.s | 47 ++++++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/mach/m68k2/libsys/signal.s b/mach/m68k2/libsys/signal.s index 8f18c1f81..90acbc54e 100644 --- a/mach/m68k2/libsys/signal.s +++ b/mach/m68k2/libsys/signal.s @@ -1,9 +1,10 @@ + .define _signal .extern _signal NSIG=32 _signal: move.w 4(sp), d0 - ext.l d0 + ext.l d0 cmp.l #NSIG,d0 bcc 1f move.l 6(sp),d1 @@ -16,7 +17,9 @@ _signal: beq 2f btst #0,d1 bne 2f - move.l #enter,d1 + move.l #jmptab,d1 + add.l d0,d1 + add.l d0,d1 2: move.l d0,a0 move.w #0x30,d0 @@ -26,16 +29,52 @@ _signal: bne 4f move.l a1,d0 4: + clr.l d1 rts 1: move.l #22,d0 3: jmp cerror +jmptab: bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter + bsr enter enter: movem.l d0/d1/a0/a1,-(sp) - move.l 16(sp),a0 - move.l a0,-(sp) + move.l 16(sp),d0 + sub.l #jmptab+2,d0 + asr.l #1,d0 + move.l d0,-(sp) + move.l d0,a0 add.l a0,a0 add.l a0,a0 add.l #dvect,a0 -- 2.34.1