arg-skipping code for powerpc dynamic linker
authorRich Felker <dalias@aerifal.cx>
Sat, 17 Nov 2012 22:25:17 +0000 (17:25 -0500)
committerRich Felker <dalias@aerifal.cx>
Sat, 17 Nov 2012 22:25:17 +0000 (17:25 -0500)
this allows using the dynamic linker as a command to load programs.

src/ldso/powerpc/start.s

index 08b5979..6c499e8 100644 (file)
@@ -16,6 +16,14 @@ _start:
        bl      __dynlink
        addi    1, 1, 16
 
        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
        mtlr    3
        li      3, 0
        blr