summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arm/crt1.S
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2007-01-28 06:58:44 +0000
committerMike Frysinger <vapier@gentoo.org>2007-01-28 06:58:44 +0000
commit0c6f9e780d85992f4a7140180f12f0fc98e31ade (patch)
tree144bd17c095f6a03a3f6f136e4fd8cab772220f9 /libc/sysdeps/linux/arm/crt1.S
parentf53229ed4ec454abe7b1ff9319977f4a94b1b9c3 (diff)
Paul Brook writes:
The patch below tweaks the ARM nommu startup code so that doubleword stack alignment is preserved. This is required on EABI targets.
Diffstat (limited to 'libc/sysdeps/linux/arm/crt1.S')
-rw-r--r--libc/sysdeps/linux/arm/crt1.S7
1 files changed, 4 insertions, 3 deletions
diff --git a/libc/sysdeps/linux/arm/crt1.S b/libc/sysdeps/linux/arm/crt1.S
index 02c2f8de9..8d4d230a7 100644
--- a/libc/sysdeps/linux/arm/crt1.S
+++ b/libc/sysdeps/linux/arm/crt1.S
@@ -119,9 +119,10 @@ _start:
* uClinux/arm stacks look a little different from normal
* MMU-full Linux/arm stacks (for no good reason)
*/
- /* pull argc and argv off the stack */
- ldr a2, [sp, #0]
- ldr a3, [sp, #4]
+ /* pull argc and argv off the stack. We are going to push 3
+ * arguments, so pop one here to maintain doubleword alignment. */
+ ldr a2, [sp], #4
+ ldr a3, [sp]
#endif
/* Push stack limit */