diff options
| author | Linus Nielsen Feltzing <linus@haxx.se> | 2002-07-15 22:15:33 +0000 |
|---|---|---|
| committer | Linus Nielsen Feltzing <linus@haxx.se> | 2002-07-15 22:15:33 +0000 |
| commit | a23fe4874168c9d6fd4aa824adf715eb8ff430c2 (patch) | |
| tree | 4fa33e288921095f96733086634ba2ade686d0b8 | |
| parent | e699fba4b1b263dd186cc83691604ac4a514114c (diff) | |
| download | rockbox-a23fe4874168c9d6fd4aa824adf715eb8ff430c2.zip rockbox-a23fe4874168c9d6fd4aa824adf715eb8ff430c2.tar.gz rockbox-a23fe4874168c9d6fd4aa824adf715eb8ff430c2.tar.bz2 rockbox-a23fe4874168c9d6fd4aa824adf715eb8ff430c2.tar.xz | |
Added main stack munging
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1356 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/crt0.S | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/firmware/crt0.S b/firmware/crt0.S index 39344b2..fe1fad8 100644 --- a/firmware/crt0.S +++ b/firmware/crt0.S @@ -99,6 +99,17 @@ start_l: bt start_l nop + /* Munge the main thread stack */ + mov.l stack_k,r2 + mov.l deadbeef_k,r0 + mov.l stackbegin_k,r1 +munge_loop: + mov.l r0,@r1 + add #4,r1 + cmp/ge r1,r2 + bt munge_loop + nop + ! call the mainline mov.l main_k,r0 jsr @r0 @@ -108,7 +119,11 @@ start_l: .align 2 stack_k: - .long _stack + .long _stackend +stackbegin_k: + .long _stackbegin +deadbeef_k: + .long 0xdeadbeef edata_k: .long _edata end_k: @@ -123,6 +138,6 @@ orig_vbr_k: .section .resetvectors vectors: .long start - .long _stack + .long _stackend .long start - .long _stack + .long _stackend |