aboutsummaryrefslogtreecommitdiffstats
path: root/do_memcpy.S
blob: fb37f201a697eea37af247018b8ca096e982d7dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// SPDX-License-Identifier: GPL-2.0

#ifdef __x86_64__
	.globl do_memcpy
	.type   do_memcpy, @function
do_memcpy:
	.cfi_startproc
	mov %edx, %ecx
	rep movsb %ds:(%rsi),%es:(%rdi)
	mov    $0x0,%eax
	retq
	.cfi_endproc
	.size   do_memcpy, .-do_memcpy

#elif __aarch64__
dst	.req	x0
src	.req	x1
count	.req	x2
tmp	.req	w3


	.globl do_memcpy
do_memcpy:
	cbz	count, .Lexit
	ldrb	tmp, [src], #0x1
	strb	tmp, [dst], #0x1
	sub	count, count, #0x1
	b.ge	do_memcpy
.Lexit:
	ret
#endif