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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
.text
.align 3
.globl __gmpn_copyd
.type __gmpn_copyd,@function
__gmpn_copyd:
add x0, x0, x2, lsl #3
add x1, x1, x2, lsl #3
cmp x2, #3
b.le .Lbc
tbz x0, #3, .Lal2
sub x1, x1, #8
ld1 {v22.1d}, [x1]
sub x2, x2, #1
sub x0, x0, #8
st1 {v22.1d}, [x0]
.Lal2: sub x1, x1, #16
ld1 {v26.2d}, [x1]
sub x2, x2, #6
sub x0, x0, #16
tbnz x2, #63, .Lend
sub x1, x1, #16
mov x12, #-16
.align 4
.Ltop: ld1 {v22.2d}, [x1], x12
st1 {v26.2d}, [x0], x12
ld1 {v26.2d}, [x1], x12
st1 {v22.2d}, [x0], x12
sub x2, x2, #4
tbz x2, #63, .Ltop
add x1, x1, #16
.Lend: st1 {v26.2d}, [x0]
.Lbc: tbz x2, #1, .Ltl1
sub x1, x1, #16
ld1 {v22.2d}, [x1]
sub x0, x0, #16
st1 {v22.2d}, [x0]
.Ltl1: tbz x2, #0, .Ltl2
sub x1, x1, #8
ld1 {v22.1d}, [x1]
sub x0, x0, #8
st1 {v22.1d}, [x0]
.Ltl2: ret
.size __gmpn_copyd,.-__gmpn_copyd
|