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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
.text
.align 3
.globl ___gmpn_cnd_add_n
___gmpn_cnd_add_n:
cmp x0, #1
sbc x0, x0, x0
cmn xzr, xzr
lsr x17, x4, #2
tbz x4, #0, Lbx0
Lbx1: ldr x13, [x3]
ldr x11, [x2]
bic x7, x13, x0
adcs x9, x11, x7
str x9, [x1]
tbnz x4, #1, Lb11
Lb01: cbz x17, Lrt
ldp x12, x13, [x3,#8]
ldp x10, x11, [x2,#8]
sub x2, x2, #8
sub x3, x3, #8
sub x1, x1, #24
b Lmid
Lb11: ldp x12, x13, [x3,#8]!
ldp x10, x11, [x2,#8]!
sub x1, x1, #8
cbz x17, Lend
b Ltop
Lbx0: ldp x12, x13, [x3]
ldp x10, x11, [x2]
tbnz x4, #1, Lb10
Lb00: sub x2, x2, #16
sub x3, x3, #16
sub x1, x1, #32
b Lmid
Lb10: sub x1, x1, #16
cbz x17, Lend
.align 4
Ltop: bic x6, x12, x0
bic x7, x13, x0
ldp x12, x13, [x3,#16]
adcs x8, x10, x6
adcs x9, x11, x7
ldp x10, x11, [x2,#16]
stp x8, x9, [x1,#16]
Lmid: bic x6, x12, x0
bic x7, x13, x0
ldp x12, x13, [x3,#32]!
adcs x8, x10, x6
adcs x9, x11, x7
ldp x10, x11, [x2,#32]!
stp x8, x9, [x1,#32]!
sub x17, x17, #1
cbnz x17, Ltop
Lend: bic x6, x12, x0
bic x7, x13, x0
adcs x8, x10, x6
adcs x9, x11, x7
stp x8, x9, [x1,#16]
Lrt: cset x0, cs
ret
|