diff options
Diffstat (limited to 'arch/or1k/crt_arch.h')
-rw-r--r-- | arch/or1k/crt_arch.h | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/arch/or1k/crt_arch.h b/arch/or1k/crt_arch.h index 0f381d2d..84415561 100644 --- a/arch/or1k/crt_arch.h +++ b/arch/or1k/crt_arch.h @@ -1,11 +1,17 @@ -__asm__("\ -.global _start \n\ -.align 4 \n\ -_start: \n\ - l.ori r3, r1, 0 \n\ - l.addi r2, r0, -8 \n\ - l.and r1, r1, r2 \n\ - l.addi r1, r1, -8 \n\ - l.jal __cstart \n\ - l.ori r2, r0, 0 \n\ -"); +__asm__( +".global " START " \n" +".align 4 \n" +START ": \n" +" l.jal 1f \n" +" l.ori r3, r1, 0 \n" +".weak _DYNAMIC \n" +".hidden _DYNAMIC \n" +" .word _DYNAMIC-. \n" +"1: l.lwz r4, 0(r9) \n" +" l.add r4, r4, r9 \n" +" l.addi r2, r0, -8 \n" +" l.and r1, r1, r2 \n" +" l.addi r1, r1, -16 \n" +" l.jal " START "_c \n" +" l.ori r2, r0, 0 \n" +); |