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 */