about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-11-17 17:25:17 -0500
committerRich Felker <dalias@aerifal.cx>2012-11-17 17:25:17 -0500
commitbb9abdef48969671ee51f28379981a13c440d0d9 (patch)
treea1d8c18eb5308533784a67e972cd57ff6f598bc1
parenta4db94ab78db29eddc957879251f3e0bc7ffb571 (diff)
downloadmusl-bb9abdef48969671ee51f28379981a13c440d0d9.tar.gz
musl-bb9abdef48969671ee51f28379981a13c440d0d9.tar.xz
musl-bb9abdef48969671ee51f28379981a13c440d0d9.zip
arg-skipping code for powerpc dynamic linker
this allows using the dynamic linker as a command to load programs.
-rw-r--r--src/ldso/powerpc/start.s8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ldso/powerpc/start.s b/src/ldso/powerpc/start.s
index 08b5979a..6c499e8e 100644
--- a/src/ldso/powerpc/start.s
+++ b/src/ldso/powerpc/start.s
@@ -16,6 +16,14 @@ _start:
 	bl      __dynlink
 	addi    1, 1, 16
 
+	lwz     4, 0(1)
+1:	addi    4, 4, -1
+	lwzu    5, 4(1)
+	cmpwi   5, -1
+	beq-    1b
+	addi    4, 4, 1
+	stwu    4, -4(1)
+
 	mtlr    3
 	li      3, 0
 	blr