From 1f563bfd290b56ebf1865fbe950c276dfb8018e5 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Mon, 22 Apr 2002 19:12:37 +0000 Subject: First version git-svn-id: svn://svn.rockbox.org/rockbox/trunk@175 a1c6a512-1295-4272-9138-f99709370657 --- firmware/test/kernel/crt0.S | 49 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 firmware/test/kernel/crt0.S (limited to 'firmware/test/kernel/crt0.S') diff --git a/firmware/test/kernel/crt0.S b/firmware/test/kernel/crt0.S new file mode 100644 index 0000000000..5f0ef2d64e --- /dev/null +++ b/firmware/test/kernel/crt0.S @@ -0,0 +1,49 @@ + .section .text + .global start +start: + mov.l stack_k,r15 + + ! zero out bss + mov.l edata_k,r0 + mov.l end_k,r1 + mov #0,r2 +start_l: + mov.l r2,@r0 + add #4,r0 + cmp/ge r0,r1 + bt start_l + nop + +#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY) + 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__) */ + + ! call the mainline + mov.l main_k,r0 + jsr @r0 + nop +.hoo: + bra .hoo + + .align 2 +#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) +set_fpscr_k: + .long ___set_fpscr +#endif /* defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(SH4_SINGLE_ONLY) */ +stack_k: + .long _stack +edata_k: + .long _edata +end_k: + .long _end +main_k: + .long _main + +#ifdef __ELF__ + .section .stack,"aw" +#else + .section .stack +#endif -- cgit v1.2.3