summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2004-07-24 17:53:56 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2004-07-24 17:53:56 +0000
commit4b9cb9b5b4419207aca40040bd57a60d6e3734e1 (patch)
treeeb7a90d9a2cba8c162a55479756d4b93a763491a
parent0185ee7e4c67fe4e9de8c609dfbcb4d5ae12353b (diff)
downloadrockbox-4b9cb9b5b4419207aca40040bd57a60d6e3734e1.zip
rockbox-4b9cb9b5b4419207aca40040bd57a60d6e3734e1.tar.gz
rockbox-4b9cb9b5b4419207aca40040bd57a60d6e3734e1.tar.bz2
rockbox-4b9cb9b5b4419207aca40040bd57a60d6e3734e1.tar.xz
Don't copy the data section if src and dest are the same
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4935 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/crt0.S5
1 files changed, 4 insertions, 1 deletions
diff --git a/firmware/crt0.S b/firmware/crt0.S
index 088ea0a..e33faa6 100644
--- a/firmware/crt0.S
+++ b/firmware/crt0.S
@@ -116,6 +116,9 @@ copy_l:
mov.l datacopy_k,r0
mov.l data_k,r1
mov.l dataend_k,r2
+ /* Don't copy if src and dest are equal */
+ cmp/eq r0,r1
+ bt nodatacopy
copy_l2:
mov.l @r0,r3
mov.l r3,@r1
@@ -124,7 +127,7 @@ copy_l2:
cmp/ge r2,r1
bf copy_l2
nop
-
+nodatacopy:
/* Munge the main thread stack */
mov.l stack_k,r2
mov.l deadbeef_k,r0