1#include <machine/asm.h>
2.text
3.globl    gcm_gmult_4bit_x86
4.type     gcm_gmult_4bit_x86,@function
5.align    16
6gcm_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
105gcm_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
219gcm_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
323gcm_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
932gcm_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
1006gcm_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
1064gcm_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
13070:
1308          .asciz "GNU"
13091:
1310          .p2align 2
1311          .long 0xc0000002
1312          .long 3f - 2f
13132:
1314          .long 3
13153:
1316          .p2align 2
13174:
1318