dreamcast/start.s

38 lines
631 B
ArmAsm

.section .text.start
.global _start
_start:
/* set stack pointer */
mov.l stack_end_ptr,r15
/* mask all interrupts */
mov.l imask_all,r0
stc sr,r1
or r1,r0
ldc r0,sr
/* save pr */
sts.l pr,@-r15
/* jump to runtime_init */
mov.l runtime_init_ptr,r0
jsr @r0
nop
/* restore pr */
lds.l @r15+,pr
/* jump to main */
mov.l main_ptr,r0
jmp @r0
nop
.align 4
stack_end_ptr:
.long __stack_end
imask_all:
.long 0xf0
runtime_init_ptr:
.long _runtime_init
main_ptr:
.long _main