diff options
| author | Linus Nielsen Feltzing <linus@haxx.se> | 2004-10-26 05:40:24 +0000 |
|---|---|---|
| committer | Linus Nielsen Feltzing <linus@haxx.se> | 2004-10-26 05:40:24 +0000 |
| commit | ba809183a82a0c477c67be8cfc93b231948a82de (patch) | |
| tree | faaf9e4b637f81e6da2df5e22bef79b9eb89581f | |
| parent | 51a54cff20284eca07c45c946b8480f8bb911f1c (diff) | |
| download | rockbox-ba809183a82a0c477c67be8cfc93b231948a82de.zip rockbox-ba809183a82a0c477c67be8cfc93b231948a82de.tar.gz rockbox-ba809183a82a0c477c67be8cfc93b231948a82de.tar.bz2 rockbox-ba809183a82a0c477c67be8cfc93b231948a82de.tar.xz | |
Ported to Coldfire
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5347 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/common/memcpy.S | 25 | ||||
| -rw-r--r-- | firmware/common/memset.S | 24 | ||||
| -rw-r--r-- | firmware/export/lcd.h | 2 |
3 files changed, 50 insertions, 1 deletions
diff --git a/firmware/common/memcpy.S b/firmware/common/memcpy.S index 2fb9f6a..e129b99 100644 --- a/firmware/common/memcpy.S +++ b/firmware/common/memcpy.S @@ -16,9 +16,11 @@ * KIND, either express or implied. * ****************************************************************************/ +#include "config.h" .section .icode,"ax",@progbits +#if CONFIG_CPU == SH7034 .align 2 .global _memcpy .type _memcpy,@function @@ -168,4 +170,27 @@ _memcpy: mov r7,r0 /* return dest start address */ .end: .size _memcpy,.end-_memcpy +#elif CONFIG_CPU == MCF5249 + .align 2 + .global memcpy + .type memcpy,@function +/* Copies <length> bytes of data in memory from <source> to <dest> + * This version is not optimized at all + */ +memcpy: + move.l (4,%sp),%a1 /* Destination */ + move.l (8,%sp),%a0 /* Source */ + move.l (12,%sp),%d1 /* Length */ + + cmp.l #0,%d1 + bra.b .byteloopend + +.byteloop: + move.b (%a0)+,(%a1)+ + subq.l #1,%d1 +.byteloopend: + bne.b .byteloop + + rts +#endif diff --git a/firmware/common/memset.S b/firmware/common/memset.S index 038915c..bce8936 100644 --- a/firmware/common/memset.S +++ b/firmware/common/memset.S @@ -16,10 +16,12 @@ * KIND, either express or implied. * ****************************************************************************/ +#include "config.h" .section .icode,"ax",@progbits .align 2 +#if CONFIG_CPU == SH7034 .global _memset .type _memset,@function @@ -105,4 +107,26 @@ _memset: .end: .size _memset,.end-_memset +#elif CONFIG_CPU == MCF5249 + .global memset + .type memset,@function +/* Fills a memory region with specified byte value + * This version is not optimized at all + */ +memset: + move.l (4,%sp),%a0 /* Start address */ + move.l (8,%sp),%d0 /* Value */ + move.l (12,%sp),%d1 /* Length */ + lea.l (%d1,%a0),%a1 /* a1 = a0+d1 */ + + bra.b .byteloopend + +.byteloop: + move.b %d0,(%a0)+ +.byteloopend: + cmp.l %a0,%a1 + bne.b .byteloop + + rts +#endif diff --git a/firmware/export/lcd.h b/firmware/export/lcd.h index 306e525..b784747 100644 --- a/firmware/export/lcd.h +++ b/firmware/export/lcd.h @@ -21,7 +21,7 @@ #define __LCD_H__ #include <stdbool.h> -#include "sh7034.h" +#include "cpu.h" #include "config.h" #define STYLE_DEFAULT 0 |