OSDN Git Service

stack_end in __uClibc_main must point to where argc is.
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>
Sun, 26 Jun 2005 00:11:34 +0000 (00:11 -0000)
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>
Sun, 26 Jun 2005 00:11:34 +0000 (00:11 -0000)
libc/sysdeps/linux/powerpc/crt1.S

index a97b0d1..eef12fa 100644 (file)
@@ -40,9 +40,8 @@
        .type   __uClibc_main,%function
 
 _start:
-       mr      r10,r1  /* Save the stack pointer */
+       mr      r9,r1   /* Save the stack pointer and pass it to __uClibc_main */
        clrrwi  r1,r1,4 /* Align stack ptr to 16 bytes */
-       mr      r9,r1   /* Pass aligned stack ptr */
 #ifdef __PIC__
        bl      _GLOBAL_OFFSET_TABLE_-4@local
        mflr    r31
@@ -53,9 +52,9 @@ _start:
        mtlr    r0
        stw     r0,0(r1)
        /* find argc from the stack pointer */
-       lwz     r4,0(r10)
+       lwz     r4,0(r9)
        /* find argv one word offset from the stack pointer */
-       addi    r5,r10,4
+       addi    r5,r9,4
        mr      r8,r7 /* Pass _dl_fini from ldso or NULL if statically linked */
        /* Ok, now run uClibc's main() -- shouldn't return */
 #ifdef __PIC__