diff --git a/libexec/ld.aout_so/arch/vax/md.c b/libexec/ld.aout_so/arch/vax/md.c index 5f98ee90b959..997e57dbbc16 100644 --- a/libexec/ld.aout_so/arch/vax/md.c +++ b/libexec/ld.aout_so/arch/vax/md.c @@ -1,4 +1,4 @@ -/* $NetBSD: md.c,v 1.14 1999/03/13 17:09:51 ragge Exp $ */ +/* $NetBSD: md.c,v 1.15 1999/06/28 17:28:56 ragge Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -209,7 +209,7 @@ md_make_jmpslot(sp, offset, index) */ u_long fudge = - (offset + 9); - sp->mask = 0x0000; /* no registers */ + sp->mask = (1 << 6); /* Just R6 (for setjmp) */ sp->insn[0] = 0x01; /* nop */ sp->insn[1] = 0x16; /* jsb */ sp->insn[2] = 0xef; /* L^(pc) */ diff --git a/libexec/ld.aout_so/arch/vax/mdprologue.S b/libexec/ld.aout_so/arch/vax/mdprologue.S index 5e4e5b56672f..19a8a2687333 100644 --- a/libexec/ld.aout_so/arch/vax/mdprologue.S +++ b/libexec/ld.aout_so/arch/vax/mdprologue.S @@ -1,4 +1,4 @@ -/* $NetBSD: mdprologue.S,v 1.9 1998/10/31 08:59:58 matt Exp $ */ +/* $NetBSD: mdprologue.S,v 1.10 1999/06/28 17:28:56 ragge Exp $ */ /* * Copyright (c) 1998 Matt Thomas @@ -92,8 +92,8 @@ _binder_entry: pushab 1f /* by issuing an */ rei /* rei. */ 1: movl r0, 24(sp) /* save return address onto stack */ - popr $0x3f /* restore r0 to r5 */ - tstw *(sp) /* does the entry mask save any regs */ + bicw3 6(fp),(r0),r0 /* does the entry mask save any additional regs */ + popr $0x3f /* restore r0 to r5 (cond flags aren't modified) */ bneq 2f /* yes? do it the hard way */ addl2 $2,(sp) /* no? skip past the mask */ rsb /* and jump to it */