ghash-x86.S revision 1.8 1 #include <machine/asm.h>
2 .text
3 .globl gcm_gmult_4bit_x86
4 .type gcm_gmult_4bit_x86,@function
5 .align 16
6 gcm_gmult_4bit_x86:
7 .L_gcm_gmult_4bit_x86_begin:
8 #ifdef __CET__
9
10 .byte 243,15,30,251
11 #endif
12
13 pushl %ebp
14 pushl %ebx
15 pushl %esi
16 pushl %edi
17 subl $84,%esp
18 movl 104(%esp),%edi
19 movl 108(%esp),%esi
20 movl (%edi),%ebp
21 movl 4(%edi),%edx
22 movl 8(%edi),%ecx
23 movl 12(%edi),%ebx
24 movl $0,16(%esp)
25 movl $471859200,20(%esp)
26 movl $943718400,24(%esp)
27 movl $610271232,28(%esp)
28 movl $1887436800,32(%esp)
29 movl $1822425088,36(%esp)
30 movl $1220542464,40(%esp)
31 movl $1423966208,44(%esp)
32 movl $3774873600,48(%esp)
33 movl $4246732800,52(%esp)
34 movl $3644850176,56(%esp)
35 movl $3311403008,60(%esp)
36 movl $2441084928,64(%esp)
37 movl $2376073216,68(%esp)
38 movl $2847932416,72(%esp)
39 movl $3051356160,76(%esp)
40 movl %ebp,(%esp)
41 movl %edx,4(%esp)
42 movl %ecx,8(%esp)
43 movl %ebx,12(%esp)
44 shrl $20,%ebx
45 andl $240,%ebx
46 movl 4(%esi,%ebx,1),%ebp
47 movl (%esi,%ebx,1),%edx
48 movl 12(%esi,%ebx,1),%ecx
49 movl 8(%esi,%ebx,1),%ebx
50 xorl %eax,%eax
51 movl $15,%edi
52 jmp .L000x86_loop
53 .align 16
54 .L000x86_loop:
55 movb %bl,%al
56 shrdl $4,%ecx,%ebx
57 andb $15,%al
58 shrdl $4,%edx,%ecx
59 shrdl $4,%ebp,%edx
60 shrl $4,%ebp
61 xorl 16(%esp,%eax,4),%ebp
62 movb (%esp,%edi,1),%al
63 andb $240,%al
64 xorl 8(%esi,%eax,1),%ebx
65 xorl 12(%esi,%eax,1),%ecx
66 xorl (%esi,%eax,1),%edx
67 xorl 4(%esi,%eax,1),%ebp
68 decl %edi
69 js .L001x86_break
70 movb %bl,%al
71 shrdl $4,%ecx,%ebx
72 andb $15,%al
73 shrdl $4,%edx,%ecx
74 shrdl $4,%ebp,%edx
75 shrl $4,%ebp
76 xorl 16(%esp,%eax,4),%ebp
77 movb (%esp,%edi,1),%al
78 shlb $4,%al
79 xorl 8(%esi,%eax,1),%ebx
80 xorl 12(%esi,%eax,1),%ecx
81 xorl (%esi,%eax,1),%edx
82 xorl 4(%esi,%eax,1),%ebp
83 jmp .L000x86_loop
84 .align 16
85 .L001x86_break:
86 bswap %ebx
87 bswap %ecx
88 bswap %edx
89 bswap %ebp
90 movl 104(%esp),%edi
91 movl %ebx,12(%edi)
92 movl %ecx,8(%edi)
93 movl %edx,4(%edi)
94 movl %ebp,(%edi)
95 addl $84,%esp
96 popl %edi
97 popl %esi
98 popl %ebx
99 popl %ebp
100 ret
101 .size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin
102 .globl gcm_ghash_4bit_x86
103 .type gcm_ghash_4bit_x86,@function
104 .align 16
105 gcm_ghash_4bit_x86:
106 .L_gcm_ghash_4bit_x86_begin:
107 #ifdef __CET__
108
109 .byte 243,15,30,251
110 #endif
111
112 pushl %ebp
113 pushl %ebx
114 pushl %esi
115 pushl %edi
116 subl $84,%esp
117 movl 104(%esp),%ebx
118 movl 108(%esp),%esi
119 movl 112(%esp),%edi
120 movl 116(%esp),%ecx
121 addl %edi,%ecx
122 movl %ecx,116(%esp)
123 movl (%ebx),%ebp
124 movl 4(%ebx),%edx
125 movl 8(%ebx),%ecx
126 movl 12(%ebx),%ebx
127 movl $0,16(%esp)
128 movl $471859200,20(%esp)
129 movl $943718400,24(%esp)
130 movl $610271232,28(%esp)
131 movl $1887436800,32(%esp)
132 movl $1822425088,36(%esp)
133 movl $1220542464,40(%esp)
134 movl $1423966208,44(%esp)
135 movl $3774873600,48(%esp)
136 movl $4246732800,52(%esp)
137 movl $3644850176,56(%esp)
138 movl $3311403008,60(%esp)
139 movl $2441084928,64(%esp)
140 movl $2376073216,68(%esp)
141 movl $2847932416,72(%esp)
142 movl $3051356160,76(%esp)
143 .align 16
144 .L002x86_outer_loop:
145 xorl 12(%edi),%ebx
146 xorl 8(%edi),%ecx
147 xorl 4(%edi),%edx
148 xorl (%edi),%ebp
149 movl %ebx,12(%esp)
150 movl %ecx,8(%esp)
151 movl %edx,4(%esp)
152 movl %ebp,(%esp)
153 shrl $20,%ebx
154 andl $240,%ebx
155 movl 4(%esi,%ebx,1),%ebp
156 movl (%esi,%ebx,1),%edx
157 movl 12(%esi,%ebx,1),%ecx
158 movl 8(%esi,%ebx,1),%ebx
159 xorl %eax,%eax
160 movl $15,%edi
161 jmp .L003x86_loop
162 .align 16
163 .L003x86_loop:
164 movb %bl,%al
165 shrdl $4,%ecx,%ebx
166 andb $15,%al
167 shrdl $4,%edx,%ecx
168 shrdl $4,%ebp,%edx
169 shrl $4,%ebp
170 xorl 16(%esp,%eax,4),%ebp
171 movb (%esp,%edi,1),%al
172 andb $240,%al
173 xorl 8(%esi,%eax,1),%ebx
174 xorl 12(%esi,%eax,1),%ecx
175 xorl (%esi,%eax,1),%edx
176 xorl 4(%esi,%eax,1),%ebp
177 decl %edi
178 js .L004x86_break
179 movb %bl,%al
180 shrdl $4,%ecx,%ebx
181 andb $15,%al
182 shrdl $4,%edx,%ecx
183 shrdl $4,%ebp,%edx
184 shrl $4,%ebp
185 xorl 16(%esp,%eax,4),%ebp
186 movb (%esp,%edi,1),%al
187 shlb $4,%al
188 xorl 8(%esi,%eax,1),%ebx
189 xorl 12(%esi,%eax,1),%ecx
190 xorl (%esi,%eax,1),%edx
191 xorl 4(%esi,%eax,1),%ebp
192 jmp .L003x86_loop
193 .align 16
194 .L004x86_break:
195 bswap %ebx
196 bswap %ecx
197 bswap %edx
198 bswap %ebp
199 movl 112(%esp),%edi
200 leal 16(%edi),%edi
201 cmpl 116(%esp),%edi
202 movl %edi,112(%esp)
203 jb .L002x86_outer_loop
204 movl 104(%esp),%edi
205 movl %ebx,12(%edi)
206 movl %ecx,8(%edi)
207 movl %edx,4(%edi)
208 movl %ebp,(%edi)
209 addl $84,%esp
210 popl %edi
211 popl %esi
212 popl %ebx
213 popl %ebp
214 ret
215 .size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin
216 .globl gcm_gmult_4bit_mmx
217 .type gcm_gmult_4bit_mmx,@function
218 .align 16
219 gcm_gmult_4bit_mmx:
220 .L_gcm_gmult_4bit_mmx_begin:
221 #ifdef __CET__
222
223 .byte 243,15,30,251
224 #endif
225
226 pushl %ebp
227 pushl %ebx
228 pushl %esi
229 pushl %edi
230 movl 20(%esp),%edi
231 movl 24(%esp),%esi
232 call .L005pic_point
233 .L005pic_point:
234 popl %eax
235 leal .Lrem_4bit-.L005pic_point(%eax),%eax
236 movzbl 15(%edi),%ebx
237 xorl %ecx,%ecx
238 movl %ebx,%edx
239 movb %dl,%cl
240 movl $14,%ebp
241 shlb $4,%cl
242 andl $240,%edx
243 movq 8(%esi,%ecx,1),%mm0
244 movq (%esi,%ecx,1),%mm1
245 movd %mm0,%ebx
246 jmp .L006mmx_loop
247 .align 16
248 .L006mmx_loop:
249 psrlq $4,%mm0
250 andl $15,%ebx
251 movq %mm1,%mm2
252 psrlq $4,%mm1
253 pxor 8(%esi,%edx,1),%mm0
254 movb (%edi,%ebp,1),%cl
255 psllq $60,%mm2
256 pxor (%eax,%ebx,8),%mm1
257 decl %ebp
258 movd %mm0,%ebx
259 pxor (%esi,%edx,1),%mm1
260 movl %ecx,%edx
261 pxor %mm2,%mm0
262 js .L007mmx_break
263 shlb $4,%cl
264 andl $15,%ebx
265 psrlq $4,%mm0
266 andl $240,%edx
267 movq %mm1,%mm2
268 psrlq $4,%mm1
269 pxor 8(%esi,%ecx,1),%mm0
270 psllq $60,%mm2
271 pxor (%eax,%ebx,8),%mm1
272 movd %mm0,%ebx
273 pxor (%esi,%ecx,1),%mm1
274 pxor %mm2,%mm0
275 jmp .L006mmx_loop
276 .align 16
277 .L007mmx_break:
278 shlb $4,%cl
279 andl $15,%ebx
280 psrlq $4,%mm0
281 andl $240,%edx
282 movq %mm1,%mm2
283 psrlq $4,%mm1
284 pxor 8(%esi,%ecx,1),%mm0
285 psllq $60,%mm2
286 pxor (%eax,%ebx,8),%mm1
287 movd %mm0,%ebx
288 pxor (%esi,%ecx,1),%mm1
289 pxor %mm2,%mm0
290 psrlq $4,%mm0
291 andl $15,%ebx
292 movq %mm1,%mm2
293 psrlq $4,%mm1
294 pxor 8(%esi,%edx,1),%mm0
295 psllq $60,%mm2
296 pxor (%eax,%ebx,8),%mm1
297 movd %mm0,%ebx
298 pxor (%esi,%edx,1),%mm1
299 pxor %mm2,%mm0
300 psrlq $32,%mm0
301 movd %mm1,%edx
302 psrlq $32,%mm1
303 movd %mm0,%ecx
304 movd %mm1,%ebp
305 bswap %ebx
306 bswap %edx
307 bswap %ecx
308 bswap %ebp
309 emms
310 movl %ebx,12(%edi)
311 movl %edx,4(%edi)
312 movl %ecx,8(%edi)
313 movl %ebp,(%edi)
314 popl %edi
315 popl %esi
316 popl %ebx
317 popl %ebp
318 ret
319 .size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin
320 .globl gcm_ghash_4bit_mmx
321 .type gcm_ghash_4bit_mmx,@function
322 .align 16
323 gcm_ghash_4bit_mmx:
324 .L_gcm_ghash_4bit_mmx_begin:
325 #ifdef __CET__
326
327 .byte 243,15,30,251
328 #endif
329
330 pushl %ebp
331 pushl %ebx
332 pushl %esi
333 pushl %edi
334 movl 20(%esp),%eax
335 movl 24(%esp),%ebx
336 movl 28(%esp),%ecx
337 movl 32(%esp),%edx
338 movl %esp,%ebp
339 call .L008pic_point
340 .L008pic_point:
341 popl %esi
342 leal .Lrem_8bit-.L008pic_point(%esi),%esi
343 subl $544,%esp
344 andl $-64,%esp
345 subl $16,%esp
346 addl %ecx,%edx
347 movl %eax,544(%esp)
348 movl %edx,552(%esp)
349 movl %ebp,556(%esp)
350 addl $128,%ebx
351 leal 144(%esp),%edi
352 leal 400(%esp),%ebp
353 movl -120(%ebx),%edx
354 movq -120(%ebx),%mm0
355 movq -128(%ebx),%mm3
356 shll $4,%edx
357 movb %dl,(%esp)
358 movl -104(%ebx),%edx
359 movq -104(%ebx),%mm2
360 movq -112(%ebx),%mm5
361 movq %mm0,-128(%edi)
362 psrlq $4,%mm0
363 movq %mm3,(%edi)
364 movq %mm3,%mm7
365 psrlq $4,%mm3
366 shll $4,%edx
367 movb %dl,1(%esp)
368 movl -88(%ebx),%edx
369 movq -88(%ebx),%mm1
370 psllq $60,%mm7
371 movq -96(%ebx),%mm4
372 por %mm7,%mm0
373 movq %mm2,-120(%edi)
374 psrlq $4,%mm2
375 movq %mm5,8(%edi)
376 movq %mm5,%mm6
377 movq %mm0,-128(%ebp)
378 psrlq $4,%mm5
379 movq %mm3,(%ebp)
380 shll $4,%edx
381 movb %dl,2(%esp)
382 movl -72(%ebx),%edx
383 movq -72(%ebx),%mm0
384 psllq $60,%mm6
385 movq -80(%ebx),%mm3
386 por %mm6,%mm2
387 movq %mm1,-112(%edi)
388 psrlq $4,%mm1
389 movq %mm4,16(%edi)
390 movq %mm4,%mm7
391 movq %mm2,-120(%ebp)
392 psrlq $4,%mm4
393 movq %mm5,8(%ebp)
394 shll $4,%edx
395 movb %dl,3(%esp)
396 movl -56(%ebx),%edx
397 movq -56(%ebx),%mm2
398 psllq $60,%mm7
399 movq -64(%ebx),%mm5
400 por %mm7,%mm1
401 movq %mm0,-104(%edi)
402 psrlq $4,%mm0
403 movq %mm3,24(%edi)
404 movq %mm3,%mm6
405 movq %mm1,-112(%ebp)
406 psrlq $4,%mm3
407 movq %mm4,16(%ebp)
408 shll $4,%edx
409 movb %dl,4(%esp)
410 movl -40(%ebx),%edx
411 movq -40(%ebx),%mm1
412 psllq $60,%mm6
413 movq -48(%ebx),%mm4
414 por %mm6,%mm0
415 movq %mm2,-96(%edi)
416 psrlq $4,%mm2
417 movq %mm5,32(%edi)
418 movq %mm5,%mm7
419 movq %mm0,-104(%ebp)
420 psrlq $4,%mm5
421 movq %mm3,24(%ebp)
422 shll $4,%edx
423 movb %dl,5(%esp)
424 movl -24(%ebx),%edx
425 movq -24(%ebx),%mm0
426 psllq $60,%mm7
427 movq -32(%ebx),%mm3
428 por %mm7,%mm2
429 movq %mm1,-88(%edi)
430 psrlq $4,%mm1
431 movq %mm4,40(%edi)
432 movq %mm4,%mm6
433 movq %mm2,-96(%ebp)
434 psrlq $4,%mm4
435 movq %mm5,32(%ebp)
436 shll $4,%edx
437 movb %dl,6(%esp)
438 movl -8(%ebx),%edx
439 movq -8(%ebx),%mm2
440 psllq $60,%mm6
441 movq -16(%ebx),%mm5
442 por %mm6,%mm1
443 movq %mm0,-80(%edi)
444 psrlq $4,%mm0
445 movq %mm3,48(%edi)
446 movq %mm3,%mm7
447 movq %mm1,-88(%ebp)
448 psrlq $4,%mm3
449 movq %mm4,40(%ebp)
450 shll $4,%edx
451 movb %dl,7(%esp)
452 movl 8(%ebx),%edx
453 movq 8(%ebx),%mm1
454 psllq $60,%mm7
455 movq (%ebx),%mm4
456 por %mm7,%mm0
457 movq %mm2,-72(%edi)
458 psrlq $4,%mm2
459 movq %mm5,56(%edi)
460 movq %mm5,%mm6
461 movq %mm0,-80(%ebp)
462 psrlq $4,%mm5
463 movq %mm3,48(%ebp)
464 shll $4,%edx
465 movb %dl,8(%esp)
466 movl 24(%ebx),%edx
467 movq 24(%ebx),%mm0
468 psllq $60,%mm6
469 movq 16(%ebx),%mm3
470 por %mm6,%mm2
471 movq %mm1,-64(%edi)
472 psrlq $4,%mm1
473 movq %mm4,64(%edi)
474 movq %mm4,%mm7
475 movq %mm2,-72(%ebp)
476 psrlq $4,%mm4
477 movq %mm5,56(%ebp)
478 shll $4,%edx
479 movb %dl,9(%esp)
480 movl 40(%ebx),%edx
481 movq 40(%ebx),%mm2
482 psllq $60,%mm7
483 movq 32(%ebx),%mm5
484 por %mm7,%mm1
485 movq %mm0,-56(%edi)
486 psrlq $4,%mm0
487 movq %mm3,72(%edi)
488 movq %mm3,%mm6
489 movq %mm1,-64(%ebp)
490 psrlq $4,%mm3
491 movq %mm4,64(%ebp)
492 shll $4,%edx
493 movb %dl,10(%esp)
494 movl 56(%ebx),%edx
495 movq 56(%ebx),%mm1
496 psllq $60,%mm6
497 movq 48(%ebx),%mm4
498 por %mm6,%mm0
499 movq %mm2,-48(%edi)
500 psrlq $4,%mm2
501 movq %mm5,80(%edi)
502 movq %mm5,%mm7
503 movq %mm0,-56(%ebp)
504 psrlq $4,%mm5
505 movq %mm3,72(%ebp)
506 shll $4,%edx
507 movb %dl,11(%esp)
508 movl 72(%ebx),%edx
509 movq 72(%ebx),%mm0
510 psllq $60,%mm7
511 movq 64(%ebx),%mm3
512 por %mm7,%mm2
513 movq %mm1,-40(%edi)
514 psrlq $4,%mm1
515 movq %mm4,88(%edi)
516 movq %mm4,%mm6
517 movq %mm2,-48(%ebp)
518 psrlq $4,%mm4
519 movq %mm5,80(%ebp)
520 shll $4,%edx
521 movb %dl,12(%esp)
522 movl 88(%ebx),%edx
523 movq 88(%ebx),%mm2
524 psllq $60,%mm6
525 movq 80(%ebx),%mm5
526 por %mm6,%mm1
527 movq %mm0,-32(%edi)
528 psrlq $4,%mm0
529 movq %mm3,96(%edi)
530 movq %mm3,%mm7
531 movq %mm1,-40(%ebp)
532 psrlq $4,%mm3
533 movq %mm4,88(%ebp)
534 shll $4,%edx
535 movb %dl,13(%esp)
536 movl 104(%ebx),%edx
537 movq 104(%ebx),%mm1
538 psllq $60,%mm7
539 movq 96(%ebx),%mm4
540 por %mm7,%mm0
541 movq %mm2,-24(%edi)
542 psrlq $4,%mm2
543 movq %mm5,104(%edi)
544 movq %mm5,%mm6
545 movq %mm0,-32(%ebp)
546 psrlq $4,%mm5
547 movq %mm3,96(%ebp)
548 shll $4,%edx
549 movb %dl,14(%esp)
550 movl 120(%ebx),%edx
551 movq 120(%ebx),%mm0
552 psllq $60,%mm6
553 movq 112(%ebx),%mm3
554 por %mm6,%mm2
555 movq %mm1,-16(%edi)
556 psrlq $4,%mm1
557 movq %mm4,112(%edi)
558 movq %mm4,%mm7
559 movq %mm2,-24(%ebp)
560 psrlq $4,%mm4
561 movq %mm5,104(%ebp)
562 shll $4,%edx
563 movb %dl,15(%esp)
564 psllq $60,%mm7
565 por %mm7,%mm1
566 movq %mm0,-8(%edi)
567 psrlq $4,%mm0
568 movq %mm3,120(%edi)
569 movq %mm3,%mm6
570 movq %mm1,-16(%ebp)
571 psrlq $4,%mm3
572 movq %mm4,112(%ebp)
573 psllq $60,%mm6
574 por %mm6,%mm0
575 movq %mm0,-8(%ebp)
576 movq %mm3,120(%ebp)
577 movq (%eax),%mm6
578 movl 8(%eax),%ebx
579 movl 12(%eax),%edx
580 .align 16
581 .L009outer:
582 xorl 12(%ecx),%edx
583 xorl 8(%ecx),%ebx
584 pxor (%ecx),%mm6
585 leal 16(%ecx),%ecx
586 movl %ebx,536(%esp)
587 movq %mm6,528(%esp)
588 movl %ecx,548(%esp)
589 xorl %eax,%eax
590 roll $8,%edx
591 movb %dl,%al
592 movl %eax,%ebp
593 andb $15,%al
594 shrl $4,%ebp
595 pxor %mm0,%mm0
596 roll $8,%edx
597 pxor %mm1,%mm1
598 pxor %mm2,%mm2
599 movq 16(%esp,%eax,8),%mm7
600 movq 144(%esp,%eax,8),%mm6
601 movb %dl,%al
602 movd %mm7,%ebx
603 psrlq $8,%mm7
604 movq %mm6,%mm3
605 movl %eax,%edi
606 psrlq $8,%mm6
607 pxor 272(%esp,%ebp,8),%mm7
608 andb $15,%al
609 psllq $56,%mm3
610 shrl $4,%edi
611 pxor 16(%esp,%eax,8),%mm7
612 roll $8,%edx
613 pxor 144(%esp,%eax,8),%mm6
614 pxor %mm3,%mm7
615 pxor 400(%esp,%ebp,8),%mm6
616 xorb (%esp,%ebp,1),%bl
617 movb %dl,%al
618 movd %mm7,%ecx
619 movzbl %bl,%ebx
620 psrlq $8,%mm7
621 movq %mm6,%mm3
622 movl %eax,%ebp
623 psrlq $8,%mm6
624 pxor 272(%esp,%edi,8),%mm7
625 andb $15,%al
626 psllq $56,%mm3
627 shrl $4,%ebp
628 pinsrw $2,(%esi,%ebx,2),%mm2
629 pxor 16(%esp,%eax,8),%mm7
630 roll $8,%edx
631 pxor 144(%esp,%eax,8),%mm6
632 pxor %mm3,%mm7
633 pxor 400(%esp,%edi,8),%mm6
634 xorb (%esp,%edi,1),%cl
635 movb %dl,%al
636 movl 536(%esp),%edx
637 movd %mm7,%ebx
638 movzbl %cl,%ecx
639 psrlq $8,%mm7
640 movq %mm6,%mm3
641 movl %eax,%edi
642 psrlq $8,%mm6
643 pxor 272(%esp,%ebp,8),%mm7
644 andb $15,%al
645 psllq $56,%mm3
646 pxor %mm2,%mm6
647 shrl $4,%edi
648 pinsrw $2,(%esi,%ecx,2),%mm1
649 pxor 16(%esp,%eax,8),%mm7
650 roll $8,%edx
651 pxor 144(%esp,%eax,8),%mm6
652 pxor %mm3,%mm7
653 pxor 400(%esp,%ebp,8),%mm6
654 xorb (%esp,%ebp,1),%bl
655 movb %dl,%al
656 movd %mm7,%ecx
657 movzbl %bl,%ebx
658 psrlq $8,%mm7
659 movq %mm6,%mm3
660 movl %eax,%ebp
661 psrlq $8,%mm6
662 pxor 272(%esp,%edi,8),%mm7
663 andb $15,%al
664 psllq $56,%mm3
665 pxor %mm1,%mm6
666 shrl $4,%ebp
667 pinsrw $2,(%esi,%ebx,2),%mm0
668 pxor 16(%esp,%eax,8),%mm7
669 roll $8,%edx
670 pxor 144(%esp,%eax,8),%mm6
671 pxor %mm3,%mm7
672 pxor 400(%esp,%edi,8),%mm6
673 xorb (%esp,%edi,1),%cl
674 movb %dl,%al
675 movd %mm7,%ebx
676 movzbl %cl,%ecx
677 psrlq $8,%mm7
678 movq %mm6,%mm3
679 movl %eax,%edi
680 psrlq $8,%mm6
681 pxor 272(%esp,%ebp,8),%mm7
682 andb $15,%al
683 psllq $56,%mm3
684 pxor %mm0,%mm6
685 shrl $4,%edi
686 pinsrw $2,(%esi,%ecx,2),%mm2
687 pxor 16(%esp,%eax,8),%mm7
688 roll $8,%edx
689 pxor 144(%esp,%eax,8),%mm6
690 pxor %mm3,%mm7
691 pxor 400(%esp,%ebp,8),%mm6
692 xorb (%esp,%ebp,1),%bl
693 movb %dl,%al
694 movd %mm7,%ecx
695 movzbl %bl,%ebx
696 psrlq $8,%mm7
697 movq %mm6,%mm3
698 movl %eax,%ebp
699 psrlq $8,%mm6
700 pxor 272(%esp,%edi,8),%mm7
701 andb $15,%al
702 psllq $56,%mm3
703 pxor %mm2,%mm6
704 shrl $4,%ebp
705 pinsrw $2,(%esi,%ebx,2),%mm1
706 pxor 16(%esp,%eax,8),%mm7
707 roll $8,%edx
708 pxor 144(%esp,%eax,8),%mm6
709 pxor %mm3,%mm7
710 pxor 400(%esp,%edi,8),%mm6
711 xorb (%esp,%edi,1),%cl
712 movb %dl,%al
713 movl 532(%esp),%edx
714 movd %mm7,%ebx
715 movzbl %cl,%ecx
716 psrlq $8,%mm7
717 movq %mm6,%mm3
718 movl %eax,%edi
719 psrlq $8,%mm6
720 pxor 272(%esp,%ebp,8),%mm7
721 andb $15,%al
722 psllq $56,%mm3
723 pxor %mm1,%mm6
724 shrl $4,%edi
725 pinsrw $2,(%esi,%ecx,2),%mm0
726 pxor 16(%esp,%eax,8),%mm7
727 roll $8,%edx
728 pxor 144(%esp,%eax,8),%mm6
729 pxor %mm3,%mm7
730 pxor 400(%esp,%ebp,8),%mm6
731 xorb (%esp,%ebp,1),%bl
732 movb %dl,%al
733 movd %mm7,%ecx
734 movzbl %bl,%ebx
735 psrlq $8,%mm7
736 movq %mm6,%mm3
737 movl %eax,%ebp
738 psrlq $8,%mm6
739 pxor 272(%esp,%edi,8),%mm7
740 andb $15,%al
741 psllq $56,%mm3
742 pxor %mm0,%mm6
743 shrl $4,%ebp
744 pinsrw $2,(%esi,%ebx,2),%mm2
745 pxor 16(%esp,%eax,8),%mm7
746 roll $8,%edx
747 pxor 144(%esp,%eax,8),%mm6
748 pxor %mm3,%mm7
749 pxor 400(%esp,%edi,8),%mm6
750 xorb (%esp,%edi,1),%cl
751 movb %dl,%al
752 movd %mm7,%ebx
753 movzbl %cl,%ecx
754 psrlq $8,%mm7
755 movq %mm6,%mm3
756 movl %eax,%edi
757 psrlq $8,%mm6
758 pxor 272(%esp,%ebp,8),%mm7
759 andb $15,%al
760 psllq $56,%mm3
761 pxor %mm2,%mm6
762 shrl $4,%edi
763 pinsrw $2,(%esi,%ecx,2),%mm1
764 pxor 16(%esp,%eax,8),%mm7
765 roll $8,%edx
766 pxor 144(%esp,%eax,8),%mm6
767 pxor %mm3,%mm7
768 pxor 400(%esp,%ebp,8),%mm6
769 xorb (%esp,%ebp,1),%bl
770 movb %dl,%al
771 movd %mm7,%ecx
772 movzbl %bl,%ebx
773 psrlq $8,%mm7
774 movq %mm6,%mm3
775 movl %eax,%ebp
776 psrlq $8,%mm6
777 pxor 272(%esp,%edi,8),%mm7
778 andb $15,%al
779 psllq $56,%mm3
780 pxor %mm1,%mm6
781 shrl $4,%ebp
782 pinsrw $2,(%esi,%ebx,2),%mm0
783 pxor 16(%esp,%eax,8),%mm7
784 roll $8,%edx
785 pxor 144(%esp,%eax,8),%mm6
786 pxor %mm3,%mm7
787 pxor 400(%esp,%edi,8),%mm6
788 xorb (%esp,%edi,1),%cl
789 movb %dl,%al
790 movl 528(%esp),%edx
791 movd %mm7,%ebx
792 movzbl %cl,%ecx
793 psrlq $8,%mm7
794 movq %mm6,%mm3
795 movl %eax,%edi
796 psrlq $8,%mm6
797 pxor 272(%esp,%ebp,8),%mm7
798 andb $15,%al
799 psllq $56,%mm3
800 pxor %mm0,%mm6
801 shrl $4,%edi
802 pinsrw $2,(%esi,%ecx,2),%mm2
803 pxor 16(%esp,%eax,8),%mm7
804 roll $8,%edx
805 pxor 144(%esp,%eax,8),%mm6
806 pxor %mm3,%mm7
807 pxor 400(%esp,%ebp,8),%mm6
808 xorb (%esp,%ebp,1),%bl
809 movb %dl,%al
810 movd %mm7,%ecx
811 movzbl %bl,%ebx
812 psrlq $8,%mm7
813 movq %mm6,%mm3
814 movl %eax,%ebp
815 psrlq $8,%mm6
816 pxor 272(%esp,%edi,8),%mm7
817 andb $15,%al
818 psllq $56,%mm3
819 pxor %mm2,%mm6
820 shrl $4,%ebp
821 pinsrw $2,(%esi,%ebx,2),%mm1
822 pxor 16(%esp,%eax,8),%mm7
823 roll $8,%edx
824 pxor 144(%esp,%eax,8),%mm6
825 pxor %mm3,%mm7
826 pxor 400(%esp,%edi,8),%mm6
827 xorb (%esp,%edi,1),%cl
828 movb %dl,%al
829 movd %mm7,%ebx
830 movzbl %cl,%ecx
831 psrlq $8,%mm7
832 movq %mm6,%mm3
833 movl %eax,%edi
834 psrlq $8,%mm6
835 pxor 272(%esp,%ebp,8),%mm7
836 andb $15,%al
837 psllq $56,%mm3
838 pxor %mm1,%mm6
839 shrl $4,%edi
840 pinsrw $2,(%esi,%ecx,2),%mm0
841 pxor 16(%esp,%eax,8),%mm7
842 roll $8,%edx
843 pxor 144(%esp,%eax,8),%mm6
844 pxor %mm3,%mm7
845 pxor 400(%esp,%ebp,8),%mm6
846 xorb (%esp,%ebp,1),%bl
847 movb %dl,%al
848 movd %mm7,%ecx
849 movzbl %bl,%ebx
850 psrlq $8,%mm7
851 movq %mm6,%mm3
852 movl %eax,%ebp
853 psrlq $8,%mm6
854 pxor 272(%esp,%edi,8),%mm7
855 andb $15,%al
856 psllq $56,%mm3
857 pxor %mm0,%mm6
858 shrl $4,%ebp
859 pinsrw $2,(%esi,%ebx,2),%mm2
860 pxor 16(%esp,%eax,8),%mm7
861 roll $8,%edx
862 pxor 144(%esp,%eax,8),%mm6
863 pxor %mm3,%mm7
864 pxor 400(%esp,%edi,8),%mm6
865 xorb (%esp,%edi,1),%cl
866 movb %dl,%al
867 movl 524(%esp),%edx
868 movd %mm7,%ebx
869 movzbl %cl,%ecx
870 psrlq $8,%mm7
871 movq %mm6,%mm3
872 movl %eax,%edi
873 psrlq $8,%mm6
874 pxor 272(%esp,%ebp,8),%mm7
875 andb $15,%al
876 psllq $56,%mm3
877 pxor %mm2,%mm6
878 shrl $4,%edi
879 pinsrw $2,(%esi,%ecx,2),%mm1
880 pxor 16(%esp,%eax,8),%mm7
881 pxor 144(%esp,%eax,8),%mm6
882 xorb (%esp,%ebp,1),%bl
883 pxor %mm3,%mm7
884 pxor 400(%esp,%ebp,8),%mm6
885 movzbl %bl,%ebx
886 pxor %mm2,%mm2
887 psllq $4,%mm1
888 movd %mm7,%ecx
889 psrlq $4,%mm7
890 movq %mm6,%mm3
891 psrlq $4,%mm6
892 shll $4,%ecx
893 pxor 16(%esp,%edi,8),%mm7
894 psllq $60,%mm3
895 movzbl %cl,%ecx
896 pxor %mm3,%mm7
897 pxor 144(%esp,%edi,8),%mm6
898 pinsrw $2,(%esi,%ebx,2),%mm0
899 pxor %mm1,%mm6
900 movd %mm7,%edx
901 pinsrw $3,(%esi,%ecx,2),%mm2
902 psllq $12,%mm0
903 pxor %mm0,%mm6
904 psrlq $32,%mm7
905 pxor %mm2,%mm6
906 movl 548(%esp),%ecx
907 movd %mm7,%ebx
908 movq %mm6,%mm3
909 psllw $8,%mm6
910 psrlw $8,%mm3
911 por %mm3,%mm6
912 bswap %edx
913 pshufw $27,%mm6,%mm6
914 bswap %ebx
915 cmpl 552(%esp),%ecx
916 jne .L009outer
917 movl 544(%esp),%eax
918 movl %edx,12(%eax)
919 movl %ebx,8(%eax)
920 movq %mm6,(%eax)
921 movl 556(%esp),%esp
922 emms
923 popl %edi
924 popl %esi
925 popl %ebx
926 popl %ebp
927 ret
928 .size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin
929 .globl gcm_init_clmul
930 .type gcm_init_clmul,@function
931 .align 16
932 gcm_init_clmul:
933 .L_gcm_init_clmul_begin:
934 #ifdef __CET__
935
936 .byte 243,15,30,251
937 #endif
938
939 movl 4(%esp),%edx
940 movl 8(%esp),%eax
941 call .L010pic
942 .L010pic:
943 popl %ecx
944 leal .Lbswap-.L010pic(%ecx),%ecx
945 movdqu (%eax),%xmm2
946 pshufd $78,%xmm2,%xmm2
947 pshufd $255,%xmm2,%xmm4
948 movdqa %xmm2,%xmm3
949 psllq $1,%xmm2
950 pxor %xmm5,%xmm5
951 psrlq $63,%xmm3
952 pcmpgtd %xmm4,%xmm5
953 pslldq $8,%xmm3
954 por %xmm3,%xmm2
955 pand 16(%ecx),%xmm5
956 pxor %xmm5,%xmm2
957 movdqa %xmm2,%xmm0
958 movdqa %xmm0,%xmm1
959 pshufd $78,%xmm0,%xmm3
960 pshufd $78,%xmm2,%xmm4
961 pxor %xmm0,%xmm3
962 pxor %xmm2,%xmm4
963 .byte 102,15,58,68,194,0
964 .byte 102,15,58,68,202,17
965 .byte 102,15,58,68,220,0
966 xorps %xmm0,%xmm3
967 xorps %xmm1,%xmm3
968 movdqa %xmm3,%xmm4
969 psrldq $8,%xmm3
970 pslldq $8,%xmm4
971 pxor %xmm3,%xmm1
972 pxor %xmm4,%xmm0
973 movdqa %xmm0,%xmm4
974 movdqa %xmm0,%xmm3
975 psllq $5,%xmm0
976 pxor %xmm0,%xmm3
977 psllq $1,%xmm0
978 pxor %xmm3,%xmm0
979 psllq $57,%xmm0
980 movdqa %xmm0,%xmm3
981 pslldq $8,%xmm0
982 psrldq $8,%xmm3
983 pxor %xmm4,%xmm0
984 pxor %xmm3,%xmm1
985 movdqa %xmm0,%xmm4
986 psrlq $1,%xmm0
987 pxor %xmm4,%xmm1
988 pxor %xmm0,%xmm4
989 psrlq $5,%xmm0
990 pxor %xmm4,%xmm0
991 psrlq $1,%xmm0
992 pxor %xmm1,%xmm0
993 pshufd $78,%xmm2,%xmm3
994 pshufd $78,%xmm0,%xmm4
995 pxor %xmm2,%xmm3
996 movdqu %xmm2,(%edx)
997 pxor %xmm0,%xmm4
998 movdqu %xmm0,16(%edx)
999 .byte 102,15,58,15,227,8
1000 movdqu %xmm4,32(%edx)
1001 ret
1002 .size gcm_init_clmul,.-.L_gcm_init_clmul_begin
1003 .globl gcm_gmult_clmul
1004 .type gcm_gmult_clmul,@function
1005 .align 16
1006 gcm_gmult_clmul:
1007 .L_gcm_gmult_clmul_begin:
1008 #ifdef __CET__
1009
1010 .byte 243,15,30,251
1011 #endif
1012
1013 movl 4(%esp),%eax
1014 movl 8(%esp),%edx
1015 call .L011pic
1016 .L011pic:
1017 popl %ecx
1018 leal .Lbswap-.L011pic(%ecx),%ecx
1019 movdqu (%eax),%xmm0
1020 movdqa (%ecx),%xmm5
1021 movups (%edx),%xmm2
1022 .byte 102,15,56,0,197
1023 movups 32(%edx),%xmm4
1024 movdqa %xmm0,%xmm1
1025 pshufd $78,%xmm0,%xmm3
1026 pxor %xmm0,%xmm3
1027 .byte 102,15,58,68,194,0
1028 .byte 102,15,58,68,202,17
1029 .byte 102,15,58,68,220,0
1030 xorps %xmm0,%xmm3
1031 xorps %xmm1,%xmm3
1032 movdqa %xmm3,%xmm4
1033 psrldq $8,%xmm3
1034 pslldq $8,%xmm4
1035 pxor %xmm3,%xmm1
1036 pxor %xmm4,%xmm0
1037 movdqa %xmm0,%xmm4
1038 movdqa %xmm0,%xmm3
1039 psllq $5,%xmm0
1040 pxor %xmm0,%xmm3
1041 psllq $1,%xmm0
1042 pxor %xmm3,%xmm0
1043 psllq $57,%xmm0
1044 movdqa %xmm0,%xmm3
1045 pslldq $8,%xmm0
1046 psrldq $8,%xmm3
1047 pxor %xmm4,%xmm0
1048 pxor %xmm3,%xmm1
1049 movdqa %xmm0,%xmm4
1050 psrlq $1,%xmm0
1051 pxor %xmm4,%xmm1
1052 pxor %xmm0,%xmm4
1053 psrlq $5,%xmm0
1054 pxor %xmm4,%xmm0
1055 psrlq $1,%xmm0
1056 pxor %xmm1,%xmm0
1057 .byte 102,15,56,0,197
1058 movdqu %xmm0,(%eax)
1059 ret
1060 .size gcm_gmult_clmul,.-.L_gcm_gmult_clmul_begin
1061 .globl gcm_ghash_clmul
1062 .type gcm_ghash_clmul,@function
1063 .align 16
1064 gcm_ghash_clmul:
1065 .L_gcm_ghash_clmul_begin:
1066 #ifdef __CET__
1067
1068 .byte 243,15,30,251
1069 #endif
1070
1071 pushl %ebp
1072 pushl %ebx
1073 pushl %esi
1074 pushl %edi
1075 movl 20(%esp),%eax
1076 movl 24(%esp),%edx
1077 movl 28(%esp),%esi
1078 movl 32(%esp),%ebx
1079 call .L012pic
1080 .L012pic:
1081 popl %ecx
1082 leal .Lbswap-.L012pic(%ecx),%ecx
1083 movdqu (%eax),%xmm0
1084 movdqa (%ecx),%xmm5
1085 movdqu (%edx),%xmm2
1086 .byte 102,15,56,0,197
1087 subl $16,%ebx
1088 jz .L013odd_tail
1089 movdqu (%esi),%xmm3
1090 movdqu 16(%esi),%xmm6
1091 .byte 102,15,56,0,221
1092 .byte 102,15,56,0,245
1093 movdqu 32(%edx),%xmm5
1094 pxor %xmm3,%xmm0
1095 pshufd $78,%xmm6,%xmm3
1096 movdqa %xmm6,%xmm7
1097 pxor %xmm6,%xmm3
1098 leal 32(%esi),%esi
1099 .byte 102,15,58,68,242,0
1100 .byte 102,15,58,68,250,17
1101 .byte 102,15,58,68,221,0
1102 movups 16(%edx),%xmm2
1103 nop
1104 subl $32,%ebx
1105 jbe .L014even_tail
1106 jmp .L015mod_loop
1107 .align 32
1108 .L015mod_loop:
1109 pshufd $78,%xmm0,%xmm4
1110 movdqa %xmm0,%xmm1
1111 pxor %xmm0,%xmm4
1112 nop
1113 .byte 102,15,58,68,194,0
1114 .byte 102,15,58,68,202,17
1115 .byte 102,15,58,68,229,16
1116 movups (%edx),%xmm2
1117 xorps %xmm6,%xmm0
1118 movdqa (%ecx),%xmm5
1119 xorps %xmm7,%xmm1
1120 movdqu (%esi),%xmm7
1121 pxor %xmm0,%xmm3
1122 movdqu 16(%esi),%xmm6
1123 pxor %xmm1,%xmm3
1124 .byte 102,15,56,0,253
1125 pxor %xmm3,%xmm4
1126 movdqa %xmm4,%xmm3
1127 psrldq $8,%xmm4
1128 pslldq $8,%xmm3
1129 pxor %xmm4,%xmm1
1130 pxor %xmm3,%xmm0
1131 .byte 102,15,56,0,245
1132 pxor %xmm7,%xmm1
1133 movdqa %xmm6,%xmm7
1134 movdqa %xmm0,%xmm4
1135 movdqa %xmm0,%xmm3
1136 psllq $5,%xmm0
1137 pxor %xmm0,%xmm3
1138 psllq $1,%xmm0
1139 pxor %xmm3,%xmm0
1140 .byte 102,15,58,68,242,0
1141 movups 32(%edx),%xmm5
1142 psllq $57,%xmm0
1143 movdqa %xmm0,%xmm3
1144 pslldq $8,%xmm0
1145 psrldq $8,%xmm3
1146 pxor %xmm4,%xmm0
1147 pxor %xmm3,%xmm1
1148 pshufd $78,%xmm7,%xmm3
1149 movdqa %xmm0,%xmm4
1150 psrlq $1,%xmm0
1151 pxor %xmm7,%xmm3
1152 pxor %xmm4,%xmm1
1153 .byte 102,15,58,68,250,17
1154 movups 16(%edx),%xmm2
1155 pxor %xmm0,%xmm4
1156 psrlq $5,%xmm0
1157 pxor %xmm4,%xmm0
1158 psrlq $1,%xmm0
1159 pxor %xmm1,%xmm0
1160 .byte 102,15,58,68,221,0
1161 leal 32(%esi),%esi
1162 subl $32,%ebx
1163 ja .L015mod_loop
1164 .L014even_tail:
1165 pshufd $78,%xmm0,%xmm4
1166 movdqa %xmm0,%xmm1
1167 pxor %xmm0,%xmm4
1168 .byte 102,15,58,68,194,0
1169 .byte 102,15,58,68,202,17
1170 .byte 102,15,58,68,229,16
1171 movdqa (%ecx),%xmm5
1172 xorps %xmm6,%xmm0
1173 xorps %xmm7,%xmm1
1174 pxor %xmm0,%xmm3
1175 pxor %xmm1,%xmm3
1176 pxor %xmm3,%xmm4
1177 movdqa %xmm4,%xmm3
1178 psrldq $8,%xmm4
1179 pslldq $8,%xmm3
1180 pxor %xmm4,%xmm1
1181 pxor %xmm3,%xmm0
1182 movdqa %xmm0,%xmm4
1183 movdqa %xmm0,%xmm3
1184 psllq $5,%xmm0
1185 pxor %xmm0,%xmm3
1186 psllq $1,%xmm0
1187 pxor %xmm3,%xmm0
1188 psllq $57,%xmm0
1189 movdqa %xmm0,%xmm3
1190 pslldq $8,%xmm0
1191 psrldq $8,%xmm3
1192 pxor %xmm4,%xmm0
1193 pxor %xmm3,%xmm1
1194 movdqa %xmm0,%xmm4
1195 psrlq $1,%xmm0
1196 pxor %xmm4,%xmm1
1197 pxor %xmm0,%xmm4
1198 psrlq $5,%xmm0
1199 pxor %xmm4,%xmm0
1200 psrlq $1,%xmm0
1201 pxor %xmm1,%xmm0
1202 testl %ebx,%ebx
1203 jnz .L016done
1204 movups (%edx),%xmm2
1205 .L013odd_tail:
1206 movdqu (%esi),%xmm3
1207 .byte 102,15,56,0,221
1208 pxor %xmm3,%xmm0
1209 movdqa %xmm0,%xmm1
1210 pshufd $78,%xmm0,%xmm3
1211 pshufd $78,%xmm2,%xmm4
1212 pxor %xmm0,%xmm3
1213 pxor %xmm2,%xmm4
1214 .byte 102,15,58,68,194,0
1215 .byte 102,15,58,68,202,17
1216 .byte 102,15,58,68,220,0
1217 xorps %xmm0,%xmm3
1218 xorps %xmm1,%xmm3
1219 movdqa %xmm3,%xmm4
1220 psrldq $8,%xmm3
1221 pslldq $8,%xmm4
1222 pxor %xmm3,%xmm1
1223 pxor %xmm4,%xmm0
1224 movdqa %xmm0,%xmm4
1225 movdqa %xmm0,%xmm3
1226 psllq $5,%xmm0
1227 pxor %xmm0,%xmm3
1228 psllq $1,%xmm0
1229 pxor %xmm3,%xmm0
1230 psllq $57,%xmm0
1231 movdqa %xmm0,%xmm3
1232 pslldq $8,%xmm0
1233 psrldq $8,%xmm3
1234 pxor %xmm4,%xmm0
1235 pxor %xmm3,%xmm1
1236 movdqa %xmm0,%xmm4
1237 psrlq $1,%xmm0
1238 pxor %xmm4,%xmm1
1239 pxor %xmm0,%xmm4
1240 psrlq $5,%xmm0
1241 pxor %xmm4,%xmm0
1242 psrlq $1,%xmm0
1243 pxor %xmm1,%xmm0
1244 .L016done:
1245 .byte 102,15,56,0,197
1246 movdqu %xmm0,(%eax)
1247 popl %edi
1248 popl %esi
1249 popl %ebx
1250 popl %ebp
1251 ret
1252 .size gcm_ghash_clmul,.-.L_gcm_ghash_clmul_begin
1253 .align 64
1254 .Lbswap:
1255 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
1256 .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194
1257 .align 64
1258 .Lrem_8bit:
1259 .value 0,450,900,582,1800,1738,1164,1358
1260 .value 3600,4050,3476,3158,2328,2266,2716,2910
1261 .value 7200,7650,8100,7782,6952,6890,6316,6510
1262 .value 4656,5106,4532,4214,5432,5370,5820,6014
1263 .value 14400,14722,15300,14854,16200,16010,15564,15630
1264 .value 13904,14226,13780,13334,12632,12442,13020,13086
1265 .value 9312,9634,10212,9766,9064,8874,8428,8494
1266 .value 10864,11186,10740,10294,11640,11450,12028,12094
1267 .value 28800,28994,29444,29382,30600,30282,29708,30158
1268 .value 32400,32594,32020,31958,31128,30810,31260,31710
1269 .value 27808,28002,28452,28390,27560,27242,26668,27118
1270 .value 25264,25458,24884,24822,26040,25722,26172,26622
1271 .value 18624,18690,19268,19078,20424,19978,19532,19854
1272 .value 18128,18194,17748,17558,16856,16410,16988,17310
1273 .value 21728,21794,22372,22182,21480,21034,20588,20910
1274 .value 23280,23346,22900,22710,24056,23610,24188,24510
1275 .value 57600,57538,57988,58182,58888,59338,58764,58446
1276 .value 61200,61138,60564,60758,59416,59866,60316,59998
1277 .value 64800,64738,65188,65382,64040,64490,63916,63598
1278 .value 62256,62194,61620,61814,62520,62970,63420,63102
1279 .value 55616,55426,56004,56070,56904,57226,56780,56334
1280 .value 55120,54930,54484,54550,53336,53658,54236,53790
1281 .value 50528,50338,50916,50982,49768,50090,49644,49198
1282 .value 52080,51890,51444,51510,52344,52666,53244,52798
1283 .value 37248,36930,37380,37830,38536,38730,38156,38094
1284 .value 40848,40530,39956,40406,39064,39258,39708,39646
1285 .value 36256,35938,36388,36838,35496,35690,35116,35054
1286 .value 33712,33394,32820,33270,33976,34170,34620,34558
1287 .value 43456,43010,43588,43910,44744,44810,44364,44174
1288 .value 42960,42514,42068,42390,41176,41242,41820,41630
1289 .value 46560,46114,46692,47014,45800,45866,45420,45230
1290 .value 48112,47666,47220,47542,48376,48442,49020,48830
1291 .align 64
1292 .Lrem_4bit:
1293 .long 0,0,0,471859200,0,943718400,0,610271232
1294 .long 0,1887436800,0,1822425088,0,1220542464,0,1423966208
1295 .long 0,3774873600,0,4246732800,0,3644850176,0,3311403008
1296 .long 0,2441084928,0,2376073216,0,2847932416,0,3051356160
1297 .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
1298 .byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
1299 .byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
1300 .byte 0
1301
1302 .section ".note.gnu.property", "a"
1303 .p2align 2
1304 .long 1f - 0f
1305 .long 4f - 1f
1306 .long 5
1307 0:
1308 .asciz "GNU"
1309 1:
1310 .p2align 2
1311 .long 0xc0000002
1312 .long 3f - 2f
1313 2:
1314 .long 3
1315 3:
1316 .p2align 2
1317 4:
1318