diff options
Diffstat (limited to 'arch/powerpc/crt_arch.h')
-rw-r--r-- | arch/powerpc/crt_arch.h | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/arch/powerpc/crt_arch.h b/arch/powerpc/crt_arch.h index 8cc53d98..ec3cd29e 100644 --- a/arch/powerpc/crt_arch.h +++ b/arch/powerpc/crt_arch.h @@ -1,12 +1,19 @@ -__asm__("\ -.global _start \n\ -.type _start, %function \n\ -_start: \n\ - mr 3, 1 \n\ - clrrwi 1, 1, 4 \n\ - li 0, 0 \n\ - stwu 1, -16(1) \n\ - mtlr 0 \n\ - stw 0, 0(1) \n\ - bl __cstart \n\ -"); +__asm__( +".global " START " \n" +".type " START ", %function \n" +START ": \n" +" bl 1f \n" +".weak _DYNAMIC \n" +".hidden _DYNAMIC \n" +" .long _DYNAMIC-. \n" +"1: mflr 4 \n" +" lwz 3, 0(4) \n" +" add 4, 3, 4 \n" +" mr 3, 1 \n" +" clrrwi 1, 1, 4 \n" +" li 0, 0 \n" +" stwu 1, -16(1) \n" +" mtlr 0 \n" +" stw 0, 0(1) \n" +" bl " START "_c \n" +); |