diff options
Diffstat (limited to 'src/ldso')
-rw-r--r-- | src/ldso/powerpc/dlsym.s | 14 | ||||
-rw-r--r-- | src/ldso/powerpc/start.s | 39 |
2 files changed, 26 insertions, 27 deletions
diff --git a/src/ldso/powerpc/dlsym.s b/src/ldso/powerpc/dlsym.s index 20796176..b9fae982 100644 --- a/src/ldso/powerpc/dlsym.s +++ b/src/ldso/powerpc/dlsym.s @@ -1,8 +1,8 @@ - .text - .global dlsym - .type dlsym,@function + .text + .global dlsym + .type dlsym,@function dlsym: - mflr 5 # The return address is arg3. - b __dlsym - .end dlsym - .size dlsym, .-dlsym + mflr 5 # The return address is arg3. + b __dlsym + .end dlsym + .size dlsym, .-dlsym diff --git a/src/ldso/powerpc/start.s b/src/ldso/powerpc/start.s index d2060e3d..ac2c20c8 100644 --- a/src/ldso/powerpc/start.s +++ b/src/ldso/powerpc/start.s @@ -1,23 +1,22 @@ # FIXME : does not work, the small data array needs to be relocated. # see elfspec_ppc.pdf, page 76-84 - .global _start - .type _start,@function + .global _start + .type _start,@function _start: - mr 9, 1 # Save the original stack pointer. - clrrwi 1, 1, 4 # Align the stack to 16 bytes. - lis 13, _SDA_BASE_@ha # r13 points to the small data area. - addi 13, 13, _SDA_BASE_@l - li 0, 0 # Zero the frame pointer. - lwz 3, 0(9) # and argc... - addi 4, 9, 4 # and argv ... - mtlr 0 # Clear the link register. - # Go to the musl dynamic linker entry point. - bl __dynlink - cmpi 4, 0, 3, 1 # Check for a 1. - bne 4, . # Stay here - mtlr 3 # Set the link address... - li 3, 0 - blr # and go. - .end _start - .size _start, .-_start - + mr 9, 1 # Save the original stack pointer. + clrrwi 1, 1, 4 # Align the stack to 16 bytes. + lis 13, _SDA_BASE_@ha # r13 points to the small data area. + addi 13, 13, _SDA_BASE_@l + li 0, 0 # Zero the frame pointer. + lwz 3, 0(9) # and argc... + addi 4, 9, 4 # and argv ... + mtlr 0 # Clear the link register. + # Go to the musl dynamic linker entry point. + bl __dynlink + cmpi 4, 0, 3, 1 # Check for a 1. + bne 4, . # Stay here + mtlr 3 # Set the link address... + li 3, 0 + blr # and go. + .end _start + .size _start, .-_start |