summaryrefslogtreecommitdiff
path: root/device/lib/stm8/memcpy.lst
diff options
context:
space:
mode:
Diffstat (limited to 'device/lib/stm8/memcpy.lst')
-rw-r--r--device/lib/stm8/memcpy.lst91
1 files changed, 0 insertions, 91 deletions
diff --git a/device/lib/stm8/memcpy.lst b/device/lib/stm8/memcpy.lst
deleted file mode 100644
index 25db0b2..0000000
--- a/device/lib/stm8/memcpy.lst
+++ /dev/null
@@ -1,91 +0,0 @@
- 1 ;--------------------------------------------------------------------------
- 2 ; memcpy.s
- 3 ;
- 4 ; Copyright (C) 2018, Benedikt Freisen
- 5 ;
- 6 ; This library is free software; you can redistribute it and/or modify it
- 7 ; under the terms of the GNU General Public License as published by the
- 8 ; Free Software Foundation; either version 2, or (at your option) any
- 9 ; later version.
- 10 ;
- 11 ; This library is distributed in the hope that it will be useful,
- 12 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
- 13 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- 14 ; GNU General Public License for more details.
- 15 ;
- 16 ; You should have received a copy of the GNU General Public License
- 17 ; along with this library; see the file COPYING. If not, write to the
- 18 ; Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
- 19 ; MA 02110-1301, USA.
- 20 ;
- 21 ; As a special exception, if you link this library with other files,
- 22 ; some of which are compiled with SDCC, to produce an executable,
- 23 ; this library does not by itself cause the resulting executable to
- 24 ; be covered by the GNU General Public License. This exception does
- 25 ; not however invalidate any other reasons why the executable file
- 26 ; might be covered by the GNU General Public License.
- 27 ;--------------------------------------------------------------------------
- 28
- 29 ; This memcpy() implementation has been optimized for speed using 4x loop
- 30 ; unrolling and index relative addressing.
- 31
- 32 ; void *memcpy(void *dest, const void *src, size_t n);
- 33
- 34 .globl ___memcpy
- 35 .globl _memcpy
- 36
- 37 .area CODE
- 38
- 000000 39 ___memcpy:
- 000000 40 _memcpy:
- 000000 16 03 [ 2] 41 ldw y, (3, sp)
- 000002 1E 05 [ 2] 42 ldw x, (5, sp)
- 43
- 000004 04 07 [ 1] 44 srl (7, sp)
- 000006 06 08 [ 1] 45 rrc (8, sp)
- 000008 24 06 [ 1] 46 jrnc n_x0
- 00000A F6 [ 1] 47 ld a, (x)
- 00000B 90 F7 [ 1] 48 ld (y), a
- 00000D 5C [ 1] 49 incw x
- 00000E 90 5C [ 1] 50 incw y
- 000010 51 n_x0:
- 000010 04 07 [ 1] 52 srl (7, sp)
- 000012 06 08 [ 1] 53 rrc (8, sp)
- 000014 24 0C [ 1] 54 jrnc n_00
- 000016 F6 [ 1] 55 ld a, (x)
- 000017 90 F7 [ 1] 56 ld (y), a
- 000019 5C [ 1] 57 incw x
- 00001A 90 5C [ 1] 58 incw y
- 00001C F6 [ 1] 59 ld a, (x)
- 00001D 90 F7 [ 1] 60 ld (y), a
- 00001F 5C [ 1] 61 incw x
- 000020 90 5C [ 1] 62 incw y
- 000022 63 n_00:
- 000022 0D 08 [ 1] 64 tnz (8, sp)
- 000024 26 0D [ 1] 65 jrne loop_ent
- 000026 0A 07 [ 1] 66 dec (7, sp)
- 000028 2B 23 [ 1] 67 jrmi end
- 00002A 20 07 [ 2] 68 jra loop_ent
- 69
- 00002C 70 loop:
- 00002C 1C 00 04 [ 2] 71 addw x, #4
- 00002F 72 A9 00 04 [ 2] 72 addw y, #4
- 000033 73 loop_ent:
- 000033 F6 [ 1] 74 ld a, (x)
- 000034 90 F7 [ 1] 75 ld (y), a
- 000036 E6 01 [ 1] 76 ld a, (1, x)
- 000038 90 E7 01 [ 1] 77 ld (1, y), a
- 00003B E6 02 [ 1] 78 ld a, (2, x)
- 00003D 90 E7 02 [ 1] 79 ld (2, y), a
- 000040 E6 03 [ 1] 80 ld a, (3, x)
- 000042 90 E7 03 [ 1] 81 ld (3, y), a
- 82
- 000045 0A 08 [ 1] 83 dec (8, sp)
- 000047 26 E3 [ 1] 84 jrne loop
- 000049 0A 07 [ 1] 85 dec (7, sp)
- 00004B 2A DF [ 1] 86 jrpl loop
- 87
- 00004D 88 end:
- 00004D 1E 03 [ 2] 89 ldw x, (3, sp)
- 00004F 81 [ 4] 90 ret
- 91