ctr_arm64.s raw

   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