#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