From f95a4a932476be2ba99e2fd081e8d2bc6ea12813 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 15 Dec 2017 09:38:53 -0500 Subject: Import newlib and create makefile --- newlib/libc/sys/sysmec/crt0.S | 65 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 newlib/libc/sys/sysmec/crt0.S (limited to 'newlib/libc/sys/sysmec/crt0.S') diff --git a/newlib/libc/sys/sysmec/crt0.S b/newlib/libc/sys/sysmec/crt0.S new file mode 100644 index 0000000..ca7c88f --- /dev/null +++ b/newlib/libc/sys/sysmec/crt0.S @@ -0,0 +1,65 @@ +#ifdef __mn10300__ + .section .text + .global _start +_start: + mov _stack-8,a0 # Load up the stack pointer + mov a0,sp + + mov _edata,a0 # Get the start/end of bss + mov _end,a1 + + cmp a0,a1 # If no bss, then do nothing + beq .L0 + + clr d0 # clear d0 + +.L1: + movbu d0,(a0) # Clear a byte and bump pointer + inc a0 + cmp a0,a1 + bne .L1 + +.L0: + call ___main,[],0 # Call __main to run ctors/dtors + clr d0 + clr d1 + mov d0,(4,sp) + call _main,[],0 # Call main program + call _exit,[],0 # All done, no need to return or + # deallocate our stack. + + .section ._stack +_stack: .long 1 +#else + .section .text + .global _start +_start: + mov _stack-4,a3 # Load up the stack pointer and allocate + # our current frame. + + mov _edata,a0 # Get the start/end of bss + mov _end,a1 + + cmp a0,a1 # If no bss, then do nothing + beqx .L0 + + sub d0,d0 # clear d0 + +.L1: + movb d0,(a0) # Clear a byte and bump pointer + add 1,a0 + cmp a0,a1 + bnex .L1 + +.L0: + jsr ___main + sub d0,d0 + mov d0,d1 + mov d0,(a3) + jsr _main # Call main program + jmp _exit # All done, no need to return or + # deallocate our stack. + + .section ._stack +_stack: .long 1 +#endif -- cgit v1.2.3