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
|
.private_extern __gmpn_invert_limb_table
.text
.align 4, 0x90
.globl ___gmpn_invert_limb
___gmpn_invert_limb:
mov %rdi, %rax
shr $55, %rax
lea __gmpn_invert_limb_table(%rip), %r8
add $-512, %r8
movzwl (%r8,%rax,2), %ecx
mov %rdi, %rsi
mov %ecx, %eax
imul %ecx, %ecx
shr $24, %rsi
inc %rsi
imul %rsi, %rcx
shr $40, %rcx
sal $11, %eax
dec %eax
sub %ecx, %eax
mov $0x1000000000000000, %rcx
imul %rax, %rsi
sub %rsi, %rcx
imul %rax, %rcx
sal $13, %rax
shr $47, %rcx
add %rax, %rcx
mov %rdi, %rsi
shr %rsi
sbb %rax, %rax
sub %rax, %rsi
imul %rcx, %rsi
and %rcx, %rax
shr %rax
sub %rsi, %rax
mul %rcx
sal $31, %rcx
shr %rdx
add %rdx, %rcx
mov %rdi, %rax
mul %rcx
add %rdi, %rax
mov %rcx, %rax
adc %rdi, %rdx
sub %rdx, %rax
ret
|