Text file src/crypto/internal/fips140/aes/ctr_arm64.s

     1  // Code generated by ctr_arm64_gen.go. DO NOT EDIT.
     2  
     3  //go:build !purego
     4  
     5  #include "textflag.h"
     6  
     7  #define NR R9
     8  #define XK R10
     9  #define DST R11
    10  #define SRC R12
    11  #define IV_LOW_LE R16
    12  #define IV_HIGH_LE R17
    13  #define IV_LOW_BE R19
    14  #define IV_HIGH_BE R20
    15  
    16  // V0.B16 - V7.B16 are for blocks (<=8). See BLOCK_OFFSET.
    17  // V8.B16 - V22.B16 are for <=15 round keys (<=15). See ROUND_KEY_OFFSET.
    18  // V23.B16 - V30.B16 are for destinations (<=8). See DST_OFFSET.
    19  
    20  // func ctrBlocks1Asm(nr int, xk *[60]uint32, dst *[1*16]byte, src *[1*16]byte, ivlo uint64, ivhi uint64)
    21  TEXT ·ctrBlocks1Asm(SB), NOSPLIT, $0
    22  	MOVD nr+0(FP), NR
    23  	MOVD xk+8(FP), XK
    24  	MOVD dst+16(FP), DST
    25  	MOVD src+24(FP), SRC
    26  	MOVD ivlo+32(FP), IV_LOW_LE
    27  	MOVD ivhi+40(FP), IV_HIGH_LE
    28  
    29  	REV  IV_LOW_LE, IV_LOW_BE
    30  	REV  IV_HIGH_LE, IV_HIGH_BE
    31  	VMOV IV_LOW_BE, V0.D[1]
    32  	VMOV IV_HIGH_BE, V0.D[0]
    33  
    34  	CMP $12, NR
    35  	BLT Lenc128
    36  	BEQ Lenc192
    37  
    38  Lenc256:
    39  	VLD1.P 32(XK), [V8.B16, V9.B16]
    40  
    41  	AESE  V8.B16, V0.B16
    42  	AESMC V0.B16, V0.B16
    43  
    44  	AESE  V9.B16, V0.B16
    45  	AESMC V0.B16, V0.B16
    46  
    47  Lenc192:
    48  	VLD1.P 32(XK), [V10.B16, V11.B16]
    49  
    50  	AESE  V10.B16, V0.B16
    51  	AESMC V0.B16, V0.B16
    52  
    53  	AESE  V11.B16, V0.B16
    54  	AESMC V0.B16, V0.B16
    55  
    56  Lenc128:
    57  	VLD1.P 64(XK), [V12.B16, V13.B16, V14.B16, V15.B16]
    58  	VLD1.P 64(XK), [V16.B16, V17.B16, V18.B16, V19.B16]
    59  	VLD1.P 48(XK), [V20.B16, V21.B16, V22.B16]
    60  
    61  	AESE  V12.B16, V0.B16
    62  	AESMC V0.B16, V0.B16
    63  
    64  	AESE  V13.B16, V0.B16
    65  	AESMC V0.B16, V0.B16
    66  
    67  	AESE  V14.B16, V0.B16
    68  	AESMC V0.B16, V0.B16
    69  
    70  	AESE  V15.B16, V0.B16
    71  	AESMC V0.B16, V0.B16
    72  
    73  	AESE  V16.B16, V0.B16
    74  	AESMC V0.B16, V0.B16
    75  
    76  	AESE  V17.B16, V0.B16
    77  	AESMC V0.B16, V0.B16
    78  
    79  	AESE  V18.B16, V0.B16
    80  	AESMC V0.B16, V0.B16
    81  
    82  	AESE  V19.B16, V0.B16
    83  	AESMC V0.B16, V0.B16
    84  
    85  	AESE  V20.B16, V0.B16
    86  	AESMC V0.B16, V0.B16
    87  
    88  	AESE V21.B16, V0.B16
    89  
    90  	VEOR V0.B16, V22.B16, V0.B16
    91  
    92  	VLD1.P 16(SRC), [V23.B16]
    93  	VEOR   V23.B16, V0.B16, V23.B16
    94  	VST1.P [V23.B16], 16(DST)
    95  
    96  	RET
    97  
    98  // func ctrBlocks2Asm(nr int, xk *[60]uint32, dst *[2*16]byte, src *[2*16]byte, ivlo uint64, ivhi uint64)
    99  TEXT ·ctrBlocks2Asm(SB), NOSPLIT, $0
   100  	MOVD nr+0(FP), NR
   101  	MOVD xk+8(FP), XK
   102  	MOVD dst+16(FP), DST
   103  	MOVD src+24(FP), SRC
   104  	MOVD ivlo+32(FP), IV_LOW_LE
   105  	MOVD ivhi+40(FP), IV_HIGH_LE
   106  
   107  	REV  IV_LOW_LE, IV_LOW_BE
   108  	REV  IV_HIGH_LE, IV_HIGH_BE
   109  	VMOV IV_LOW_BE, V0.D[1]
   110  	VMOV IV_HIGH_BE, V0.D[0]
   111  	ADDS $1, IV_LOW_LE
   112  	ADC  $0, IV_HIGH_LE
   113  
   114  	REV  IV_LOW_LE, IV_LOW_BE
   115  	REV  IV_HIGH_LE, IV_HIGH_BE
   116  	VMOV IV_LOW_BE, V1.D[1]
   117  	VMOV IV_HIGH_BE, V1.D[0]
   118  
   119  	CMP $12, NR
   120  	BLT Lenc128
   121  	BEQ Lenc192
   122  
   123  Lenc256:
   124  	VLD1.P 32(XK), [V8.B16, V9.B16]
   125  
   126  	AESE  V8.B16, V0.B16
   127  	AESMC V0.B16, V0.B16
   128  	AESE  V8.B16, V1.B16
   129  	AESMC V1.B16, V1.B16
   130  
   131  	AESE  V9.B16, V0.B16
   132  	AESMC V0.B16, V0.B16
   133  	AESE  V9.B16, V1.B16
   134  	AESMC V1.B16, V1.B16
   135  
   136  Lenc192:
   137  	VLD1.P 32(XK), [V10.B16, V11.B16]
   138  
   139  	AESE  V10.B16, V0.B16
   140  	AESMC V0.B16, V0.B16
   141  	AESE  V10.B16, V1.B16
   142  	AESMC V1.B16, V1.B16
   143  
   144  	AESE  V11.B16, V0.B16
   145  	AESMC V0.B16, V0.B16
   146  	AESE  V11.B16, V1.B16
   147  	AESMC V1.B16, V1.B16
   148  
   149  Lenc128:
   150  	VLD1.P 64(XK), [V12.B16, V13.B16, V14.B16, V15.B16]
   151  	VLD1.P 64(XK), [V16.B16, V17.B16, V18.B16, V19.B16]
   152  	VLD1.P 48(XK), [V20.B16, V21.B16, V22.B16]
   153  
   154  	AESE  V12.B16, V0.B16
   155  	AESMC V0.B16, V0.B16
   156  	AESE  V12.B16, V1.B16
   157  	AESMC V1.B16, V1.B16
   158  
   159  	AESE  V13.B16, V0.B16
   160  	AESMC V0.B16, V0.B16
   161  	AESE  V13.B16, V1.B16
   162  	AESMC V1.B16, V1.B16
   163  
   164  	AESE  V14.B16, V0.B16
   165  	AESMC V0.B16, V0.B16
   166  	AESE  V14.B16, V1.B16
   167  	AESMC V1.B16, V1.B16
   168  
   169  	AESE  V15.B16, V0.B16
   170  	AESMC V0.B16, V0.B16
   171  	AESE  V15.B16, V1.B16
   172  	AESMC V1.B16, V1.B16
   173  
   174  	AESE  V16.B16, V0.B16
   175  	AESMC V0.B16, V0.B16
   176  	AESE  V16.B16, V1.B16
   177  	AESMC V1.B16, V1.B16
   178  
   179  	AESE  V17.B16, V0.B16
   180  	AESMC V0.B16, V0.B16
   181  	AESE  V17.B16, V1.B16
   182  	AESMC V1.B16, V1.B16
   183  
   184  	AESE  V18.B16, V0.B16
   185  	AESMC V0.B16, V0.B16
   186  	AESE  V18.B16, V1.B16
   187  	AESMC V1.B16, V1.B16
   188  
   189  	AESE  V19.B16, V0.B16
   190  	AESMC V0.B16, V0.B16
   191  	AESE  V19.B16, V1.B16
   192  	AESMC V1.B16, V1.B16
   193  
   194  	AESE  V20.B16, V0.B16
   195  	AESMC V0.B16, V0.B16
   196  	AESE  V20.B16, V1.B16
   197  	AESMC V1.B16, V1.B16
   198  
   199  	AESE V21.B16, V0.B16
   200  	AESE V21.B16, V1.B16
   201  
   202  	VEOR V0.B16, V22.B16, V0.B16
   203  	VEOR V1.B16, V22.B16, V1.B16
   204  
   205  	VLD1.P 32(SRC), [V23.B16, V24.B16]
   206  	VEOR   V23.B16, V0.B16, V23.B16
   207  	VEOR   V24.B16, V1.B16, V24.B16
   208  	VST1.P [V23.B16, V24.B16], 32(DST)
   209  
   210  	RET
   211  
   212  // func ctrBlocks4Asm(nr int, xk *[60]uint32, dst *[4*16]byte, src *[4*16]byte, ivlo uint64, ivhi uint64)
   213  TEXT ·ctrBlocks4Asm(SB), NOSPLIT, $0
   214  	MOVD nr+0(FP), NR
   215  	MOVD xk+8(FP), XK
   216  	MOVD dst+16(FP), DST
   217  	MOVD src+24(FP), SRC
   218  	MOVD ivlo+32(FP), IV_LOW_LE
   219  	MOVD ivhi+40(FP), IV_HIGH_LE
   220  
   221  	REV  IV_LOW_LE, IV_LOW_BE
   222  	REV  IV_HIGH_LE, IV_HIGH_BE
   223  	VMOV IV_LOW_BE, V0.D[1]
   224  	VMOV IV_HIGH_BE, V0.D[0]
   225  	ADDS $1, IV_LOW_LE
   226  	ADC  $0, IV_HIGH_LE
   227  
   228  	REV  IV_LOW_LE, IV_LOW_BE
   229  	REV  IV_HIGH_LE, IV_HIGH_BE
   230  	VMOV IV_LOW_BE, V1.D[1]
   231  	VMOV IV_HIGH_BE, V1.D[0]
   232  	ADDS $1, IV_LOW_LE
   233  	ADC  $0, IV_HIGH_LE
   234  
   235  	REV  IV_LOW_LE, IV_LOW_BE
   236  	REV  IV_HIGH_LE, IV_HIGH_BE
   237  	VMOV IV_LOW_BE, V2.D[1]
   238  	VMOV IV_HIGH_BE, V2.D[0]
   239  	ADDS $1, IV_LOW_LE
   240  	ADC  $0, IV_HIGH_LE
   241  
   242  	REV  IV_LOW_LE, IV_LOW_BE
   243  	REV  IV_HIGH_LE, IV_HIGH_BE
   244  	VMOV IV_LOW_BE, V3.D[1]
   245  	VMOV IV_HIGH_BE, V3.D[0]
   246  
   247  	CMP $12, NR
   248  	BLT Lenc128
   249  	BEQ Lenc192
   250  
   251  Lenc256:
   252  	VLD1.P 32(XK), [V8.B16, V9.B16]
   253  
   254  	AESE  V8.B16, V0.B16
   255  	AESMC V0.B16, V0.B16
   256  	AESE  V8.B16, V1.B16
   257  	AESMC V1.B16, V1.B16
   258  	AESE  V8.B16, V2.B16
   259  	AESMC V2.B16, V2.B16
   260  	AESE  V8.B16, V3.B16
   261  	AESMC V3.B16, V3.B16
   262  
   263  	AESE  V9.B16, V0.B16
   264  	AESMC V0.B16, V0.B16
   265  	AESE  V9.B16, V1.B16
   266  	AESMC V1.B16, V1.B16
   267  	AESE  V9.B16, V2.B16
   268  	AESMC V2.B16, V2.B16
   269  	AESE  V9.B16, V3.B16
   270  	AESMC V3.B16, V3.B16
   271  
   272  Lenc192:
   273  	VLD1.P 32(XK), [V10.B16, V11.B16]
   274  
   275  	AESE  V10.B16, V0.B16
   276  	AESMC V0.B16, V0.B16
   277  	AESE  V10.B16, V1.B16
   278  	AESMC V1.B16, V1.B16
   279  	AESE  V10.B16, V2.B16
   280  	AESMC V2.B16, V2.B16
   281  	AESE  V10.B16, V3.B16
   282  	AESMC V3.B16, V3.B16
   283  
   284  	AESE  V11.B16, V0.B16
   285  	AESMC V0.B16, V0.B16
   286  	AESE  V11.B16, V1.B16
   287  	AESMC V1.B16, V1.B16
   288  	AESE  V11.B16, V2.B16
   289  	AESMC V2.B16, V2.B16
   290  	AESE  V11.B16, V3.B16
   291  	AESMC V3.B16, V3.B16
   292  
   293  Lenc128:
   294  	VLD1.P 64(XK), [V12.B16, V13.B16, V14.B16, V15.B16]
   295  	VLD1.P 64(XK), [V16.B16, V17.B16, V18.B16, V19.B16]
   296  	VLD1.P 48(XK), [V20.B16, V21.B16, V22.B16]
   297  
   298  	AESE  V12.B16, V0.B16
   299  	AESMC V0.B16, V0.B16
   300  	AESE  V12.B16, V1.B16
   301  	AESMC V1.B16, V1.B16
   302  	AESE  V12.B16, V2.B16
   303  	AESMC V2.B16, V2.B16
   304  	AESE  V12.B16, V3.B16
   305  	AESMC V3.B16, V3.B16
   306  
   307  	AESE  V13.B16, V0.B16
   308  	AESMC V0.B16, V0.B16
   309  	AESE  V13.B16, V1.B16
   310  	AESMC V1.B16, V1.B16
   311  	AESE  V13.B16, V2.B16
   312  	AESMC V2.B16, V2.B16
   313  	AESE  V13.B16, V3.B16
   314  	AESMC V3.B16, V3.B16
   315  
   316  	AESE  V14.B16, V0.B16
   317  	AESMC V0.B16, V0.B16
   318  	AESE  V14.B16, V1.B16
   319  	AESMC V1.B16, V1.B16
   320  	AESE  V14.B16, V2.B16
   321  	AESMC V2.B16, V2.B16
   322  	AESE  V14.B16, V3.B16
   323  	AESMC V3.B16, V3.B16
   324  
   325  	AESE  V15.B16, V0.B16
   326  	AESMC V0.B16, V0.B16
   327  	AESE  V15.B16, V1.B16
   328  	AESMC V1.B16, V1.B16
   329  	AESE  V15.B16, V2.B16
   330  	AESMC V2.B16, V2.B16
   331  	AESE  V15.B16, V3.B16
   332  	AESMC V3.B16, V3.B16
   333  
   334  	AESE  V16.B16, V0.B16
   335  	AESMC V0.B16, V0.B16
   336  	AESE  V16.B16, V1.B16
   337  	AESMC V1.B16, V1.B16
   338  	AESE  V16.B16, V2.B16
   339  	AESMC V2.B16, V2.B16
   340  	AESE  V16.B16, V3.B16
   341  	AESMC V3.B16, V3.B16
   342  
   343  	AESE  V17.B16, V0.B16
   344  	AESMC V0.B16, V0.B16
   345  	AESE  V17.B16, V1.B16
   346  	AESMC V1.B16, V1.B16
   347  	AESE  V17.B16, V2.B16
   348  	AESMC V2.B16, V2.B16
   349  	AESE  V17.B16, V3.B16
   350  	AESMC V3.B16, V3.B16
   351  
   352  	AESE  V18.B16, V0.B16
   353  	AESMC V0.B16, V0.B16
   354  	AESE  V18.B16, V1.B16
   355  	AESMC V1.B16, V1.B16
   356  	AESE  V18.B16, V2.B16
   357  	AESMC V2.B16, V2.B16
   358  	AESE  V18.B16, V3.B16
   359  	AESMC V3.B16, V3.B16
   360  
   361  	AESE  V19.B16, V0.B16
   362  	AESMC V0.B16, V0.B16
   363  	AESE  V19.B16, V1.B16
   364  	AESMC V1.B16, V1.B16
   365  	AESE  V19.B16, V2.B16
   366  	AESMC V2.B16, V2.B16
   367  	AESE  V19.B16, V3.B16
   368  	AESMC V3.B16, V3.B16
   369  
   370  	AESE  V20.B16, V0.B16
   371  	AESMC V0.B16, V0.B16
   372  	AESE  V20.B16, V1.B16
   373  	AESMC V1.B16, V1.B16
   374  	AESE  V20.B16, V2.B16
   375  	AESMC V2.B16, V2.B16
   376  	AESE  V20.B16, V3.B16
   377  	AESMC V3.B16, V3.B16
   378  
   379  	AESE V21.B16, V0.B16
   380  	AESE V21.B16, V1.B16
   381  	AESE V21.B16, V2.B16
   382  	AESE V21.B16, V3.B16
   383  
   384  	VEOR V0.B16, V22.B16, V0.B16
   385  	VEOR V1.B16, V22.B16, V1.B16
   386  	VEOR V2.B16, V22.B16, V2.B16
   387  	VEOR V3.B16, V22.B16, V3.B16
   388  
   389  	VLD1.P 64(SRC), [V23.B16, V24.B16, V25.B16, V26.B16]
   390  	VEOR   V23.B16, V0.B16, V23.B16
   391  	VEOR   V24.B16, V1.B16, V24.B16
   392  	VEOR   V25.B16, V2.B16, V25.B16
   393  	VEOR   V26.B16, V3.B16, V26.B16
   394  	VST1.P [V23.B16, V24.B16, V25.B16, V26.B16], 64(DST)
   395  
   396  	RET
   397  
   398  // func ctrBlocks8Asm(nr int, xk *[60]uint32, dst *[8*16]byte, src *[8*16]byte, ivlo uint64, ivhi uint64)
   399  TEXT ·ctrBlocks8Asm(SB), NOSPLIT, $0
   400  	MOVD nr+0(FP), NR
   401  	MOVD xk+8(FP), XK
   402  	MOVD dst+16(FP), DST
   403  	MOVD src+24(FP), SRC
   404  	MOVD ivlo+32(FP), IV_LOW_LE
   405  	MOVD ivhi+40(FP), IV_HIGH_LE
   406  
   407  	REV  IV_LOW_LE, IV_LOW_BE
   408  	REV  IV_HIGH_LE, IV_HIGH_BE
   409  	VMOV IV_LOW_BE, V0.D[1]
   410  	VMOV IV_HIGH_BE, V0.D[0]
   411  	ADDS $1, IV_LOW_LE
   412  	ADC  $0, IV_HIGH_LE
   413  
   414  	REV  IV_LOW_LE, IV_LOW_BE
   415  	REV  IV_HIGH_LE, IV_HIGH_BE
   416  	VMOV IV_LOW_BE, V1.D[1]
   417  	VMOV IV_HIGH_BE, V1.D[0]
   418  	ADDS $1, IV_LOW_LE
   419  	ADC  $0, IV_HIGH_LE
   420  
   421  	REV  IV_LOW_LE, IV_LOW_BE
   422  	REV  IV_HIGH_LE, IV_HIGH_BE
   423  	VMOV IV_LOW_BE, V2.D[1]
   424  	VMOV IV_HIGH_BE, V2.D[0]
   425  	ADDS $1, IV_LOW_LE
   426  	ADC  $0, IV_HIGH_LE
   427  
   428  	REV  IV_LOW_LE, IV_LOW_BE
   429  	REV  IV_HIGH_LE, IV_HIGH_BE
   430  	VMOV IV_LOW_BE, V3.D[1]
   431  	VMOV IV_HIGH_BE, V3.D[0]
   432  	ADDS $1, IV_LOW_LE
   433  	ADC  $0, IV_HIGH_LE
   434  
   435  	REV  IV_LOW_LE, IV_LOW_BE
   436  	REV  IV_HIGH_LE, IV_HIGH_BE
   437  	VMOV IV_LOW_BE, V4.D[1]
   438  	VMOV IV_HIGH_BE, V4.D[0]
   439  	ADDS $1, IV_LOW_LE
   440  	ADC  $0, IV_HIGH_LE
   441  
   442  	REV  IV_LOW_LE, IV_LOW_BE
   443  	REV  IV_HIGH_LE, IV_HIGH_BE
   444  	VMOV IV_LOW_BE, V5.D[1]
   445  	VMOV IV_HIGH_BE, V5.D[0]
   446  	ADDS $1, IV_LOW_LE
   447  	ADC  $0, IV_HIGH_LE
   448  
   449  	REV  IV_LOW_LE, IV_LOW_BE
   450  	REV  IV_HIGH_LE, IV_HIGH_BE
   451  	VMOV IV_LOW_BE, V6.D[1]
   452  	VMOV IV_HIGH_BE, V6.D[0]
   453  	ADDS $1, IV_LOW_LE
   454  	ADC  $0, IV_HIGH_LE
   455  
   456  	REV  IV_LOW_LE, IV_LOW_BE
   457  	REV  IV_HIGH_LE, IV_HIGH_BE
   458  	VMOV IV_LOW_BE, V7.D[1]
   459  	VMOV IV_HIGH_BE, V7.D[0]
   460  
   461  	CMP $12, NR
   462  	BLT Lenc128
   463  	BEQ Lenc192
   464  
   465  Lenc256:
   466  	VLD1.P 32(XK), [V8.B16, V9.B16]
   467  
   468  	AESE  V8.B16, V0.B16
   469  	AESMC V0.B16, V0.B16
   470  	AESE  V8.B16, V1.B16
   471  	AESMC V1.B16, V1.B16
   472  	AESE  V8.B16, V2.B16
   473  	AESMC V2.B16, V2.B16
   474  	AESE  V8.B16, V3.B16
   475  	AESMC V3.B16, V3.B16
   476  	AESE  V8.B16, V4.B16
   477  	AESMC V4.B16, V4.B16
   478  	AESE  V8.B16, V5.B16
   479  	AESMC V5.B16, V5.B16
   480  	AESE  V8.B16, V6.B16
   481  	AESMC V6.B16, V6.B16
   482  	AESE  V8.B16, V7.B16
   483  	AESMC V7.B16, V7.B16
   484  
   485  	AESE  V9.B16, V0.B16
   486  	AESMC V0.B16, V0.B16
   487  	AESE  V9.B16, V1.B16
   488  	AESMC V1.B16, V1.B16
   489  	AESE  V9.B16, V2.B16
   490  	AESMC V2.B16, V2.B16
   491  	AESE  V9.B16, V3.B16
   492  	AESMC V3.B16, V3.B16
   493  	AESE  V9.B16, V4.B16
   494  	AESMC V4.B16, V4.B16
   495  	AESE  V9.B16, V5.B16
   496  	AESMC V5.B16, V5.B16
   497  	AESE  V9.B16, V6.B16
   498  	AESMC V6.B16, V6.B16
   499  	AESE  V9.B16, V7.B16
   500  	AESMC V7.B16, V7.B16
   501  
   502  Lenc192:
   503  	VLD1.P 32(XK), [V10.B16, V11.B16]
   504  
   505  	AESE  V10.B16, V0.B16
   506  	AESMC V0.B16, V0.B16
   507  	AESE  V10.B16, V1.B16
   508  	AESMC V1.B16, V1.B16
   509  	AESE  V10.B16, V2.B16
   510  	AESMC V2.B16, V2.B16
   511  	AESE  V10.B16, V3.B16
   512  	AESMC V3.B16, V3.B16
   513  	AESE  V10.B16, V4.B16
   514  	AESMC V4.B16, V4.B16
   515  	AESE  V10.B16, V5.B16
   516  	AESMC V5.B16, V5.B16
   517  	AESE  V10.B16, V6.B16
   518  	AESMC V6.B16, V6.B16
   519  	AESE  V10.B16, V7.B16
   520  	AESMC V7.B16, V7.B16
   521  
   522  	AESE  V11.B16, V0.B16
   523  	AESMC V0.B16, V0.B16
   524  	AESE  V11.B16, V1.B16
   525  	AESMC V1.B16, V1.B16
   526  	AESE  V11.B16, V2.B16
   527  	AESMC V2.B16, V2.B16
   528  	AESE  V11.B16, V3.B16
   529  	AESMC V3.B16, V3.B16
   530  	AESE  V11.B16, V4.B16
   531  	AESMC V4.B16, V4.B16
   532  	AESE  V11.B16, V5.B16
   533  	AESMC V5.B16, V5.B16
   534  	AESE  V11.B16, V6.B16
   535  	AESMC V6.B16, V6.B16
   536  	AESE  V11.B16, V7.B16
   537  	AESMC V7.B16, V7.B16
   538  
   539  Lenc128:
   540  	VLD1.P 64(XK), [V12.B16, V13.B16, V14.B16, V15.B16]
   541  	VLD1.P 64(XK), [V16.B16, V17.B16, V18.B16, V19.B16]
   542  	VLD1.P 48(XK), [V20.B16, V21.B16, V22.B16]
   543  
   544  	AESE  V12.B16, V0.B16
   545  	AESMC V0.B16, V0.B16
   546  	AESE  V12.B16, V1.B16
   547  	AESMC V1.B16, V1.B16
   548  	AESE  V12.B16, V2.B16
   549  	AESMC V2.B16, V2.B16
   550  	AESE  V12.B16, V3.B16
   551  	AESMC V3.B16, V3.B16
   552  	AESE  V12.B16, V4.B16
   553  	AESMC V4.B16, V4.B16
   554  	AESE  V12.B16, V5.B16
   555  	AESMC V5.B16, V5.B16
   556  	AESE  V12.B16, V6.B16
   557  	AESMC V6.B16, V6.B16
   558  	AESE  V12.B16, V7.B16
   559  	AESMC V7.B16, V7.B16
   560  
   561  	AESE  V13.B16, V0.B16
   562  	AESMC V0.B16, V0.B16
   563  	AESE  V13.B16, V1.B16
   564  	AESMC V1.B16, V1.B16
   565  	AESE  V13.B16, V2.B16
   566  	AESMC V2.B16, V2.B16
   567  	AESE  V13.B16, V3.B16
   568  	AESMC V3.B16, V3.B16
   569  	AESE  V13.B16, V4.B16
   570  	AESMC V4.B16, V4.B16
   571  	AESE  V13.B16, V5.B16
   572  	AESMC V5.B16, V5.B16
   573  	AESE  V13.B16, V6.B16
   574  	AESMC V6.B16, V6.B16
   575  	AESE  V13.B16, V7.B16
   576  	AESMC V7.B16, V7.B16
   577  
   578  	AESE  V14.B16, V0.B16
   579  	AESMC V0.B16, V0.B16
   580  	AESE  V14.B16, V1.B16
   581  	AESMC V1.B16, V1.B16
   582  	AESE  V14.B16, V2.B16
   583  	AESMC V2.B16, V2.B16
   584  	AESE  V14.B16, V3.B16
   585  	AESMC V3.B16, V3.B16
   586  	AESE  V14.B16, V4.B16
   587  	AESMC V4.B16, V4.B16
   588  	AESE  V14.B16, V5.B16
   589  	AESMC V5.B16, V5.B16
   590  	AESE  V14.B16, V6.B16
   591  	AESMC V6.B16, V6.B16
   592  	AESE  V14.B16, V7.B16
   593  	AESMC V7.B16, V7.B16
   594  
   595  	AESE  V15.B16, V0.B16
   596  	AESMC V0.B16, V0.B16
   597  	AESE  V15.B16, V1.B16
   598  	AESMC V1.B16, V1.B16
   599  	AESE  V15.B16, V2.B16
   600  	AESMC V2.B16, V2.B16
   601  	AESE  V15.B16, V3.B16
   602  	AESMC V3.B16, V3.B16
   603  	AESE  V15.B16, V4.B16
   604  	AESMC V4.B16, V4.B16
   605  	AESE  V15.B16, V5.B16
   606  	AESMC V5.B16, V5.B16
   607  	AESE  V15.B16, V6.B16
   608  	AESMC V6.B16, V6.B16
   609  	AESE  V15.B16, V7.B16
   610  	AESMC V7.B16, V7.B16
   611  
   612  	AESE  V16.B16, V0.B16
   613  	AESMC V0.B16, V0.B16
   614  	AESE  V16.B16, V1.B16
   615  	AESMC V1.B16, V1.B16
   616  	AESE  V16.B16, V2.B16
   617  	AESMC V2.B16, V2.B16
   618  	AESE  V16.B16, V3.B16
   619  	AESMC V3.B16, V3.B16
   620  	AESE  V16.B16, V4.B16
   621  	AESMC V4.B16, V4.B16
   622  	AESE  V16.B16, V5.B16
   623  	AESMC V5.B16, V5.B16
   624  	AESE  V16.B16, V6.B16
   625  	AESMC V6.B16, V6.B16
   626  	AESE  V16.B16, V7.B16
   627  	AESMC V7.B16, V7.B16
   628  
   629  	AESE  V17.B16, V0.B16
   630  	AESMC V0.B16, V0.B16
   631  	AESE  V17.B16, V1.B16
   632  	AESMC V1.B16, V1.B16
   633  	AESE  V17.B16, V2.B16
   634  	AESMC V2.B16, V2.B16
   635  	AESE  V17.B16, V3.B16
   636  	AESMC V3.B16, V3.B16
   637  	AESE  V17.B16, V4.B16
   638  	AESMC V4.B16, V4.B16
   639  	AESE  V17.B16, V5.B16
   640  	AESMC V5.B16, V5.B16
   641  	AESE  V17.B16, V6.B16
   642  	AESMC V6.B16, V6.B16
   643  	AESE  V17.B16, V7.B16
   644  	AESMC V7.B16, V7.B16
   645  
   646  	AESE  V18.B16, V0.B16
   647  	AESMC V0.B16, V0.B16
   648  	AESE  V18.B16, V1.B16
   649  	AESMC V1.B16, V1.B16
   650  	AESE  V18.B16, V2.B16
   651  	AESMC V2.B16, V2.B16
   652  	AESE  V18.B16, V3.B16
   653  	AESMC V3.B16, V3.B16
   654  	AESE  V18.B16, V4.B16
   655  	AESMC V4.B16, V4.B16
   656  	AESE  V18.B16, V5.B16
   657  	AESMC V5.B16, V5.B16
   658  	AESE  V18.B16, V6.B16
   659  	AESMC V6.B16, V6.B16
   660  	AESE  V18.B16, V7.B16
   661  	AESMC V7.B16, V7.B16
   662  
   663  	AESE  V19.B16, V0.B16
   664  	AESMC V0.B16, V0.B16
   665  	AESE  V19.B16, V1.B16
   666  	AESMC V1.B16, V1.B16
   667  	AESE  V19.B16, V2.B16
   668  	AESMC V2.B16, V2.B16
   669  	AESE  V19.B16, V3.B16
   670  	AESMC V3.B16, V3.B16
   671  	AESE  V19.B16, V4.B16
   672  	AESMC V4.B16, V4.B16
   673  	AESE  V19.B16, V5.B16
   674  	AESMC V5.B16, V5.B16
   675  	AESE  V19.B16, V6.B16
   676  	AESMC V6.B16, V6.B16
   677  	AESE  V19.B16, V7.B16
   678  	AESMC V7.B16, V7.B16
   679  
   680  	AESE  V20.B16, V0.B16
   681  	AESMC V0.B16, V0.B16
   682  	AESE  V20.B16, V1.B16
   683  	AESMC V1.B16, V1.B16
   684  	AESE  V20.B16, V2.B16
   685  	AESMC V2.B16, V2.B16
   686  	AESE  V20.B16, V3.B16
   687  	AESMC V3.B16, V3.B16
   688  	AESE  V20.B16, V4.B16
   689  	AESMC V4.B16, V4.B16
   690  	AESE  V20.B16, V5.B16
   691  	AESMC V5.B16, V5.B16
   692  	AESE  V20.B16, V6.B16
   693  	AESMC V6.B16, V6.B16
   694  	AESE  V20.B16, V7.B16
   695  	AESMC V7.B16, V7.B16
   696  
   697  	AESE V21.B16, V0.B16
   698  	AESE V21.B16, V1.B16
   699  	AESE V21.B16, V2.B16
   700  	AESE V21.B16, V3.B16
   701  	AESE V21.B16, V4.B16
   702  	AESE V21.B16, V5.B16
   703  	AESE V21.B16, V6.B16
   704  	AESE V21.B16, V7.B16
   705  
   706  	VEOR V0.B16, V22.B16, V0.B16
   707  	VEOR V1.B16, V22.B16, V1.B16
   708  	VEOR V2.B16, V22.B16, V2.B16
   709  	VEOR V3.B16, V22.B16, V3.B16
   710  	VEOR V4.B16, V22.B16, V4.B16
   711  	VEOR V5.B16, V22.B16, V5.B16
   712  	VEOR V6.B16, V22.B16, V6.B16
   713  	VEOR V7.B16, V22.B16, V7.B16
   714  
   715  	VLD1.P 64(SRC), [V23.B16, V24.B16, V25.B16, V26.B16]
   716  	VLD1.P 64(SRC), [V27.B16, V28.B16, V29.B16, V30.B16]
   717  	VEOR   V23.B16, V0.B16, V23.B16
   718  	VEOR   V24.B16, V1.B16, V24.B16
   719  	VEOR   V25.B16, V2.B16, V25.B16
   720  	VEOR   V26.B16, V3.B16, V26.B16
   721  	VEOR   V27.B16, V4.B16, V27.B16
   722  	VEOR   V28.B16, V5.B16, V28.B16
   723  	VEOR   V29.B16, V6.B16, V29.B16
   724  	VEOR   V30.B16, V7.B16, V30.B16
   725  	VST1.P [V23.B16, V24.B16, V25.B16, V26.B16], 64(DST)
   726  	VST1.P [V27.B16, V28.B16, V29.B16, V30.B16], 64(DST)
   727  
   728  	RET
   729  
   730  

View as plain text