diff options
Diffstat (limited to 'firmware/asm/sh')
-rw-r--r-- | firmware/asm/sh/memcpy.S | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/firmware/asm/sh/memcpy.S b/firmware/asm/sh/memcpy.S index 59c5801ac0..3d623c48cd 100644 --- a/firmware/asm/sh/memcpy.S +++ b/firmware/asm/sh/memcpy.S | |||
@@ -24,8 +24,10 @@ | |||
24 | 24 | ||
25 | .align 2 | 25 | .align 2 |
26 | .global _memcpy | 26 | .global _memcpy |
27 | .global _mempcpy | ||
27 | .global ___memcpy_fwd_entry | 28 | .global ___memcpy_fwd_entry |
28 | .type _memcpy,@function | 29 | .type _memcpy,@function |
30 | .type _mempcpy,@function | ||
29 | 31 | ||
30 | /* Copies <length> bytes of data in memory from <source> to <dest> | 32 | /* Copies <length> bytes of data in memory from <source> to <dest> |
31 | * This version is optimized for speed | 33 | * This version is optimized for speed |
@@ -51,6 +53,10 @@ | |||
51 | * The instruction order is devised in a way to utilize the pipelining | 53 | * The instruction order is devised in a way to utilize the pipelining |
52 | * of the SH1 to the max. The routine also tries to utilize fast page mode. | 54 | * of the SH1 to the max. The routine also tries to utilize fast page mode. |
53 | */ | 55 | */ |
56 | _mempcpy: | ||
57 | mov r4,r7 /* store dest + length for returning */ | ||
58 | bra ___memcpy_fwd_entry | ||
59 | add r6,r7 | ||
54 | 60 | ||
55 | _memcpy: | 61 | _memcpy: |
56 | mov r4,r7 /* store dest for returning */ | 62 | mov r4,r7 /* store dest for returning */ |
@@ -217,3 +223,5 @@ ___memcpy_fwd_entry: | |||
217 | mov r7,r0 /* return dest start address */ | 223 | mov r7,r0 /* return dest start address */ |
218 | .end: | 224 | .end: |
219 | .size _memcpy,.end-_memcpy | 225 | .size _memcpy,.end-_memcpy |
226 | .size _mempcpy,.end-_mempcpy | ||
227 | |||