summaryrefslogtreecommitdiffstats
path: root/copy_template.h
blob: 3c15f25281c0aa6782f61588bd78bad2acc68250 (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
33
34
35
36
dst	.req	x0
src	.req	x1
count	.req	x2

A_l	.req	x3
A_h	.req	x4
B_l	.req	x5
B_h	.req	x6
C_l	.req	x7
C_h	.req	x8
D_l	.req	x9
D_h	.req	x10

	ldp1	A_l, A_h, src, #16
	ldp1	B_l, B_h, src, #16
	ldp1	C_l, C_h, src, #16
	ldp1	D_l, D_h, src, #16
	sub	count, count, #64

1:
	prfm1	src
	stp1	A_l, A_h, dst, #16
	ldp1	A_l, A_h, src, #16
	stp1	B_l, B_h, dst, #16
	ldp1	B_l, B_h, src, #16
	stp1	C_l, C_h, dst, #16
	ldp1	C_l, C_h, src, #16
	stp1	D_l, D_h, dst, #16
	ldp1	D_l, D_h, src, #16
	subs	count, count, #64
	b.ne	1b

	stp1	A_l, A_h, dst, #16
	stp1	B_l, B_h, dst, #16
	stp1	C_l, C_h, dst, #16
	stp1	D_l, D_h, dst, #16