Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/libexec/ld.elf_so/arch/arm Add a comment for EABI. Use "pop...



details:   https://anonhg.NetBSD.org/src/rev/49ceef480bec
branches:  trunk
changeset: 780955:49ceef480bec
user:      matt <matt%NetBSD.org@localhost>
date:      Mon Aug 13 02:53:25 2012 +0000

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

diffstat:

 libexec/ld.elf_so/arch/arm/rtld_start.S |  11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diffs (39 lines):

diff -r d07bb451ddf7 -r 49ceef480bec libexec/ld.elf_so/arch/arm/rtld_start.S
--- a/libexec/ld.elf_so/arch/arm/rtld_start.S   Mon Aug 13 02:52:34 2012 +0000
+++ b/libexec/ld.elf_so/arch/arm/rtld_start.S   Mon Aug 13 02:53:25 2012 +0000
@@ -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 @@
        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 @@
  *     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 */



Home | Main Index | Thread Index | Old Index