...

Text file src/github.com/cloudflare/circl/simd/keccakf1600/f1600x4_amd64.s

Documentation: github.com/cloudflare/circl/simd/keccakf1600

     1// Code generated by command: go run src.go -out ../../f1600x4_amd64.s -stubs ../../f1600x4stubs_amd64.go -pkg keccakf1600. DO NOT EDIT.
     2
     3//go:build amd64
     4
     5#include "textflag.h"
     6
     7// func f1600x4AVX2(state *uint64, rc *[24]uint64, turbo bool)
     8// Requires: AVX, AVX2
     9TEXT ·f1600x4AVX2(SB), NOSPLIT, $0-17
    10	MOVQ    state+0(FP), AX
    11	MOVQ    rc+8(FP), CX
    12	MOVQ    $0x0000000000000006, DX
    13	MOVBQZX turbo+16(FP), BX
    14	TESTQ   BX, BX
    15	JZ      loop
    16	MOVQ    $0x0000000000000003, DX
    17	ADDQ    $0x60, CX
    18
    19loop:
    20	VMOVDQA      (AX), Y0
    21	VMOVDQA      32(AX), Y1
    22	VMOVDQA      64(AX), Y2
    23	VMOVDQA      96(AX), Y3
    24	VMOVDQA      128(AX), Y4
    25	VPXOR        160(AX), Y0, Y0
    26	VPXOR        192(AX), Y1, Y1
    27	VPXOR        224(AX), Y2, Y2
    28	VPXOR        256(AX), Y3, Y3
    29	VPXOR        288(AX), Y4, Y4
    30	VPXOR        320(AX), Y0, Y0
    31	VPXOR        352(AX), Y1, Y1
    32	VPXOR        384(AX), Y2, Y2
    33	VPXOR        416(AX), Y3, Y3
    34	VPXOR        448(AX), Y4, Y4
    35	VPXOR        480(AX), Y0, Y0
    36	VPXOR        512(AX), Y1, Y1
    37	VPXOR        544(AX), Y2, Y2
    38	VPXOR        576(AX), Y3, Y3
    39	VPXOR        608(AX), Y4, Y4
    40	VPXOR        640(AX), Y0, Y0
    41	VPXOR        672(AX), Y1, Y1
    42	VPXOR        704(AX), Y2, Y2
    43	VPXOR        736(AX), Y3, Y3
    44	VPXOR        768(AX), Y4, Y4
    45	VPSLLQ       $0x01, Y1, Y5
    46	VPSLLQ       $0x01, Y2, Y6
    47	VPSLLQ       $0x01, Y3, Y7
    48	VPSLLQ       $0x01, Y4, Y8
    49	VPSLLQ       $0x01, Y0, Y9
    50	VPSRLQ       $0x3f, Y1, Y10
    51	VPSRLQ       $0x3f, Y2, Y11
    52	VPSRLQ       $0x3f, Y3, Y12
    53	VPSRLQ       $0x3f, Y4, Y13
    54	VPSRLQ       $0x3f, Y0, Y14
    55	VPOR         Y5, Y10, Y10
    56	VPOR         Y6, Y11, Y11
    57	VPOR         Y7, Y12, Y12
    58	VPOR         Y8, Y13, Y13
    59	VPOR         Y9, Y14, Y14
    60	VPXOR        Y10, Y4, Y10
    61	VPXOR        Y11, Y0, Y11
    62	VPXOR        Y12, Y1, Y12
    63	VPXOR        Y13, Y2, Y13
    64	VPXOR        Y14, Y3, Y14
    65	VPXOR        (AX), Y10, Y0
    66	VPXOR        192(AX), Y11, Y1
    67	VPXOR        384(AX), Y12, Y2
    68	VPXOR        576(AX), Y13, Y3
    69	VPXOR        768(AX), Y14, Y4
    70	VPSLLQ       $0x2c, Y1, Y6
    71	VPSLLQ       $0x2b, Y2, Y7
    72	VPSLLQ       $0x15, Y3, Y8
    73	VPSLLQ       $0x0e, Y4, Y9
    74	VPSRLQ       $0x14, Y1, Y1
    75	VPSRLQ       $0x15, Y2, Y2
    76	VPSRLQ       $0x2b, Y3, Y3
    77	VPSRLQ       $0x32, Y4, Y4
    78	VPOR         Y6, Y1, Y1
    79	VPOR         Y7, Y2, Y2
    80	VPOR         Y8, Y3, Y3
    81	VPOR         Y9, Y4, Y4
    82	VPANDN       Y2, Y1, Y5
    83	VPANDN       Y3, Y2, Y6
    84	VPANDN       Y4, Y3, Y7
    85	VPANDN       Y0, Y4, Y8
    86	VPANDN       Y1, Y0, Y9
    87	VPXOR        Y0, Y5, Y5
    88	VPXOR        Y1, Y6, Y6
    89	VPXOR        Y2, Y7, Y7
    90	VPXOR        Y3, Y8, Y8
    91	VPXOR        Y4, Y9, Y9
    92	VPBROADCASTQ (CX), Y0
    93	VPXOR        Y0, Y5, Y5
    94	VMOVDQA      Y5, (AX)
    95	VMOVDQA      Y6, 192(AX)
    96	VMOVDQA      Y7, 384(AX)
    97	VMOVDQA      Y8, 576(AX)
    98	VMOVDQA      Y9, 768(AX)
    99	VPXOR        96(AX), Y13, Y0
   100	VPXOR        288(AX), Y14, Y1
   101	VPXOR        320(AX), Y10, Y2
   102	VPXOR        512(AX), Y11, Y3
   103	VPXOR        704(AX), Y12, Y4
   104	VPSLLQ       $0x1c, Y0, Y5
   105	VPSLLQ       $0x14, Y1, Y6
   106	VPSLLQ       $0x03, Y2, Y7
   107	VPSLLQ       $0x2d, Y3, Y8
   108	VPSLLQ       $0x3d, Y4, Y9
   109	VPSRLQ       $0x24, Y0, Y0
   110	VPSRLQ       $0x2c, Y1, Y1
   111	VPSRLQ       $0x3d, Y2, Y2
   112	VPSRLQ       $0x13, Y3, Y3
   113	VPSRLQ       $0x03, Y4, Y4
   114	VPOR         Y5, Y0, Y0
   115	VPOR         Y6, Y1, Y1
   116	VPOR         Y7, Y2, Y2
   117	VPOR         Y8, Y3, Y3
   118	VPOR         Y9, Y4, Y4
   119	VPANDN       Y2, Y1, Y5
   120	VPANDN       Y3, Y2, Y6
   121	VPANDN       Y4, Y3, Y7
   122	VPANDN       Y0, Y4, Y8
   123	VPANDN       Y1, Y0, Y9
   124	VPXOR        Y0, Y5, Y5
   125	VPXOR        Y1, Y6, Y6
   126	VPXOR        Y2, Y7, Y7
   127	VPXOR        Y3, Y8, Y8
   128	VPXOR        Y4, Y9, Y9
   129	VMOVDQA      Y5, 320(AX)
   130	VMOVDQA      Y6, 512(AX)
   131	VMOVDQA      Y7, 704(AX)
   132	VMOVDQA      Y8, 96(AX)
   133	VMOVDQA      Y9, 288(AX)
   134	VPXOR        32(AX), Y11, Y0
   135	VPXOR        224(AX), Y12, Y1
   136	VPXOR        416(AX), Y13, Y2
   137	VPXOR        608(AX), Y14, Y3
   138	VPXOR        640(AX), Y10, Y4
   139	VPSLLQ       $0x01, Y0, Y5
   140	VPSLLQ       $0x06, Y1, Y6
   141	VPSLLQ       $0x19, Y2, Y7
   142	VPSLLQ       $0x08, Y3, Y8
   143	VPSLLQ       $0x12, Y4, Y9
   144	VPSRLQ       $0x3f, Y0, Y0
   145	VPSRLQ       $0x3a, Y1, Y1
   146	VPSRLQ       $0x27, Y2, Y2
   147	VPSRLQ       $0x38, Y3, Y3
   148	VPSRLQ       $0x2e, Y4, Y4
   149	VPOR         Y5, Y0, Y0
   150	VPOR         Y6, Y1, Y1
   151	VPOR         Y7, Y2, Y2
   152	VPOR         Y8, Y3, Y3
   153	VPOR         Y9, Y4, Y4
   154	VPANDN       Y2, Y1, Y5
   155	VPANDN       Y3, Y2, Y6
   156	VPANDN       Y4, Y3, Y7
   157	VPANDN       Y0, Y4, Y8
   158	VPANDN       Y1, Y0, Y9
   159	VPXOR        Y0, Y5, Y5
   160	VPXOR        Y1, Y6, Y6
   161	VPXOR        Y2, Y7, Y7
   162	VPXOR        Y3, Y8, Y8
   163	VPXOR        Y4, Y9, Y9
   164	VMOVDQA      Y5, 640(AX)
   165	VMOVDQA      Y6, 32(AX)
   166	VMOVDQA      Y7, 224(AX)
   167	VMOVDQA      Y8, 416(AX)
   168	VMOVDQA      Y9, 608(AX)
   169	VPXOR        128(AX), Y14, Y0
   170	VPXOR        160(AX), Y10, Y1
   171	VPXOR        352(AX), Y11, Y2
   172	VPXOR        544(AX), Y12, Y3
   173	VPXOR        736(AX), Y13, Y4
   174	VPSLLQ       $0x1b, Y0, Y5
   175	VPSLLQ       $0x24, Y1, Y6
   176	VPSLLQ       $0x0a, Y2, Y7
   177	VPSLLQ       $0x0f, Y3, Y8
   178	VPSLLQ       $0x38, Y4, Y9
   179	VPSRLQ       $0x25, Y0, Y0
   180	VPSRLQ       $0x1c, Y1, Y1
   181	VPSRLQ       $0x36, Y2, Y2
   182	VPSRLQ       $0x31, Y3, Y3
   183	VPSRLQ       $0x08, Y4, Y4
   184	VPOR         Y5, Y0, Y0
   185	VPOR         Y6, Y1, Y1
   186	VPOR         Y7, Y2, Y2
   187	VPOR         Y8, Y3, Y3
   188	VPOR         Y9, Y4, Y4
   189	VPANDN       Y2, Y1, Y5
   190	VPANDN       Y3, Y2, Y6
   191	VPANDN       Y4, Y3, Y7
   192	VPANDN       Y0, Y4, Y8
   193	VPANDN       Y1, Y0, Y9
   194	VPXOR        Y0, Y5, Y5
   195	VPXOR        Y1, Y6, Y6
   196	VPXOR        Y2, Y7, Y7
   197	VPXOR        Y3, Y8, Y8
   198	VPXOR        Y4, Y9, Y9
   199	VMOVDQA      Y5, 160(AX)
   200	VMOVDQA      Y6, 352(AX)
   201	VMOVDQA      Y7, 544(AX)
   202	VMOVDQA      Y8, 736(AX)
   203	VMOVDQA      Y9, 128(AX)
   204	VPXOR        64(AX), Y12, Y0
   205	VPXOR        256(AX), Y13, Y1
   206	VPXOR        448(AX), Y14, Y2
   207	VPXOR        480(AX), Y10, Y3
   208	VPXOR        672(AX), Y11, Y4
   209	VPSLLQ       $0x3e, Y0, Y5
   210	VPSLLQ       $0x37, Y1, Y6
   211	VPSLLQ       $0x27, Y2, Y7
   212	VPSLLQ       $0x29, Y3, Y8
   213	VPSLLQ       $0x02, Y4, Y9
   214	VPSRLQ       $0x02, Y0, Y0
   215	VPSRLQ       $0x09, Y1, Y1
   216	VPSRLQ       $0x19, Y2, Y2
   217	VPSRLQ       $0x17, Y3, Y3
   218	VPSRLQ       $0x3e, Y4, Y4
   219	VPOR         Y5, Y0, Y0
   220	VPOR         Y6, Y1, Y1
   221	VPOR         Y7, Y2, Y2
   222	VPOR         Y8, Y3, Y3
   223	VPOR         Y9, Y4, Y4
   224	VPANDN       Y2, Y1, Y5
   225	VPANDN       Y3, Y2, Y6
   226	VPANDN       Y4, Y3, Y7
   227	VPANDN       Y0, Y4, Y8
   228	VPANDN       Y1, Y0, Y9
   229	VPXOR        Y0, Y5, Y5
   230	VPXOR        Y1, Y6, Y6
   231	VPXOR        Y2, Y7, Y7
   232	VPXOR        Y3, Y8, Y8
   233	VPXOR        Y4, Y9, Y9
   234	VMOVDQA      Y5, 480(AX)
   235	VMOVDQA      Y6, 672(AX)
   236	VMOVDQA      Y7, 64(AX)
   237	VMOVDQA      Y8, 256(AX)
   238	VMOVDQA      Y9, 448(AX)
   239	VMOVDQA      (AX), Y0
   240	VMOVDQA      32(AX), Y1
   241	VMOVDQA      64(AX), Y2
   242	VMOVDQA      96(AX), Y3
   243	VMOVDQA      128(AX), Y4
   244	VPXOR        160(AX), Y0, Y0
   245	VPXOR        192(AX), Y1, Y1
   246	VPXOR        224(AX), Y2, Y2
   247	VPXOR        256(AX), Y3, Y3
   248	VPXOR        288(AX), Y4, Y4
   249	VPXOR        320(AX), Y0, Y0
   250	VPXOR        352(AX), Y1, Y1
   251	VPXOR        384(AX), Y2, Y2
   252	VPXOR        416(AX), Y3, Y3
   253	VPXOR        448(AX), Y4, Y4
   254	VPXOR        480(AX), Y0, Y0
   255	VPXOR        512(AX), Y1, Y1
   256	VPXOR        544(AX), Y2, Y2
   257	VPXOR        576(AX), Y3, Y3
   258	VPXOR        608(AX), Y4, Y4
   259	VPXOR        640(AX), Y0, Y0
   260	VPXOR        672(AX), Y1, Y1
   261	VPXOR        704(AX), Y2, Y2
   262	VPXOR        736(AX), Y3, Y3
   263	VPXOR        768(AX), Y4, Y4
   264	VPSLLQ       $0x01, Y1, Y5
   265	VPSLLQ       $0x01, Y2, Y6
   266	VPSLLQ       $0x01, Y3, Y7
   267	VPSLLQ       $0x01, Y4, Y8
   268	VPSLLQ       $0x01, Y0, Y9
   269	VPSRLQ       $0x3f, Y1, Y10
   270	VPSRLQ       $0x3f, Y2, Y11
   271	VPSRLQ       $0x3f, Y3, Y12
   272	VPSRLQ       $0x3f, Y4, Y13
   273	VPSRLQ       $0x3f, Y0, Y14
   274	VPOR         Y5, Y10, Y10
   275	VPOR         Y6, Y11, Y11
   276	VPOR         Y7, Y12, Y12
   277	VPOR         Y8, Y13, Y13
   278	VPOR         Y9, Y14, Y14
   279	VPXOR        Y10, Y4, Y10
   280	VPXOR        Y11, Y0, Y11
   281	VPXOR        Y12, Y1, Y12
   282	VPXOR        Y13, Y2, Y13
   283	VPXOR        Y14, Y3, Y14
   284	VPXOR        (AX), Y10, Y0
   285	VPXOR        512(AX), Y11, Y1
   286	VPXOR        224(AX), Y12, Y2
   287	VPXOR        736(AX), Y13, Y3
   288	VPXOR        448(AX), Y14, Y4
   289	VPSLLQ       $0x2c, Y1, Y6
   290	VPSLLQ       $0x2b, Y2, Y7
   291	VPSLLQ       $0x15, Y3, Y8
   292	VPSLLQ       $0x0e, Y4, Y9
   293	VPSRLQ       $0x14, Y1, Y1
   294	VPSRLQ       $0x15, Y2, Y2
   295	VPSRLQ       $0x2b, Y3, Y3
   296	VPSRLQ       $0x32, Y4, Y4
   297	VPOR         Y6, Y1, Y1
   298	VPOR         Y7, Y2, Y2
   299	VPOR         Y8, Y3, Y3
   300	VPOR         Y9, Y4, Y4
   301	VPANDN       Y2, Y1, Y5
   302	VPANDN       Y3, Y2, Y6
   303	VPANDN       Y4, Y3, Y7
   304	VPANDN       Y0, Y4, Y8
   305	VPANDN       Y1, Y0, Y9
   306	VPXOR        Y0, Y5, Y5
   307	VPXOR        Y1, Y6, Y6
   308	VPXOR        Y2, Y7, Y7
   309	VPXOR        Y3, Y8, Y8
   310	VPXOR        Y4, Y9, Y9
   311	VPBROADCASTQ 8(CX), Y0
   312	VPXOR        Y0, Y5, Y5
   313	VMOVDQA      Y5, (AX)
   314	VMOVDQA      Y6, 512(AX)
   315	VMOVDQA      Y7, 224(AX)
   316	VMOVDQA      Y8, 736(AX)
   317	VMOVDQA      Y9, 448(AX)
   318	VPXOR        576(AX), Y13, Y0
   319	VPXOR        288(AX), Y14, Y1
   320	VPXOR        640(AX), Y10, Y2
   321	VPXOR        352(AX), Y11, Y3
   322	VPXOR        64(AX), Y12, Y4
   323	VPSLLQ       $0x1c, Y0, Y5
   324	VPSLLQ       $0x14, Y1, Y6
   325	VPSLLQ       $0x03, Y2, Y7
   326	VPSLLQ       $0x2d, Y3, Y8
   327	VPSLLQ       $0x3d, Y4, Y9
   328	VPSRLQ       $0x24, Y0, Y0
   329	VPSRLQ       $0x2c, Y1, Y1
   330	VPSRLQ       $0x3d, Y2, Y2
   331	VPSRLQ       $0x13, Y3, Y3
   332	VPSRLQ       $0x03, Y4, Y4
   333	VPOR         Y5, Y0, Y0
   334	VPOR         Y6, Y1, Y1
   335	VPOR         Y7, Y2, Y2
   336	VPOR         Y8, Y3, Y3
   337	VPOR         Y9, Y4, Y4
   338	VPANDN       Y2, Y1, Y5
   339	VPANDN       Y3, Y2, Y6
   340	VPANDN       Y4, Y3, Y7
   341	VPANDN       Y0, Y4, Y8
   342	VPANDN       Y1, Y0, Y9
   343	VPXOR        Y0, Y5, Y5
   344	VPXOR        Y1, Y6, Y6
   345	VPXOR        Y2, Y7, Y7
   346	VPXOR        Y3, Y8, Y8
   347	VPXOR        Y4, Y9, Y9
   348	VMOVDQA      Y5, 640(AX)
   349	VMOVDQA      Y6, 352(AX)
   350	VMOVDQA      Y7, 64(AX)
   351	VMOVDQA      Y8, 576(AX)
   352	VMOVDQA      Y9, 288(AX)
   353	VPXOR        192(AX), Y11, Y0
   354	VPXOR        704(AX), Y12, Y1
   355	VPXOR        416(AX), Y13, Y2
   356	VPXOR        128(AX), Y14, Y3
   357	VPXOR        480(AX), Y10, Y4
   358	VPSLLQ       $0x01, Y0, Y5
   359	VPSLLQ       $0x06, Y1, Y6
   360	VPSLLQ       $0x19, Y2, Y7
   361	VPSLLQ       $0x08, Y3, Y8
   362	VPSLLQ       $0x12, Y4, Y9
   363	VPSRLQ       $0x3f, Y0, Y0
   364	VPSRLQ       $0x3a, Y1, Y1
   365	VPSRLQ       $0x27, Y2, Y2
   366	VPSRLQ       $0x38, Y3, Y3
   367	VPSRLQ       $0x2e, Y4, Y4
   368	VPOR         Y5, Y0, Y0
   369	VPOR         Y6, Y1, Y1
   370	VPOR         Y7, Y2, Y2
   371	VPOR         Y8, Y3, Y3
   372	VPOR         Y9, Y4, Y4
   373	VPANDN       Y2, Y1, Y5
   374	VPANDN       Y3, Y2, Y6
   375	VPANDN       Y4, Y3, Y7
   376	VPANDN       Y0, Y4, Y8
   377	VPANDN       Y1, Y0, Y9
   378	VPXOR        Y0, Y5, Y5
   379	VPXOR        Y1, Y6, Y6
   380	VPXOR        Y2, Y7, Y7
   381	VPXOR        Y3, Y8, Y8
   382	VPXOR        Y4, Y9, Y9
   383	VMOVDQA      Y5, 480(AX)
   384	VMOVDQA      Y6, 192(AX)
   385	VMOVDQA      Y7, 704(AX)
   386	VMOVDQA      Y8, 416(AX)
   387	VMOVDQA      Y9, 128(AX)
   388	VPXOR        768(AX), Y14, Y0
   389	VPXOR        320(AX), Y10, Y1
   390	VPXOR        32(AX), Y11, Y2
   391	VPXOR        544(AX), Y12, Y3
   392	VPXOR        256(AX), Y13, Y4
   393	VPSLLQ       $0x1b, Y0, Y5
   394	VPSLLQ       $0x24, Y1, Y6
   395	VPSLLQ       $0x0a, Y2, Y7
   396	VPSLLQ       $0x0f, Y3, Y8
   397	VPSLLQ       $0x38, Y4, Y9
   398	VPSRLQ       $0x25, Y0, Y0
   399	VPSRLQ       $0x1c, Y1, Y1
   400	VPSRLQ       $0x36, Y2, Y2
   401	VPSRLQ       $0x31, Y3, Y3
   402	VPSRLQ       $0x08, Y4, Y4
   403	VPOR         Y5, Y0, Y0
   404	VPOR         Y6, Y1, Y1
   405	VPOR         Y7, Y2, Y2
   406	VPOR         Y8, Y3, Y3
   407	VPOR         Y9, Y4, Y4
   408	VPANDN       Y2, Y1, Y5
   409	VPANDN       Y3, Y2, Y6
   410	VPANDN       Y4, Y3, Y7
   411	VPANDN       Y0, Y4, Y8
   412	VPANDN       Y1, Y0, Y9
   413	VPXOR        Y0, Y5, Y5
   414	VPXOR        Y1, Y6, Y6
   415	VPXOR        Y2, Y7, Y7
   416	VPXOR        Y3, Y8, Y8
   417	VPXOR        Y4, Y9, Y9
   418	VMOVDQA      Y5, 320(AX)
   419	VMOVDQA      Y6, 32(AX)
   420	VMOVDQA      Y7, 544(AX)
   421	VMOVDQA      Y8, 256(AX)
   422	VMOVDQA      Y9, 768(AX)
   423	VPXOR        384(AX), Y12, Y0
   424	VPXOR        96(AX), Y13, Y1
   425	VPXOR        608(AX), Y14, Y2
   426	VPXOR        160(AX), Y10, Y3
   427	VPXOR        672(AX), Y11, Y4
   428	VPSLLQ       $0x3e, Y0, Y5
   429	VPSLLQ       $0x37, Y1, Y6
   430	VPSLLQ       $0x27, Y2, Y7
   431	VPSLLQ       $0x29, Y3, Y8
   432	VPSLLQ       $0x02, Y4, Y9
   433	VPSRLQ       $0x02, Y0, Y0
   434	VPSRLQ       $0x09, Y1, Y1
   435	VPSRLQ       $0x19, Y2, Y2
   436	VPSRLQ       $0x17, Y3, Y3
   437	VPSRLQ       $0x3e, Y4, Y4
   438	VPOR         Y5, Y0, Y0
   439	VPOR         Y6, Y1, Y1
   440	VPOR         Y7, Y2, Y2
   441	VPOR         Y8, Y3, Y3
   442	VPOR         Y9, Y4, Y4
   443	VPANDN       Y2, Y1, Y5
   444	VPANDN       Y3, Y2, Y6
   445	VPANDN       Y4, Y3, Y7
   446	VPANDN       Y0, Y4, Y8
   447	VPANDN       Y1, Y0, Y9
   448	VPXOR        Y0, Y5, Y5
   449	VPXOR        Y1, Y6, Y6
   450	VPXOR        Y2, Y7, Y7
   451	VPXOR        Y3, Y8, Y8
   452	VPXOR        Y4, Y9, Y9
   453	VMOVDQA      Y5, 160(AX)
   454	VMOVDQA      Y6, 672(AX)
   455	VMOVDQA      Y7, 384(AX)
   456	VMOVDQA      Y8, 96(AX)
   457	VMOVDQA      Y9, 608(AX)
   458	VMOVDQA      (AX), Y0
   459	VMOVDQA      32(AX), Y1
   460	VMOVDQA      64(AX), Y2
   461	VMOVDQA      96(AX), Y3
   462	VMOVDQA      128(AX), Y4
   463	VPXOR        160(AX), Y0, Y0
   464	VPXOR        192(AX), Y1, Y1
   465	VPXOR        224(AX), Y2, Y2
   466	VPXOR        256(AX), Y3, Y3
   467	VPXOR        288(AX), Y4, Y4
   468	VPXOR        320(AX), Y0, Y0
   469	VPXOR        352(AX), Y1, Y1
   470	VPXOR        384(AX), Y2, Y2
   471	VPXOR        416(AX), Y3, Y3
   472	VPXOR        448(AX), Y4, Y4
   473	VPXOR        480(AX), Y0, Y0
   474	VPXOR        512(AX), Y1, Y1
   475	VPXOR        544(AX), Y2, Y2
   476	VPXOR        576(AX), Y3, Y3
   477	VPXOR        608(AX), Y4, Y4
   478	VPXOR        640(AX), Y0, Y0
   479	VPXOR        672(AX), Y1, Y1
   480	VPXOR        704(AX), Y2, Y2
   481	VPXOR        736(AX), Y3, Y3
   482	VPXOR        768(AX), Y4, Y4
   483	VPSLLQ       $0x01, Y1, Y5
   484	VPSLLQ       $0x01, Y2, Y6
   485	VPSLLQ       $0x01, Y3, Y7
   486	VPSLLQ       $0x01, Y4, Y8
   487	VPSLLQ       $0x01, Y0, Y9
   488	VPSRLQ       $0x3f, Y1, Y10
   489	VPSRLQ       $0x3f, Y2, Y11
   490	VPSRLQ       $0x3f, Y3, Y12
   491	VPSRLQ       $0x3f, Y4, Y13
   492	VPSRLQ       $0x3f, Y0, Y14
   493	VPOR         Y5, Y10, Y10
   494	VPOR         Y6, Y11, Y11
   495	VPOR         Y7, Y12, Y12
   496	VPOR         Y8, Y13, Y13
   497	VPOR         Y9, Y14, Y14
   498	VPXOR        Y10, Y4, Y10
   499	VPXOR        Y11, Y0, Y11
   500	VPXOR        Y12, Y1, Y12
   501	VPXOR        Y13, Y2, Y13
   502	VPXOR        Y14, Y3, Y14
   503	VPXOR        (AX), Y10, Y0
   504	VPXOR        352(AX), Y11, Y1
   505	VPXOR        704(AX), Y12, Y2
   506	VPXOR        256(AX), Y13, Y3
   507	VPXOR        608(AX), Y14, Y4
   508	VPSLLQ       $0x2c, Y1, Y6
   509	VPSLLQ       $0x2b, Y2, Y7
   510	VPSLLQ       $0x15, Y3, Y8
   511	VPSLLQ       $0x0e, Y4, Y9
   512	VPSRLQ       $0x14, Y1, Y1
   513	VPSRLQ       $0x15, Y2, Y2
   514	VPSRLQ       $0x2b, Y3, Y3
   515	VPSRLQ       $0x32, Y4, Y4
   516	VPOR         Y6, Y1, Y1
   517	VPOR         Y7, Y2, Y2
   518	VPOR         Y8, Y3, Y3
   519	VPOR         Y9, Y4, Y4
   520	VPANDN       Y2, Y1, Y5
   521	VPANDN       Y3, Y2, Y6
   522	VPANDN       Y4, Y3, Y7
   523	VPANDN       Y0, Y4, Y8
   524	VPANDN       Y1, Y0, Y9
   525	VPXOR        Y0, Y5, Y5
   526	VPXOR        Y1, Y6, Y6
   527	VPXOR        Y2, Y7, Y7
   528	VPXOR        Y3, Y8, Y8
   529	VPXOR        Y4, Y9, Y9
   530	VPBROADCASTQ 16(CX), Y0
   531	VPXOR        Y0, Y5, Y5
   532	VMOVDQA      Y5, (AX)
   533	VMOVDQA      Y6, 352(AX)
   534	VMOVDQA      Y7, 704(AX)
   535	VMOVDQA      Y8, 256(AX)
   536	VMOVDQA      Y9, 608(AX)
   537	VPXOR        736(AX), Y13, Y0
   538	VPXOR        288(AX), Y14, Y1
   539	VPXOR        480(AX), Y10, Y2
   540	VPXOR        32(AX), Y11, Y3
   541	VPXOR        384(AX), Y12, Y4
   542	VPSLLQ       $0x1c, Y0, Y5
   543	VPSLLQ       $0x14, Y1, Y6
   544	VPSLLQ       $0x03, Y2, Y7
   545	VPSLLQ       $0x2d, Y3, Y8
   546	VPSLLQ       $0x3d, Y4, Y9
   547	VPSRLQ       $0x24, Y0, Y0
   548	VPSRLQ       $0x2c, Y1, Y1
   549	VPSRLQ       $0x3d, Y2, Y2
   550	VPSRLQ       $0x13, Y3, Y3
   551	VPSRLQ       $0x03, Y4, Y4
   552	VPOR         Y5, Y0, Y0
   553	VPOR         Y6, Y1, Y1
   554	VPOR         Y7, Y2, Y2
   555	VPOR         Y8, Y3, Y3
   556	VPOR         Y9, Y4, Y4
   557	VPANDN       Y2, Y1, Y5
   558	VPANDN       Y3, Y2, Y6
   559	VPANDN       Y4, Y3, Y7
   560	VPANDN       Y0, Y4, Y8
   561	VPANDN       Y1, Y0, Y9
   562	VPXOR        Y0, Y5, Y5
   563	VPXOR        Y1, Y6, Y6
   564	VPXOR        Y2, Y7, Y7
   565	VPXOR        Y3, Y8, Y8
   566	VPXOR        Y4, Y9, Y9
   567	VMOVDQA      Y5, 480(AX)
   568	VMOVDQA      Y6, 32(AX)
   569	VMOVDQA      Y7, 384(AX)
   570	VMOVDQA      Y8, 736(AX)
   571	VMOVDQA      Y9, 288(AX)
   572	VPXOR        512(AX), Y11, Y0
   573	VPXOR        64(AX), Y12, Y1
   574	VPXOR        416(AX), Y13, Y2
   575	VPXOR        768(AX), Y14, Y3
   576	VPXOR        160(AX), Y10, Y4
   577	VPSLLQ       $0x01, Y0, Y5
   578	VPSLLQ       $0x06, Y1, Y6
   579	VPSLLQ       $0x19, Y2, Y7
   580	VPSLLQ       $0x08, Y3, Y8
   581	VPSLLQ       $0x12, Y4, Y9
   582	VPSRLQ       $0x3f, Y0, Y0
   583	VPSRLQ       $0x3a, Y1, Y1
   584	VPSRLQ       $0x27, Y2, Y2
   585	VPSRLQ       $0x38, Y3, Y3
   586	VPSRLQ       $0x2e, Y4, Y4
   587	VPOR         Y5, Y0, Y0
   588	VPOR         Y6, Y1, Y1
   589	VPOR         Y7, Y2, Y2
   590	VPOR         Y8, Y3, Y3
   591	VPOR         Y9, Y4, Y4
   592	VPANDN       Y2, Y1, Y5
   593	VPANDN       Y3, Y2, Y6
   594	VPANDN       Y4, Y3, Y7
   595	VPANDN       Y0, Y4, Y8
   596	VPANDN       Y1, Y0, Y9
   597	VPXOR        Y0, Y5, Y5
   598	VPXOR        Y1, Y6, Y6
   599	VPXOR        Y2, Y7, Y7
   600	VPXOR        Y3, Y8, Y8
   601	VPXOR        Y4, Y9, Y9
   602	VMOVDQA      Y5, 160(AX)
   603	VMOVDQA      Y6, 512(AX)
   604	VMOVDQA      Y7, 64(AX)
   605	VMOVDQA      Y8, 416(AX)
   606	VMOVDQA      Y9, 768(AX)
   607	VPXOR        448(AX), Y14, Y0
   608	VPXOR        640(AX), Y10, Y1
   609	VPXOR        192(AX), Y11, Y2
   610	VPXOR        544(AX), Y12, Y3
   611	VPXOR        96(AX), Y13, Y4
   612	VPSLLQ       $0x1b, Y0, Y5
   613	VPSLLQ       $0x24, Y1, Y6
   614	VPSLLQ       $0x0a, Y2, Y7
   615	VPSLLQ       $0x0f, Y3, Y8
   616	VPSLLQ       $0x38, Y4, Y9
   617	VPSRLQ       $0x25, Y0, Y0
   618	VPSRLQ       $0x1c, Y1, Y1
   619	VPSRLQ       $0x36, Y2, Y2
   620	VPSRLQ       $0x31, Y3, Y3
   621	VPSRLQ       $0x08, Y4, Y4
   622	VPOR         Y5, Y0, Y0
   623	VPOR         Y6, Y1, Y1
   624	VPOR         Y7, Y2, Y2
   625	VPOR         Y8, Y3, Y3
   626	VPOR         Y9, Y4, Y4
   627	VPANDN       Y2, Y1, Y5
   628	VPANDN       Y3, Y2, Y6
   629	VPANDN       Y4, Y3, Y7
   630	VPANDN       Y0, Y4, Y8
   631	VPANDN       Y1, Y0, Y9
   632	VPXOR        Y0, Y5, Y5
   633	VPXOR        Y1, Y6, Y6
   634	VPXOR        Y2, Y7, Y7
   635	VPXOR        Y3, Y8, Y8
   636	VPXOR        Y4, Y9, Y9
   637	VMOVDQA      Y5, 640(AX)
   638	VMOVDQA      Y6, 192(AX)
   639	VMOVDQA      Y7, 544(AX)
   640	VMOVDQA      Y8, 96(AX)
   641	VMOVDQA      Y9, 448(AX)
   642	VPXOR        224(AX), Y12, Y0
   643	VPXOR        576(AX), Y13, Y1
   644	VPXOR        128(AX), Y14, Y2
   645	VPXOR        320(AX), Y10, Y3
   646	VPXOR        672(AX), Y11, Y4
   647	VPSLLQ       $0x3e, Y0, Y5
   648	VPSLLQ       $0x37, Y1, Y6
   649	VPSLLQ       $0x27, Y2, Y7
   650	VPSLLQ       $0x29, Y3, Y8
   651	VPSLLQ       $0x02, Y4, Y9
   652	VPSRLQ       $0x02, Y0, Y0
   653	VPSRLQ       $0x09, Y1, Y1
   654	VPSRLQ       $0x19, Y2, Y2
   655	VPSRLQ       $0x17, Y3, Y3
   656	VPSRLQ       $0x3e, Y4, Y4
   657	VPOR         Y5, Y0, Y0
   658	VPOR         Y6, Y1, Y1
   659	VPOR         Y7, Y2, Y2
   660	VPOR         Y8, Y3, Y3
   661	VPOR         Y9, Y4, Y4
   662	VPANDN       Y2, Y1, Y5
   663	VPANDN       Y3, Y2, Y6
   664	VPANDN       Y4, Y3, Y7
   665	VPANDN       Y0, Y4, Y8
   666	VPANDN       Y1, Y0, Y9
   667	VPXOR        Y0, Y5, Y5
   668	VPXOR        Y1, Y6, Y6
   669	VPXOR        Y2, Y7, Y7
   670	VPXOR        Y3, Y8, Y8
   671	VPXOR        Y4, Y9, Y9
   672	VMOVDQA      Y5, 320(AX)
   673	VMOVDQA      Y6, 672(AX)
   674	VMOVDQA      Y7, 224(AX)
   675	VMOVDQA      Y8, 576(AX)
   676	VMOVDQA      Y9, 128(AX)
   677	VMOVDQA      (AX), Y0
   678	VMOVDQA      32(AX), Y1
   679	VMOVDQA      64(AX), Y2
   680	VMOVDQA      96(AX), Y3
   681	VMOVDQA      128(AX), Y4
   682	VPXOR        160(AX), Y0, Y0
   683	VPXOR        192(AX), Y1, Y1
   684	VPXOR        224(AX), Y2, Y2
   685	VPXOR        256(AX), Y3, Y3
   686	VPXOR        288(AX), Y4, Y4
   687	VPXOR        320(AX), Y0, Y0
   688	VPXOR        352(AX), Y1, Y1
   689	VPXOR        384(AX), Y2, Y2
   690	VPXOR        416(AX), Y3, Y3
   691	VPXOR        448(AX), Y4, Y4
   692	VPXOR        480(AX), Y0, Y0
   693	VPXOR        512(AX), Y1, Y1
   694	VPXOR        544(AX), Y2, Y2
   695	VPXOR        576(AX), Y3, Y3
   696	VPXOR        608(AX), Y4, Y4
   697	VPXOR        640(AX), Y0, Y0
   698	VPXOR        672(AX), Y1, Y1
   699	VPXOR        704(AX), Y2, Y2
   700	VPXOR        736(AX), Y3, Y3
   701	VPXOR        768(AX), Y4, Y4
   702	VPSLLQ       $0x01, Y1, Y5
   703	VPSLLQ       $0x01, Y2, Y6
   704	VPSLLQ       $0x01, Y3, Y7
   705	VPSLLQ       $0x01, Y4, Y8
   706	VPSLLQ       $0x01, Y0, Y9
   707	VPSRLQ       $0x3f, Y1, Y10
   708	VPSRLQ       $0x3f, Y2, Y11
   709	VPSRLQ       $0x3f, Y3, Y12
   710	VPSRLQ       $0x3f, Y4, Y13
   711	VPSRLQ       $0x3f, Y0, Y14
   712	VPOR         Y5, Y10, Y10
   713	VPOR         Y6, Y11, Y11
   714	VPOR         Y7, Y12, Y12
   715	VPOR         Y8, Y13, Y13
   716	VPOR         Y9, Y14, Y14
   717	VPXOR        Y10, Y4, Y10
   718	VPXOR        Y11, Y0, Y11
   719	VPXOR        Y12, Y1, Y12
   720	VPXOR        Y13, Y2, Y13
   721	VPXOR        Y14, Y3, Y14
   722	VPXOR        (AX), Y10, Y0
   723	VPXOR        32(AX), Y11, Y1
   724	VPXOR        64(AX), Y12, Y2
   725	VPXOR        96(AX), Y13, Y3
   726	VPXOR        128(AX), Y14, Y4
   727	VPSLLQ       $0x2c, Y1, Y6
   728	VPSLLQ       $0x2b, Y2, Y7
   729	VPSLLQ       $0x15, Y3, Y8
   730	VPSLLQ       $0x0e, Y4, Y9
   731	VPSRLQ       $0x14, Y1, Y1
   732	VPSRLQ       $0x15, Y2, Y2
   733	VPSRLQ       $0x2b, Y3, Y3
   734	VPSRLQ       $0x32, Y4, Y4
   735	VPOR         Y6, Y1, Y1
   736	VPOR         Y7, Y2, Y2
   737	VPOR         Y8, Y3, Y3
   738	VPOR         Y9, Y4, Y4
   739	VPANDN       Y2, Y1, Y5
   740	VPANDN       Y3, Y2, Y6
   741	VPANDN       Y4, Y3, Y7
   742	VPANDN       Y0, Y4, Y8
   743	VPANDN       Y1, Y0, Y9
   744	VPXOR        Y0, Y5, Y5
   745	VPXOR        Y1, Y6, Y6
   746	VPXOR        Y2, Y7, Y7
   747	VPXOR        Y3, Y8, Y8
   748	VPXOR        Y4, Y9, Y9
   749	VPBROADCASTQ 24(CX), Y0
   750	VPXOR        Y0, Y5, Y5
   751	VMOVDQA      Y5, (AX)
   752	VMOVDQA      Y6, 32(AX)
   753	VMOVDQA      Y7, 64(AX)
   754	VMOVDQA      Y8, 96(AX)
   755	VMOVDQA      Y9, 128(AX)
   756	VPXOR        256(AX), Y13, Y0
   757	VPXOR        288(AX), Y14, Y1
   758	VPXOR        160(AX), Y10, Y2
   759	VPXOR        192(AX), Y11, Y3
   760	VPXOR        224(AX), Y12, Y4
   761	VPSLLQ       $0x1c, Y0, Y5
   762	VPSLLQ       $0x14, Y1, Y6
   763	VPSLLQ       $0x03, Y2, Y7
   764	VPSLLQ       $0x2d, Y3, Y8
   765	VPSLLQ       $0x3d, Y4, Y9
   766	VPSRLQ       $0x24, Y0, Y0
   767	VPSRLQ       $0x2c, Y1, Y1
   768	VPSRLQ       $0x3d, Y2, Y2
   769	VPSRLQ       $0x13, Y3, Y3
   770	VPSRLQ       $0x03, Y4, Y4
   771	VPOR         Y5, Y0, Y0
   772	VPOR         Y6, Y1, Y1
   773	VPOR         Y7, Y2, Y2
   774	VPOR         Y8, Y3, Y3
   775	VPOR         Y9, Y4, Y4
   776	VPANDN       Y2, Y1, Y5
   777	VPANDN       Y3, Y2, Y6
   778	VPANDN       Y4, Y3, Y7
   779	VPANDN       Y0, Y4, Y8
   780	VPANDN       Y1, Y0, Y9
   781	VPXOR        Y0, Y5, Y5
   782	VPXOR        Y1, Y6, Y6
   783	VPXOR        Y2, Y7, Y7
   784	VPXOR        Y3, Y8, Y8
   785	VPXOR        Y4, Y9, Y9
   786	VMOVDQA      Y5, 160(AX)
   787	VMOVDQA      Y6, 192(AX)
   788	VMOVDQA      Y7, 224(AX)
   789	VMOVDQA      Y8, 256(AX)
   790	VMOVDQA      Y9, 288(AX)
   791	VPXOR        352(AX), Y11, Y0
   792	VPXOR        384(AX), Y12, Y1
   793	VPXOR        416(AX), Y13, Y2
   794	VPXOR        448(AX), Y14, Y3
   795	VPXOR        320(AX), Y10, Y4
   796	VPSLLQ       $0x01, Y0, Y5
   797	VPSLLQ       $0x06, Y1, Y6
   798	VPSLLQ       $0x19, Y2, Y7
   799	VPSLLQ       $0x08, Y3, Y8
   800	VPSLLQ       $0x12, Y4, Y9
   801	VPSRLQ       $0x3f, Y0, Y0
   802	VPSRLQ       $0x3a, Y1, Y1
   803	VPSRLQ       $0x27, Y2, Y2
   804	VPSRLQ       $0x38, Y3, Y3
   805	VPSRLQ       $0x2e, Y4, Y4
   806	VPOR         Y5, Y0, Y0
   807	VPOR         Y6, Y1, Y1
   808	VPOR         Y7, Y2, Y2
   809	VPOR         Y8, Y3, Y3
   810	VPOR         Y9, Y4, Y4
   811	VPANDN       Y2, Y1, Y5
   812	VPANDN       Y3, Y2, Y6
   813	VPANDN       Y4, Y3, Y7
   814	VPANDN       Y0, Y4, Y8
   815	VPANDN       Y1, Y0, Y9
   816	VPXOR        Y0, Y5, Y5
   817	VPXOR        Y1, Y6, Y6
   818	VPXOR        Y2, Y7, Y7
   819	VPXOR        Y3, Y8, Y8
   820	VPXOR        Y4, Y9, Y9
   821	VMOVDQA      Y5, 320(AX)
   822	VMOVDQA      Y6, 352(AX)
   823	VMOVDQA      Y7, 384(AX)
   824	VMOVDQA      Y8, 416(AX)
   825	VMOVDQA      Y9, 448(AX)
   826	VPXOR        608(AX), Y14, Y0
   827	VPXOR        480(AX), Y10, Y1
   828	VPXOR        512(AX), Y11, Y2
   829	VPXOR        544(AX), Y12, Y3
   830	VPXOR        576(AX), Y13, Y4
   831	VPSLLQ       $0x1b, Y0, Y5
   832	VPSLLQ       $0x24, Y1, Y6
   833	VPSLLQ       $0x0a, Y2, Y7
   834	VPSLLQ       $0x0f, Y3, Y8
   835	VPSLLQ       $0x38, Y4, Y9
   836	VPSRLQ       $0x25, Y0, Y0
   837	VPSRLQ       $0x1c, Y1, Y1
   838	VPSRLQ       $0x36, Y2, Y2
   839	VPSRLQ       $0x31, Y3, Y3
   840	VPSRLQ       $0x08, Y4, Y4
   841	VPOR         Y5, Y0, Y0
   842	VPOR         Y6, Y1, Y1
   843	VPOR         Y7, Y2, Y2
   844	VPOR         Y8, Y3, Y3
   845	VPOR         Y9, Y4, Y4
   846	VPANDN       Y2, Y1, Y5
   847	VPANDN       Y3, Y2, Y6
   848	VPANDN       Y4, Y3, Y7
   849	VPANDN       Y0, Y4, Y8
   850	VPANDN       Y1, Y0, Y9
   851	VPXOR        Y0, Y5, Y5
   852	VPXOR        Y1, Y6, Y6
   853	VPXOR        Y2, Y7, Y7
   854	VPXOR        Y3, Y8, Y8
   855	VPXOR        Y4, Y9, Y9
   856	VMOVDQA      Y5, 480(AX)
   857	VMOVDQA      Y6, 512(AX)
   858	VMOVDQA      Y7, 544(AX)
   859	VMOVDQA      Y8, 576(AX)
   860	VMOVDQA      Y9, 608(AX)
   861	VPXOR        704(AX), Y12, Y0
   862	VPXOR        736(AX), Y13, Y1
   863	VPXOR        768(AX), Y14, Y2
   864	VPXOR        640(AX), Y10, Y3
   865	VPXOR        672(AX), Y11, Y4
   866	VPSLLQ       $0x3e, Y0, Y5
   867	VPSLLQ       $0x37, Y1, Y6
   868	VPSLLQ       $0x27, Y2, Y7
   869	VPSLLQ       $0x29, Y3, Y8
   870	VPSLLQ       $0x02, Y4, Y9
   871	VPSRLQ       $0x02, Y0, Y0
   872	VPSRLQ       $0x09, Y1, Y1
   873	VPSRLQ       $0x19, Y2, Y2
   874	VPSRLQ       $0x17, Y3, Y3
   875	VPSRLQ       $0x3e, Y4, Y4
   876	VPOR         Y5, Y0, Y0
   877	VPOR         Y6, Y1, Y1
   878	VPOR         Y7, Y2, Y2
   879	VPOR         Y8, Y3, Y3
   880	VPOR         Y9, Y4, Y4
   881	VPANDN       Y2, Y1, Y5
   882	VPANDN       Y3, Y2, Y6
   883	VPANDN       Y4, Y3, Y7
   884	VPANDN       Y0, Y4, Y8
   885	VPANDN       Y1, Y0, Y9
   886	VPXOR        Y0, Y5, Y5
   887	VPXOR        Y1, Y6, Y6
   888	VPXOR        Y2, Y7, Y7
   889	VPXOR        Y3, Y8, Y8
   890	VPXOR        Y4, Y9, Y9
   891	VMOVDQA      Y5, 640(AX)
   892	VMOVDQA      Y6, 672(AX)
   893	VMOVDQA      Y7, 704(AX)
   894	VMOVDQA      Y8, 736(AX)
   895	VMOVDQA      Y9, 768(AX)
   896	ADDQ         $0x20, CX
   897	SUBQ         $0x00000001, DX
   898	JNZ          loop
   899	RET

View as plain text