📄 crt0.s
字号:
#ifdef __SH5__ .section .data,"aw" .global ___data___data: .section .rodata,"a" .global ___rodata___rodata:#if __SH5__ == 64 .section .text,"ax"#define LOAD_ADDR(sym, reg) \ movi (sym >> 48) & 65535, reg; \ shori (sym >> 32) & 65535, reg; \ shori (sym >> 16) & 65535, reg; \ shori sym & 65535, reg#else .mode SHmedia .section .text..SHmedia32,"ax"#define LOAD_ADDR(sym, reg) \ movi (sym >> 16) & 65535, reg; \ shori sym & 65535, reg#endif .global startstart: LOAD_ADDR (_stack, r15) pt/l zero_bss_loop, tr0 pt/l _atexit, tr1 pt/l _init, tr5 pt/l _main, tr6 pt/l _exit, tr7 ! zero out bss LOAD_ADDR (_edata, r0) LOAD_ADDR (_end, r1)zero_bss_loop: stx.q r0, r63, r63 addi r0, 8, r0 bgt/l r1, r0, tr0 LOAD_ADDR (___data, r26) LOAD_ADDR (___rodata, r27)#if ! __SH4_NOFPU__ getcon cr0, r0 movi 1, r1 shlli r1, 15, r1 or r1, r0, r0 putcon r0, cr0#endif ! arrange for exit to call fini LOAD_ADDR (_fini, r2) blink tr1, r18 ! call init blink tr5, r18 ! call the mainline blink tr6, r18 ! call exit blink tr7, r18#else .section .text .global startstart: mov.l stack_k,r15 ! zero out bss mov.l edata_k,r0 mov.l end_k,r1 mov #0,r2start_l: mov.l r2,@r0 add #4,r0 cmp/ge r0,r1 bt start_l#ifndef __SH2A_NOFPU__#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY) || defined(__SH2A__) mov.l set_fpscr_k, r1 jsr @r1 mov #0,r4 lds r3,fpscr#endif /* defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) || defined(__SH2A__) */#endif /* !__SH2A_NOFPU__ */ ! call the mainline mov.l main_k,r0 jsr @r0 or r0,r0 ! call exit mov r0,r4 mov.l exit_k,r0 jsr @r0 or r0,r0 .align 2#ifndef __SH2A_NOFPU__#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) || defined(__SH2A__)set_fpscr_k: .long ___set_fpscr#endif /* defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(SH4_SINGLE_ONLY) || defined(__SH2A__) */#endif /* !__SH2A_NOFPU__ */stack_k: .long _stack edata_k: .long _edataend_k: .long _endmain_k: .long _mainexit_k: .long _exit#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -