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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
.text
.align 6, 0x90
.globl ___gmpn_gcd_22
___gmpn_gcd_22:
.align 4, 0x90
Ltop: mov %rcx, %r10
sub %rsi, %r10
jz Llowz
mov %rdx, %r11
sbb %rdi, %r11
rep;bsf %r10, %rax
mov %rsi, %r8
sub %rcx, %rsi
mov %rdi, %r9
sbb %rdx, %rdi
Lbck: cmovc %r10, %rsi
cmovc %r11, %rdi
cmovc %r8, %rcx
cmovc %r9, %rdx
xor %r10d, %r10d
sub %rax, %r10
.byte 0xc4,98,169,0xf7,207
.byte 0xc4,226,251,0xf7,246
.byte 0xc4,226,251,0xf7,255
or %r9, %rsi
test %rdx, %rdx
jnz Ltop
test %rdi, %rdi
jnz Ltop
Lgcd_11:
mov %rcx, %rdi
jmp ___gmpn_gcd_11
Llowz:
mov %rdx, %r10
sub %rdi, %r10
je Lend
xor %r11, %r11
mov %rsi, %r8
mov %rdi, %r9
rep;bsf %r10, %rax
mov %rdi, %rsi
xor %rdi, %rdi
sub %rdx, %rsi
jmp Lbck
Lend: mov %rcx, %rax
Lret:
ret
|