diff options
Diffstat (limited to 'firmware/asm/m68k/memcpy.S')
-rw-r--r-- | firmware/asm/m68k/memcpy.S | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/firmware/asm/m68k/memcpy.S b/firmware/asm/m68k/memcpy.S index 9762e31e02..a88ac3d091 100644 --- a/firmware/asm/m68k/memcpy.S +++ b/firmware/asm/m68k/memcpy.S | |||
@@ -27,6 +27,8 @@ | |||
27 | .global memcpy | 27 | .global memcpy |
28 | .global __memcpy_fwd_entry | 28 | .global __memcpy_fwd_entry |
29 | .type memcpy,@function | 29 | .type memcpy,@function |
30 | .global mempcpy | ||
31 | .type mempcpy,@function | ||
30 | 32 | ||
31 | /* Copies <length> bytes of data in memory from <source> to <dest> | 33 | /* Copies <length> bytes of data in memory from <source> to <dest> |
32 | * This version is optimized for speed | 34 | * This version is optimized for speed |
@@ -53,6 +55,14 @@ | |||
53 | * long+3) it writes longwords only. Same goes for word aligned destinations | 55 | * long+3) it writes longwords only. Same goes for word aligned destinations |
54 | * if FULLSPEED is undefined. | 56 | * if FULLSPEED is undefined. |
55 | */ | 57 | */ |
58 | mempcpy: | ||
59 | move.l (4,%sp),%a1 /* Destination */ | ||
60 | move.l (8,%sp),%a0 /* Source */ | ||
61 | move.l (12,%sp),%d1 /* Length */ | ||
62 | |||
63 | add.l %d1,(4,%sp) /* retval=Destination + Length */ | ||
64 | bra.b __memcpy_fwd_entry | ||
65 | |||
56 | memcpy: | 66 | memcpy: |
57 | move.l (4,%sp),%a1 /* Destination */ | 67 | move.l (4,%sp),%a1 /* Destination */ |
58 | move.l (8,%sp),%a0 /* Source */ | 68 | move.l (8,%sp),%a0 /* Source */ |