URL
https://opencores.org/ocsvn/or1k_old/or1k_old/trunk
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 39 |
Rev 56 |
Line 23... |
Line 23... |
|
|
.file "crt0.S"
|
.file "crt0.S"
|
|
|
##------------------------------------------------------------------------------
|
##------------------------------------------------------------------------------
|
## Startup code
|
## Startup code
|
#ifdef __mn10300__
|
|
.section .text
|
.section .text
|
.global _start
|
.global _start
|
_start:
|
_start:
|
mov _stack-8,a0 # Load up the stack pointer
|
mov _stack-8,a0 # Load up the stack pointer
|
mov a0,sp
|
mov a0,sp
|
Line 53... |
Line 52... |
mov d0,(4,sp)
|
mov d0,(4,sp)
|
call _main,[],0 # Call main program
|
call _main,[],0 # Call main program
|
call _exit,[],0 # All done, no need to return or
|
call _exit,[],0 # All done, no need to return or
|
# deallocate our stack.
|
# deallocate our stack.
|
|
|
.section ._stack
|
.section .stack
|
_stack: .long 1
|
_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
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.