File tree 2 files changed +26
-14
lines changed
2 files changed +26
-14
lines changed Original file line number Diff line number Diff line change @@ -64,7 +64,7 @@ see https://www.gnu.org/licenses/. */
64
64
#if defined(__x86_64 ) || defined(_M_X64 )
65
65
#define _LONG_LONG_LIMB 1
66
66
#endif
67
- #if defined(DLL_EXPORT )
67
+ #if defined(DLL_EXPORT ) && defined( NO_ASM )
68
68
#define __GMP_LIBGMP_DLL 1
69
69
#else
70
70
#define __GMP_LIBGMP_DLL 0
Original file line number Diff line number Diff line change @@ -107,6 +107,12 @@ __gmpn_sec_tabselect:
107
107
108
108
mov 56 (%rsp ), %r8d
109
109
110
+ add $-88 , %rsp
111
+ movdqu %xmm6 , (%rsp )
112
+ movdqu %xmm7 , 16 (%rsp )
113
+ movdqu %xmm8 , 32 (%rsp )
114
+ movdqu %xmm9 , 48 (%rsp )
115
+
110
116
movd %r8 , %xmm8
111
117
pshufd $0 , %xmm8 , %xmm8
112
118
mov $1 , %eax
@@ -120,15 +126,15 @@ __gmpn_sec_tabselect:
120
126
Louter_top:
121
127
mov %rcx , %r10
122
128
mov %rsi , %r11
123
- pxor %xmm13 , %xmm13
129
+ pxor %xmm1 , %xmm1
124
130
pxor %xmm4 , %xmm4
125
131
pxor %xmm5 , %xmm5
126
132
pxor %xmm6 , %xmm6
127
133
pxor %xmm7 , %xmm7
128
134
.align 16 , 0x90
129
135
Ltop: movdqa %xmm8 , %xmm0
130
- pcmpeqd %xmm13 , %xmm0
131
- paddd %xmm9 , %xmm13
136
+ pcmpeqd %xmm1 , %xmm0
137
+ paddd %xmm9 , %xmm1
132
138
movdqu 0 (%rsi ), %xmm2
133
139
movdqu 16 (%rsi ), %xmm3
134
140
pand %xmm0 , %xmm2
@@ -160,13 +166,13 @@ Louter_end:
160
166
je Lb0xx
161
167
Lb1xx: mov %rcx , %r10
162
168
mov %rsi , %r11
163
- pxor %xmm13 , %xmm13
169
+ pxor %xmm1 , %xmm1
164
170
pxor %xmm4 , %xmm4
165
171
pxor %xmm5 , %xmm5
166
172
.align 16 , 0x90
167
173
Ltp4: movdqa %xmm8 , %xmm0
168
- pcmpeqd %xmm13 , %xmm0
169
- paddd %xmm9 , %xmm13
174
+ pcmpeqd %xmm1 , %xmm0
175
+ paddd %xmm9 , %xmm1
170
176
movdqu 0 (%rsi ), %xmm2
171
177
movdqu 16 (%rsi ), %xmm3
172
178
pand %xmm0 , %xmm2
@@ -185,12 +191,12 @@ Lb0xx:test $2, %dl
185
191
je Lb00x
186
192
Lb01x: mov %rcx , %r10
187
193
mov %rsi , %r11
188
- pxor %xmm13 , %xmm13
194
+ pxor %xmm1 , %xmm1
189
195
pxor %xmm4 , %xmm4
190
196
.align 16 , 0x90
191
197
Ltp2: movdqa %xmm8 , %xmm0
192
- pcmpeqd %xmm13 , %xmm0
193
- paddd %xmm9 , %xmm13
198
+ pcmpeqd %xmm1 , %xmm0
199
+ paddd %xmm9 , %xmm1
194
200
movdqu 0 (%rsi ), %xmm2
195
201
pand %xmm0 , %xmm2
196
202
por %xmm2 , %xmm4
@@ -205,12 +211,12 @@ Lb00x:test $1, %dl
205
211
je Lb000
206
212
Lb001: mov %rcx , %r10
207
213
mov %rsi , %r11
208
- pxor %xmm13 , %xmm13
214
+ pxor %xmm1 , %xmm1
209
215
pxor %xmm4 , %xmm4
210
216
.align 16 , 0x90
211
217
Ltp1: movdqa %xmm8 , %xmm0
212
- pcmpeqd %xmm13 , %xmm0
213
- paddd %xmm9 , %xmm13
218
+ pcmpeqd %xmm1 , %xmm0
219
+ paddd %xmm9 , %xmm1
214
220
movq 0 (%rsi ), %xmm2
215
221
pand %xmm0 , %xmm2
216
222
por %xmm2 , %xmm4
@@ -219,7 +225,13 @@ Ltp1: movdqa %xmm8, %xmm0
219
225
jne Ltp1
220
226
movq %xmm4 , 0 (%rdi )
221
227
222
- Lb000: pop %rsi
228
+ Lb000:
229
+ movdqu (%rsp ), %xmm6
230
+ movdqu 16 (%rsp ), %xmm7
231
+ movdqu 32 (%rsp ), %xmm8
232
+ movdqu 48 (%rsp ), %xmm9
233
+ add $88 , %rsp
234
+ pop %rsi
223
235
pop %rdi
224
236
ret
225
237
You can’t perform that action at this time.
0 commit comments