Bug fixed: incorrect return value

New version adapted from m68k4 version.
This commit is contained in:
bal 1985-04-18 15:12:29 +00:00
parent f1bf649e1d
commit 288206f080

View File

@ -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