Module Name:    src
Committed By:   matt
Date:           Mon Aug 13 02:53:25 UTC 2012

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

Log Message:
Add a comment for EABI.  Use "pop" instructions to save one instruction.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/libexec/ld.elf_so/arch/arm/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/arm/rtld_start.S
diff -u src/libexec/ld.elf_so/arch/arm/rtld_start.S:1.10 src/libexec/ld.elf_so/arch/arm/rtld_start.S:1.11
--- src/libexec/ld.elf_so/arch/arm/rtld_start.S:1.10	Wed Nov 11 14:15:41 2009
+++ src/libexec/ld.elf_so/arch/arm/rtld_start.S	Mon Aug 13 02:53:25 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: rtld_start.S,v 1.10 2009/11/11 14:15:41 skrll Exp $	*/
+/*	$NetBSD: rtld_start.S,v 1.11 2012/08/13 02:53:25 matt Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2002 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <machine/asm.h>
 
-RCSID("$NetBSD: rtld_start.S,v 1.10 2009/11/11 14:15:41 skrll Exp $")
+RCSID("$NetBSD: rtld_start.S,v 1.11 2012/08/13 02:53:25 matt Exp $")
 
 	.text
 	.align	0
@@ -58,9 +58,8 @@ _rtld_start:
 	bl	_rtld			/* call the shared loader */
 	mov	r3, r0			/* save entry point */
 
-	ldr	r2, [sp, #0]		/* r2 = cleanup */
-	ldr	r1, [sp, #4]		/* r1 = obj_main */
-	add	sp, sp, #8		/* restore stack */
+	ldr	r2, [sp], #4		/* pop r2 = cleanup */
+	ldr	r1, [sp], #4		/* pop r1 = obj_main */
 	mov	r0, r4			/* restore ps_strings */
 #ifdef _ARM_ARCH_4T
 	bx	r3			/* jump to the entry point */
@@ -81,7 +80,7 @@ _rtld_start:
  *	lr = &GOT[2]
  */
 _rtld_bind_start:
-	stmdb	sp!,{r0-r4,sl,fp}
+	stmdb	sp!,{r0-r4,sl,fp}	/* 8 byte aligned (lr already saved) */
 
 	sub	r1, ip, lr		/* r1 = 4 * (n + 1) */
 	sub	r1, r1, #4		/* r1 = 4 * n */

Reply via email to