summaryrefslogtreecommitdiff
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.bz2
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