URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 158 |
Rev 816 |
// MCore StartUp Code.
|
// MCore StartUp Code.
|
|
|
.import main
|
.import main
|
.import exit
|
.import exit
|
|
|
.text
|
.text
|
.export _start
|
.export _start
|
_start:
|
_start:
|
.export _mainCRTStartup
|
.export _mainCRTStartup
|
_mainCRTStartup:
|
_mainCRTStartup:
|
// Initialise the stack pointer
|
// Initialise the stack pointer
|
lrw r1, _stack
|
lrw r1, _stack
|
mov r0, r1
|
mov r0, r1
|
|
|
// Zero the .bss data space
|
// Zero the .bss data space
|
lrw r1, __bss_start__
|
lrw r1, __bss_start__
|
lrw r2, __bss_end__
|
lrw r2, __bss_end__
|
movi r3, 0
|
movi r3, 0
|
.L0:
|
.L0:
|
st r3, (r1, 0)
|
st r3, (r1, 0)
|
addi r1, 4
|
addi r1, 4
|
cmphs r1, r2
|
cmphs r1, r2
|
bf .L0
|
bf .L0
|
#ifdef __ELF__
|
#ifdef __ELF__
|
// Call the global/static constructors
|
// Call the global/static constructors
|
jbsr _init
|
jbsr _init
|
|
|
// Setup destructors to be called from exit,
|
// Setup destructors to be called from exit,
|
// just in case main never returns...
|
// just in case main never returns...
|
lrw r2, _fini
|
lrw r2, _fini
|
jbsr atexit
|
jbsr atexit
|
#endif
|
#endif
|
|
|
// Initialise the parameters to main()
|
// Initialise the parameters to main()
|
movi r2, 0 // argc
|
movi r2, 0 // argc
|
movi r3, 0 // argv
|
movi r3, 0 // argv
|
movi r4, 0 // envp
|
movi r4, 0 // envp
|
|
|
// Call main
|
// Call main
|
jbsr main
|
jbsr main
|
|
|
// Call exit
|
// Call exit
|
movi r2, 0
|
movi r2, 0
|
jbsr exit
|
jbsr exit
|
|
|
// We should never reach here.
|
// We should never reach here.
|
bkpt
|
bkpt
|
|
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.