Module Name:    src
Committed By:   matt
Date:           Wed Mar 19 15:34:30 UTC 2014

Modified Files:
        src/libexec/ld.elf_so/arch/vax: rtld_start.S

Log Message:
Fix two bugs.  (jump past entry mask, fix insv)


To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 src/libexec/ld.elf_so/arch/vax/rtld_start.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/libexec/ld.elf_so/arch/vax/rtld_start.S
diff -u src/libexec/ld.elf_so/arch/vax/rtld_start.S:1.18 src/libexec/ld.elf_so/arch/vax/rtld_start.S:1.19
--- src/libexec/ld.elf_so/arch/vax/rtld_start.S:1.18	Wed Mar 19 02:39:22 2014
+++ src/libexec/ld.elf_so/arch/vax/rtld_start.S	Wed Mar 19 15:34:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: rtld_start.S,v 1.18 2014/03/19 02:39:22 matt Exp $	*/
+/*	$NetBSD: rtld_start.S,v 1.19 2014/03/19 15:34:30 matt Exp $	*/
 
 /*
  * Copyright 1996 Matt Thomas <[email protected]>
@@ -71,7 +71,7 @@ ALTENTRY(_rtld_bind_start)
 	pushl	%r0		/* push address of obj entry */
 	calls	$2,_rtld_bind
 
-	movl	%r0,%r3		/* save routine address */
+	addl3	$2,%r0,%r3		/* save routine address */
 	extzv	$0,$12,(%r0),%r1	/* get entry mask */
 	extzv	$0,$12,6(%fp),%r2	/* get saved mask */
 	cmpw	%r1,%r2		/* compare them */
@@ -151,7 +151,7 @@ ALTENTRY(_rtld_bind_start)
 	movq	(%sp)+,-(%r0)	/* move PSW/save-mask/etc + AP into place */
 	movq	%r3,-(%r0)	/* move routine address + cond handle slot */
 	addl3	$4,%r0,%fp	/* get start of new callframe */
-	insv	$0,$12,%r1,6(%fp) /* insert new saved mask */
+	insv	%r1,$0,$12,6(%fp) /* insert new saved mask */
 	popr	$0x3f		/* restore R0-R5 (cond flags not modified) */
 	subl3	$4,%fp,%sp	/* sp needs to be equal to fp */
 	rsb			/* and jmp to the routine */

Reply via email to