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
|
.text
.align 3
.globl __gmpn_gcd_22
.type __gmpn_gcd_22,@function
__gmpn_gcd_22:
.align 4
.Ltop: subs x5, x1, x3
cbz x5, .Llowz
sbcs x6, x0, x2
rbit x7, x5
cneg x5, x5, cc
cinv x6, x6, cc
.Lbck: csel x3, x3, x1, cs
csel x2, x2, x0, cs
clz x7, x7
sub x8, xzr, x7
lsr x1, x5, x7
lsl x14, x6, x8
lsr x0, x6, x7
orr x1, x1, x14
orr x11, x0, x2
cbnz x11, .Ltop
subs x4, x1, x3
b.eq .Lend1
.align 4
.Ltop1:rbit x12, x4
clz x12, x12
csneg x4, x4, x4, cs
csel x1, x3, x1, cs
lsr x3, x4, x12
subs x4, x1, x3
b.ne .Ltop1
.Lend1:mov x0, x1
mov x1, #0
ret
.Llowz:
subs x5, x0, x2
b.eq .Lend
mov x6, #0
rbit x7, x5
cneg x5, x5, cc
b .Lbck
.Lend: mov x0, x3
mov x1, x2
ret
.size __gmpn_gcd_22,.-__gmpn_gcd_22
|