mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 11:08:02 -06:00
Windows: preserve volatile registers XMM6-XMM15 in 64-bit assembly of Camellia.
This commit is contained in:
@@ -248,6 +248,18 @@ _camellia_ecb_enc_16way:
|
|||||||
.ifdef WINABI
|
.ifdef WINABI
|
||||||
pushq %rsi
|
pushq %rsi
|
||||||
pushq %rdi
|
pushq %rdi
|
||||||
|
subq $168, %rsp # 8 bytes to align stack and 16*10 bytes to store xmm register
|
||||||
|
vmovdqa %xmm6, 0*16 (%rsp)
|
||||||
|
vmovdqa %xmm7, 1*16 (%rsp)
|
||||||
|
vmovdqa %xmm8, 2*16 (%rsp)
|
||||||
|
vmovdqa %xmm9, 3*16 (%rsp)
|
||||||
|
vmovdqa %xmm10, 4*16 (%rsp)
|
||||||
|
vmovdqa %xmm11, 5*16 (%rsp)
|
||||||
|
vmovdqa %xmm12, 6*16 (%rsp)
|
||||||
|
vmovdqa %xmm13, 7*16 (%rsp)
|
||||||
|
vmovdqa %xmm14, 8*16 (%rsp)
|
||||||
|
vmovdqa %xmm15, 9*16 (%rsp)
|
||||||
|
|
||||||
movq %rcx, %rdi;
|
movq %rcx, %rdi;
|
||||||
movq %rdx, %rsi;
|
movq %rdx, %rsi;
|
||||||
movq %r8, %rdx;
|
movq %r8, %rdx;
|
||||||
@@ -271,6 +283,20 @@ movq %r8, %rdx;
|
|||||||
vzeroupper;
|
vzeroupper;
|
||||||
|
|
||||||
.ifdef WINABI
|
.ifdef WINABI
|
||||||
|
|
||||||
|
vmovdqa 0*16 (%rsp), %xmm6
|
||||||
|
vmovdqa 1*16 (%rsp), %xmm7
|
||||||
|
vmovdqa 2*16 (%rsp), %xmm8
|
||||||
|
vmovdqa 3*16 (%rsp), %xmm9
|
||||||
|
vmovdqa 4*16 (%rsp), %xmm10
|
||||||
|
vmovdqa 5*16 (%rsp), %xmm11
|
||||||
|
vmovdqa 6*16 (%rsp), %xmm12
|
||||||
|
vmovdqa 7*16 (%rsp), %xmm13
|
||||||
|
vmovdqa 8*16 (%rsp), %xmm14
|
||||||
|
vmovdqa 9*16 (%rsp), %xmm15
|
||||||
|
|
||||||
|
addq $168, %rsp
|
||||||
|
|
||||||
popq %rdi
|
popq %rdi
|
||||||
popq %rsi
|
popq %rsi
|
||||||
.endif
|
.endif
|
||||||
@@ -287,6 +313,18 @@ _camellia_ecb_dec_16way:
|
|||||||
.ifdef WINABI
|
.ifdef WINABI
|
||||||
pushq %rsi
|
pushq %rsi
|
||||||
pushq %rdi
|
pushq %rdi
|
||||||
|
subq $168, %rsp # 8 bytes to align stack and 16*10 bytes to store xmm register
|
||||||
|
vmovdqa %xmm6, 0*16 (%rsp)
|
||||||
|
vmovdqa %xmm7, 1*16 (%rsp)
|
||||||
|
vmovdqa %xmm8, 2*16 (%rsp)
|
||||||
|
vmovdqa %xmm9, 3*16 (%rsp)
|
||||||
|
vmovdqa %xmm10, 4*16 (%rsp)
|
||||||
|
vmovdqa %xmm11, 5*16 (%rsp)
|
||||||
|
vmovdqa %xmm12, 6*16 (%rsp)
|
||||||
|
vmovdqa %xmm13, 7*16 (%rsp)
|
||||||
|
vmovdqa %xmm14, 8*16 (%rsp)
|
||||||
|
vmovdqa %xmm15, 9*16 (%rsp)
|
||||||
|
|
||||||
movq %rcx, %rdi;
|
movq %rcx, %rdi;
|
||||||
movq %rdx, %rsi;
|
movq %rdx, %rsi;
|
||||||
movq %r8, %rdx;
|
movq %r8, %rdx;
|
||||||
@@ -315,524 +353,25 @@ movq %r8, %rdx;
|
|||||||
vzeroupper;
|
vzeroupper;
|
||||||
|
|
||||||
.ifdef WINABI
|
.ifdef WINABI
|
||||||
|
vmovdqa 0*16 (%rsp), %xmm6
|
||||||
|
vmovdqa 1*16 (%rsp), %xmm7
|
||||||
|
vmovdqa 2*16 (%rsp), %xmm8
|
||||||
|
vmovdqa 3*16 (%rsp), %xmm9
|
||||||
|
vmovdqa 4*16 (%rsp), %xmm10
|
||||||
|
vmovdqa 5*16 (%rsp), %xmm11
|
||||||
|
vmovdqa 6*16 (%rsp), %xmm12
|
||||||
|
vmovdqa 7*16 (%rsp), %xmm13
|
||||||
|
vmovdqa 8*16 (%rsp), %xmm14
|
||||||
|
vmovdqa 9*16 (%rsp), %xmm15
|
||||||
|
|
||||||
|
addq $168, %rsp
|
||||||
|
|
||||||
popq %rdi
|
popq %rdi
|
||||||
popq %rsi
|
popq %rsi
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
ret;
|
ret;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.data
|
|
||||||
|
|
||||||
.align 16
|
|
||||||
.Linv_shift_row_and_unpcklbw:
|
|
||||||
.byte 0x00, 0xff, 0x0d, 0xff, 0x0a, 0xff, 0x07, 0xff
|
|
||||||
.byte 0x04, 0xff, 0x01, 0xff, 0x0e, 0xff, 0x0b, 0xff
|
|
||||||
.Lsp0044440444044404mask:
|
|
||||||
.long 0xffff0404, 0x0404ff04;
|
|
||||||
.long 0x0d0dff0d, 0x0d0dff0d;
|
|
||||||
.Lsp1110111010011110mask:
|
|
||||||
.long 0x000000ff, 0x000000ff;
|
|
||||||
.long 0x0bffff0b, 0x0b0b0bff;
|
|
||||||
.Lsp0222022222000222mask:
|
|
||||||
.long 0xff060606, 0xff060606;
|
|
||||||
.long 0x0c0cffff, 0xff0c0c0c;
|
|
||||||
.Lsp3033303303303033mask:
|
|
||||||
.long 0x04ff0404, 0x04ff0404;
|
|
||||||
.long 0xff0a0aff, 0x0aff0a0a;
|
|
||||||
.Lsbox4_input_mask:
|
|
||||||
.byte 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00;
|
|
||||||
.Lsigma1:
|
|
||||||
.long 0x3BCC908B, 0xA09E667F;
|
|
||||||
.Lsigma2:
|
|
||||||
.long 0x4CAA73B2, 0xB67AE858;
|
|
||||||
.Lsigma3:
|
|
||||||
.long 0xE94F82BE, 0xC6EF372F;
|
|
||||||
.Lsigma4:
|
|
||||||
.long 0xF1D36F1C, 0x54FF53A5;
|
|
||||||
.Lsigma5:
|
|
||||||
.long 0xDE682D1D, 0x10E527FA;
|
|
||||||
.Lsigma6:
|
|
||||||
.long 0xB3E6C1FD, 0xB05688C2;
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
.align 8
|
|
||||||
|
|
||||||
.globl camellia_setup256
|
|
||||||
.globl _camellia_setup256
|
|
||||||
camellia_setup256:
|
|
||||||
_camellia_setup256:
|
|
||||||
|
|
||||||
vzeroupper;
|
|
||||||
|
|
||||||
vmovdqu (%rsi), %xmm0;
|
|
||||||
vmovdqu 16(%rsi), %xmm1;
|
|
||||||
|
|
||||||
vpshufb .Lbswap128_mask(%rip), %xmm0, %xmm0;
|
|
||||||
vpshufb .Lbswap128_mask(%rip), %xmm1, %xmm1;
|
|
||||||
|
|
||||||
vmovdqa .Linv_shift_row_and_unpcklbw(%rip), %xmm11;
|
|
||||||
vmovq .Lsbox4_input_mask(%rip), %xmm12;
|
|
||||||
vbroadcastss .L0f0f0f0f(%rip), %xmm13;
|
|
||||||
vmovdqa .Lpre_tf_lo_s1(%rip), %xmm14;
|
|
||||||
vmovdqa .Lpre_tf_hi_s1(%rip), %xmm15;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
vpxor %xmm0, %xmm1, %xmm3;
|
|
||||||
vpsrldq $8, %xmm1, %xmm6;
|
|
||||||
vpsrldq $8, %xmm3, %xmm2;
|
|
||||||
vpslldq $8, %xmm3, %xmm3;
|
|
||||||
vpsrldq $8, %xmm3, %xmm3;
|
|
||||||
|
|
||||||
vmovq .Lsigma1(%rip), %xmm5; vpxor %xmm4, %xmm4, %xmm9; vpxor %xmm2, %xmm5, %xmm4; vpand %xmm4, %xmm12, %xmm5; vpandn %xmm4, %xmm12, %xmm4; vpaddw %xmm5, %xmm5, %xmm7; vpsrlw $7, %xmm5, %xmm5; vpor %xmm5, %xmm7, %xmm5; vpand %xmm12, %xmm5, %xmm5; vpor %xmm5, %xmm4, %xmm4; vmovdqa .Lpost_tf_lo_s1(%rip), %xmm5; vmovdqa .Lpost_tf_hi_s1(%rip), %xmm7; vpand %xmm4, %xmm13, %xmm8; vpandn %xmm4, %xmm13, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm8, %xmm14, %xmm8; vpshufb %xmm4, %xmm15, %xmm4; vpxor %xmm8, %xmm4, %xmm4;; vaesenclast %xmm9, %xmm4, %xmm4; vpand %xmm4, %xmm13, %xmm8; vpandn %xmm4, %xmm13, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm8, %xmm5, %xmm8; vpshufb %xmm4, %xmm7, %xmm4; vpxor %xmm8, %xmm4, %xmm4;; vpshufb %xmm11, %xmm4, %xmm7; vpshufb .Lsp0044440444044404mask(%rip), %xmm4, %xmm10; vpshufb .Lsp1110111010011110mask(%rip), %xmm4, %xmm4; vpaddb %xmm7, %xmm7, %xmm8; vpsrlw $7, %xmm7, %xmm5; vpsllw $7, %xmm7, %xmm9; vpor %xmm5, %xmm8, %xmm5; vpsrlw $1, %xmm7, %xmm7; vpshufb .Lsp0222022222000222mask(%rip), %xmm5, %xmm5; vpor %xmm7, %xmm9, %xmm7; vpxor %xmm4, %xmm10, %xmm10; vpshufb .Lsp3033303303303033mask(%rip), %xmm7, %xmm7; vpxor %xmm10, %xmm5, %xmm5; vpxor %xmm7, %xmm5, %xmm5; vpsrldq $8, %xmm5, %xmm4; vpxor %xmm5, %xmm4, %xmm4;;
|
|
||||||
|
|
||||||
|
|
||||||
vpxor %xmm4, %xmm3, %xmm3;
|
|
||||||
vmovq .Lsigma2(%rip), %xmm5; vpxor %xmm2, %xmm2, %xmm9; vpxor %xmm3, %xmm5, %xmm2; vpand %xmm2, %xmm12, %xmm5; vpandn %xmm2, %xmm12, %xmm2; vpaddw %xmm5, %xmm5, %xmm7; vpsrlw $7, %xmm5, %xmm5; vpor %xmm5, %xmm7, %xmm5; vpand %xmm12, %xmm5, %xmm5; vpor %xmm5, %xmm2, %xmm2; vmovdqa .Lpost_tf_lo_s1(%rip), %xmm5; vmovdqa .Lpost_tf_hi_s1(%rip), %xmm7; vpand %xmm2, %xmm13, %xmm8; vpandn %xmm2, %xmm13, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm8, %xmm14, %xmm8; vpshufb %xmm2, %xmm15, %xmm2; vpxor %xmm8, %xmm2, %xmm2;; vaesenclast %xmm9, %xmm2, %xmm2; vpand %xmm2, %xmm13, %xmm8; vpandn %xmm2, %xmm13, %xmm2; vpsrld $4, %xmm2, %xmm2; vpshufb %xmm8, %xmm5, %xmm8; vpshufb %xmm2, %xmm7, %xmm2; vpxor %xmm8, %xmm2, %xmm2;; vpshufb %xmm11, %xmm2, %xmm7; vpshufb .Lsp0044440444044404mask(%rip), %xmm2, %xmm10; vpshufb .Lsp1110111010011110mask(%rip), %xmm2, %xmm2; vpaddb %xmm7, %xmm7, %xmm8; vpsrlw $7, %xmm7, %xmm5; vpsllw $7, %xmm7, %xmm9; vpor %xmm5, %xmm8, %xmm5; vpsrlw $1, %xmm7, %xmm7; vpshufb .Lsp0222022222000222mask(%rip), %xmm5, %xmm5; vpor %xmm7, %xmm9, %xmm7; vpxor %xmm2, %xmm10, %xmm10; vpshufb .Lsp3033303303303033mask(%rip), %xmm7, %xmm7; vpxor %xmm10, %xmm5, %xmm5; vpxor %xmm7, %xmm5, %xmm5; vpsrldq $8, %xmm5, %xmm2; vpxor %xmm5, %xmm2, %xmm2;;
|
|
||||||
|
|
||||||
|
|
||||||
vpxor %xmm6, %xmm2, %xmm2;
|
|
||||||
vmovq .Lsigma3(%rip), %xmm5; vpxor %xmm3, %xmm3, %xmm9; vpxor %xmm2, %xmm5, %xmm3; vpand %xmm3, %xmm12, %xmm5; vpandn %xmm3, %xmm12, %xmm3; vpaddw %xmm5, %xmm5, %xmm7; vpsrlw $7, %xmm5, %xmm5; vpor %xmm5, %xmm7, %xmm5; vpand %xmm12, %xmm5, %xmm5; vpor %xmm5, %xmm3, %xmm3; vmovdqa .Lpost_tf_lo_s1(%rip), %xmm5; vmovdqa .Lpost_tf_hi_s1(%rip), %xmm7; vpand %xmm3, %xmm13, %xmm8; vpandn %xmm3, %xmm13, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm8, %xmm14, %xmm8; vpshufb %xmm3, %xmm15, %xmm3; vpxor %xmm8, %xmm3, %xmm3;; vaesenclast %xmm9, %xmm3, %xmm3; vpand %xmm3, %xmm13, %xmm8; vpandn %xmm3, %xmm13, %xmm3; vpsrld $4, %xmm3, %xmm3; vpshufb %xmm8, %xmm5, %xmm8; vpshufb %xmm3, %xmm7, %xmm3; vpxor %xmm8, %xmm3, %xmm3;; vpshufb %xmm11, %xmm3, %xmm7; vpshufb .Lsp0044440444044404mask(%rip), %xmm3, %xmm10; vpshufb .Lsp1110111010011110mask(%rip), %xmm3, %xmm3; vpaddb %xmm7, %xmm7, %xmm8; vpsrlw $7, %xmm7, %xmm5; vpsllw $7, %xmm7, %xmm9; vpor %xmm5, %xmm8, %xmm5; vpsrlw $1, %xmm7, %xmm7; vpshufb .Lsp0222022222000222mask(%rip), %xmm5, %xmm5; vpor %xmm7, %xmm9, %xmm7; vpxor %xmm3, %xmm10, %xmm10; vpshufb .Lsp3033303303303033mask(%rip), %xmm7, %xmm7; vpxor %xmm10, %xmm5, %xmm5; vpxor %xmm7, %xmm5, %xmm5; vpsrldq $8, %xmm5, %xmm3; vpxor %xmm5, %xmm3, %xmm3;;
|
|
||||||
|
|
||||||
|
|
||||||
vpxor %xmm4, %xmm3, %xmm3;
|
|
||||||
vpxor %xmm1, %xmm3, %xmm3;
|
|
||||||
vmovq .Lsigma4(%rip), %xmm5; vpxor %xmm4, %xmm4, %xmm9; vpxor %xmm3, %xmm5, %xmm4; vpand %xmm4, %xmm12, %xmm5; vpandn %xmm4, %xmm12, %xmm4; vpaddw %xmm5, %xmm5, %xmm7; vpsrlw $7, %xmm5, %xmm5; vpor %xmm5, %xmm7, %xmm5; vpand %xmm12, %xmm5, %xmm5; vpor %xmm5, %xmm4, %xmm4; vmovdqa .Lpost_tf_lo_s1(%rip), %xmm5; vmovdqa .Lpost_tf_hi_s1(%rip), %xmm7; vpand %xmm4, %xmm13, %xmm8; vpandn %xmm4, %xmm13, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm8, %xmm14, %xmm8; vpshufb %xmm4, %xmm15, %xmm4; vpxor %xmm8, %xmm4, %xmm4;; vaesenclast %xmm9, %xmm4, %xmm4; vpand %xmm4, %xmm13, %xmm8; vpandn %xmm4, %xmm13, %xmm4; vpsrld $4, %xmm4, %xmm4; vpshufb %xmm8, %xmm5, %xmm8; vpshufb %xmm4, %xmm7, %xmm4; vpxor %xmm8, %xmm4, %xmm4;; vpshufb %xmm11, %xmm4, %xmm7; vpshufb .Lsp0044440444044404mask(%rip), %xmm4, %xmm10; vpshufb .Lsp1110111010011110mask(%rip), %xmm4, %xmm4; vpaddb %xmm7, %xmm7, %xmm8; vpsrlw $7, %xmm7, %xmm5; vpsllw $7, %xmm7, %xmm9; vpor %xmm5, %xmm8, %xmm5; vpsrlw $1, %xmm7, %xmm7; vpshufb .Lsp0222022222000222mask(%rip), %xmm5, %xmm5; vpor %xmm7, %xmm9, %xmm7; vpxor %xmm4, %xmm10, %xmm10; vpshufb .Lsp3033303303303033mask(%rip), %xmm7, %xmm7; vpxor %xmm10, %xmm5, %xmm5; vpxor %xmm7, %xmm5, %xmm5; vpsrldq $8, %xmm5, %xmm4; vpxor %xmm5, %xmm4, %xmm4;;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
vpslldq $8, %xmm3, %xmm3;
|
|
||||||
vpxor %xmm4, %xmm2, %xmm2;
|
|
||||||
vpsrldq $8, %xmm3, %xmm3;
|
|
||||||
vpslldq $8, %xmm2, %xmm2;
|
|
||||||
vpor %xmm3, %xmm2, %xmm2;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
vpxor %xmm2, %xmm1, %xmm3;
|
|
||||||
vpsrldq $8, %xmm3, %xmm4;
|
|
||||||
vpslldq $8, %xmm3, %xmm3;
|
|
||||||
vpsrldq $8, %xmm3, %xmm3;
|
|
||||||
|
|
||||||
vmovq .Lsigma5(%rip), %xmm6; vpxor %xmm5, %xmm5, %xmm9; vpxor %xmm4, %xmm6, %xmm5; vpand %xmm5, %xmm12, %xmm6; vpandn %xmm5, %xmm12, %xmm5; vpaddw %xmm6, %xmm6, %xmm7; vpsrlw $7, %xmm6, %xmm6; vpor %xmm6, %xmm7, %xmm6; vpand %xmm12, %xmm6, %xmm6; vpor %xmm6, %xmm5, %xmm5; vmovdqa .Lpost_tf_lo_s1(%rip), %xmm6; vmovdqa .Lpost_tf_hi_s1(%rip), %xmm7; vpand %xmm5, %xmm13, %xmm8; vpandn %xmm5, %xmm13, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm8, %xmm14, %xmm8; vpshufb %xmm5, %xmm15, %xmm5; vpxor %xmm8, %xmm5, %xmm5;; vaesenclast %xmm9, %xmm5, %xmm5; vpand %xmm5, %xmm13, %xmm8; vpandn %xmm5, %xmm13, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm8, %xmm6, %xmm8; vpshufb %xmm5, %xmm7, %xmm5; vpxor %xmm8, %xmm5, %xmm5;; vpshufb %xmm11, %xmm5, %xmm7; vpshufb .Lsp0044440444044404mask(%rip), %xmm5, %xmm10; vpshufb .Lsp1110111010011110mask(%rip), %xmm5, %xmm5; vpaddb %xmm7, %xmm7, %xmm8; vpsrlw $7, %xmm7, %xmm6; vpsllw $7, %xmm7, %xmm9; vpor %xmm6, %xmm8, %xmm6; vpsrlw $1, %xmm7, %xmm7; vpshufb .Lsp0222022222000222mask(%rip), %xmm6, %xmm6; vpor %xmm7, %xmm9, %xmm7; vpxor %xmm5, %xmm10, %xmm10; vpshufb .Lsp3033303303303033mask(%rip), %xmm7, %xmm7; vpxor %xmm10, %xmm6, %xmm6; vpxor %xmm7, %xmm6, %xmm6; vpsrldq $8, %xmm6, %xmm5; vpxor %xmm6, %xmm5, %xmm5;;
|
|
||||||
|
|
||||||
|
|
||||||
vpxor %xmm5, %xmm3, %xmm3;
|
|
||||||
|
|
||||||
vmovq .Lsigma6(%rip), %xmm6; vpxor %xmm5, %xmm5, %xmm9; vpxor %xmm3, %xmm6, %xmm5; vpand %xmm5, %xmm12, %xmm6; vpandn %xmm5, %xmm12, %xmm5; vpaddw %xmm6, %xmm6, %xmm7; vpsrlw $7, %xmm6, %xmm6; vpor %xmm6, %xmm7, %xmm6; vpand %xmm12, %xmm6, %xmm6; vpor %xmm6, %xmm5, %xmm5; vmovdqa .Lpost_tf_lo_s1(%rip), %xmm6; vmovdqa .Lpost_tf_hi_s1(%rip), %xmm7; vpand %xmm5, %xmm13, %xmm8; vpandn %xmm5, %xmm13, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm8, %xmm14, %xmm8; vpshufb %xmm5, %xmm15, %xmm5; vpxor %xmm8, %xmm5, %xmm5;; vaesenclast %xmm9, %xmm5, %xmm5; vpand %xmm5, %xmm13, %xmm8; vpandn %xmm5, %xmm13, %xmm5; vpsrld $4, %xmm5, %xmm5; vpshufb %xmm8, %xmm6, %xmm8; vpshufb %xmm5, %xmm7, %xmm5; vpxor %xmm8, %xmm5, %xmm5;; vpshufb %xmm11, %xmm5, %xmm7; vpshufb .Lsp0044440444044404mask(%rip), %xmm5, %xmm10; vpshufb .Lsp1110111010011110mask(%rip), %xmm5, %xmm5; vpaddb %xmm7, %xmm7, %xmm8; vpsrlw $7, %xmm7, %xmm6; vpsllw $7, %xmm7, %xmm9; vpor %xmm6, %xmm8, %xmm6; vpsrlw $1, %xmm7, %xmm7; vpshufb .Lsp0222022222000222mask(%rip), %xmm6, %xmm6; vpor %xmm7, %xmm9, %xmm7; vpxor %xmm5, %xmm10, %xmm10; vpshufb .Lsp3033303303303033mask(%rip), %xmm7, %xmm7; vpxor %xmm10, %xmm6, %xmm6; vpxor %xmm7, %xmm6, %xmm6; vpsrldq $8, %xmm6, %xmm5; vpxor %xmm6, %xmm5, %xmm5;;
|
|
||||||
|
|
||||||
|
|
||||||
vpslldq $8, %xmm3, %xmm3;
|
|
||||||
vpxor %xmm5, %xmm4, %xmm4;
|
|
||||||
vpsrldq $8, %xmm3, %xmm3;
|
|
||||||
vpslldq $8, %xmm4, %xmm4;
|
|
||||||
vpor %xmm3, %xmm4, %xmm3;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
vmovdqu %xmm3, (((32)*8))(%rdi);
|
|
||||||
vpshufd $0x4e, %xmm1, %xmm4; vpsllq $(15), %xmm1, %xmm15; vpsrlq $(64-(15)), %xmm4, %xmm4; vpaddd %xmm15, %xmm4, %xmm4;;
|
|
||||||
vpshufd $0x4e, %xmm2, %xmm5; vpsllq $(15), %xmm2, %xmm15; vpsrlq $(64-(15)), %xmm5, %xmm5; vpaddd %xmm15, %xmm5, %xmm5;;
|
|
||||||
vpshufd $0x4e, %xmm1, %xmm6; vpsllq $(30), %xmm1, %xmm15; vpsrlq $(64-(30)), %xmm6, %xmm6; vpaddd %xmm15, %xmm6, %xmm6;;
|
|
||||||
vpshufd $0x4e, %xmm3, %xmm7; vpsllq $(30), %xmm3, %xmm15; vpsrlq $(64-(30)), %xmm7, %xmm7; vpaddd %xmm15, %xmm7, %xmm7;;
|
|
||||||
vpshufd $0x4e, %xmm0, %xmm8; vpsllq $(45), %xmm0, %xmm15; vpsrlq $(64-(45)), %xmm8, %xmm8; vpaddd %xmm15, %xmm8, %xmm8;;
|
|
||||||
vpshufd $0x4e, %xmm2, %xmm9; vpsllq $(45), %xmm2, %xmm15; vpsrlq $(64-(45)), %xmm9, %xmm9; vpaddd %xmm15, %xmm9, %xmm9;;
|
|
||||||
vpshufd $0x4e, %xmm0, %xmm10; vpsllq $(60), %xmm0, %xmm15; vpsrlq $(64-(60)), %xmm10, %xmm10; vpaddd %xmm15, %xmm10, %xmm10;;
|
|
||||||
vpshufd $0x4e, %xmm1, %xmm11; vpsllq $(60), %xmm1, %xmm15; vpsrlq $(64-(60)), %xmm11, %xmm11; vpaddd %xmm15, %xmm11, %xmm11;;
|
|
||||||
vpshufd $0x4e, %xmm3, %xmm12; vpsllq $(60), %xmm3, %xmm15; vpsrlq $(64-(60)), %xmm12, %xmm12; vpaddd %xmm15, %xmm12, %xmm12;;
|
|
||||||
|
|
||||||
|
|
||||||
vpslldq $8, %xmm0, %xmm15;
|
|
||||||
vpsrldq $8, %xmm15, %xmm15;
|
|
||||||
vpxor %xmm15, %xmm3, %xmm3;
|
|
||||||
vpxor %xmm15, %xmm4, %xmm4;
|
|
||||||
vpxor %xmm15, %xmm5, %xmm5;
|
|
||||||
|
|
||||||
|
|
||||||
vpandn %xmm15, %xmm6, %xmm13;
|
|
||||||
vpslldq $12, %xmm13, %xmm13;
|
|
||||||
vpsrldq $8, %xmm13, %xmm13;
|
|
||||||
vpxor %xmm13, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpand %xmm15, %xmm6, %xmm14;
|
|
||||||
vpslld $1, %xmm14, %xmm13;
|
|
||||||
vpsrld $31, %xmm14, %xmm14;
|
|
||||||
vpaddd %xmm13, %xmm14, %xmm14;
|
|
||||||
vpslldq $8, %xmm14, %xmm14;
|
|
||||||
vpsrldq $12, %xmm14, %xmm14;
|
|
||||||
vpxor %xmm14, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpxor %xmm15, %xmm7, %xmm7;
|
|
||||||
vpxor %xmm15, %xmm8, %xmm8;
|
|
||||||
vpxor %xmm15, %xmm9, %xmm9;
|
|
||||||
|
|
||||||
vpshufd $0x1b, %xmm0, %xmm0;
|
|
||||||
vpshufd $0x1b, %xmm3, %xmm3;
|
|
||||||
vpshufd $0x1b, %xmm4, %xmm4;
|
|
||||||
vpshufd $0x1b, %xmm5, %xmm5;
|
|
||||||
vpshufd $0x1b, %xmm6, %xmm6;
|
|
||||||
vpshufd $0x1b, %xmm7, %xmm7;
|
|
||||||
vpshufd $0x1b, %xmm8, %xmm8;
|
|
||||||
vpshufd $0x1b, %xmm9, %xmm9;
|
|
||||||
|
|
||||||
vmovdqu %xmm0, (((0)*8))(%rdi);
|
|
||||||
vpshufd $0x1b, %xmm0, %xmm0;
|
|
||||||
vmovdqu %xmm3, (((2)*8))(%rdi);
|
|
||||||
vmovdqu %xmm4, (((4)*8))(%rdi);
|
|
||||||
vmovdqu %xmm5, (((6)*8))(%rdi);
|
|
||||||
vmovdqu %xmm6, (((8)*8))(%rdi);
|
|
||||||
vmovdqu %xmm7, (((10)*8))(%rdi);
|
|
||||||
vmovdqu %xmm8, (((12)*8))(%rdi);
|
|
||||||
vmovdqu %xmm9, (((14)*8))(%rdi);
|
|
||||||
|
|
||||||
vmovdqu (((32)*8))(%rdi), %xmm3;
|
|
||||||
|
|
||||||
|
|
||||||
vpandn %xmm15, %xmm10, %xmm13;
|
|
||||||
vpslldq $12, %xmm13, %xmm13;
|
|
||||||
vpsrldq $8, %xmm13, %xmm13;
|
|
||||||
vpxor %xmm13, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpand %xmm15, %xmm10, %xmm14;
|
|
||||||
vpslld $1, %xmm14, %xmm13;
|
|
||||||
vpsrld $31, %xmm14, %xmm14;
|
|
||||||
vpaddd %xmm13, %xmm14, %xmm14;
|
|
||||||
vpslldq $8, %xmm14, %xmm14;
|
|
||||||
vpsrldq $12, %xmm14, %xmm14;
|
|
||||||
vpxor %xmm14, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpxor %xmm15, %xmm11, %xmm11;
|
|
||||||
vpxor %xmm15, %xmm12, %xmm12;
|
|
||||||
|
|
||||||
vpshufd $0x4e, %xmm0, %xmm4; vpsrlq $(128-77), %xmm0, %xmm14; vpsllq $(64-(128-77)), %xmm4, %xmm4; vpaddd %xmm14, %xmm4, %xmm4;;
|
|
||||||
vpshufd $0x4e, %xmm2, %xmm5; vpsrlq $(128-77), %xmm2, %xmm14; vpsllq $(64-(128-77)), %xmm5, %xmm5; vpaddd %xmm14, %xmm5, %xmm5;;
|
|
||||||
vpshufd $0x4e, %xmm1, %xmm6; vpsrlq $(128-94), %xmm1, %xmm14; vpsllq $(64-(128-94)), %xmm6, %xmm6; vpaddd %xmm14, %xmm6, %xmm6;;
|
|
||||||
vpshufd $0x4e, %xmm2, %xmm7; vpsrlq $(128-94), %xmm2, %xmm14; vpsllq $(64-(128-94)), %xmm7, %xmm7; vpaddd %xmm14, %xmm7, %xmm7;;
|
|
||||||
vpshufd $0x4e, %xmm0, %xmm8; vpsrlq $(128-111), %xmm0, %xmm14; vpsllq $(64-(128-111)), %xmm8, %xmm8; vpaddd %xmm14, %xmm8, %xmm8;;
|
|
||||||
vpshufd $0x4e, %xmm3, %xmm9; vpsrlq $(128-111), %xmm3, %xmm14; vpsllq $(64-(128-111)), %xmm9, %xmm9; vpaddd %xmm14, %xmm9, %xmm9;;
|
|
||||||
|
|
||||||
vpxor %xmm15, %xmm4, %xmm4;
|
|
||||||
|
|
||||||
vpshufd $0x1b, %xmm10, %xmm10;
|
|
||||||
vpshufd $0x1b, %xmm11, %xmm11;
|
|
||||||
vpshufd $0x1b, %xmm12, %xmm12;
|
|
||||||
vpshufd $0x1b, %xmm4, %xmm4;
|
|
||||||
|
|
||||||
vmovdqu %xmm10, (((16)*8))(%rdi);
|
|
||||||
vmovdqu %xmm11, (((18)*8))(%rdi);
|
|
||||||
vmovdqu %xmm12, (((20)*8))(%rdi);
|
|
||||||
vmovdqu %xmm4, (((22)*8))(%rdi);
|
|
||||||
|
|
||||||
|
|
||||||
vpandn %xmm15, %xmm5, %xmm13;
|
|
||||||
vpslldq $12, %xmm13, %xmm13;
|
|
||||||
vpsrldq $8, %xmm13, %xmm13;
|
|
||||||
vpxor %xmm13, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpand %xmm15, %xmm5, %xmm14;
|
|
||||||
vpslld $1, %xmm14, %xmm13;
|
|
||||||
vpsrld $31, %xmm14, %xmm14;
|
|
||||||
vpaddd %xmm13, %xmm14, %xmm14;
|
|
||||||
vpslldq $8, %xmm14, %xmm14;
|
|
||||||
vpsrldq $12, %xmm14, %xmm14;
|
|
||||||
vpxor %xmm14, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpxor %xmm15, %xmm6, %xmm6;
|
|
||||||
vpxor %xmm15, %xmm7, %xmm7;
|
|
||||||
vpxor %xmm15, %xmm8, %xmm8;
|
|
||||||
vpslldq $8, %xmm15, %xmm15;
|
|
||||||
vpxor %xmm15, %xmm9, %xmm9;
|
|
||||||
|
|
||||||
|
|
||||||
vpslldq $8, %xmm9, %xmm15;
|
|
||||||
vpxor %xmm15, %xmm8, %xmm8;
|
|
||||||
vpxor %xmm15, %xmm7, %xmm7;
|
|
||||||
vpxor %xmm15, %xmm6, %xmm6;
|
|
||||||
|
|
||||||
|
|
||||||
vpandn %xmm15, %xmm5, %xmm14;
|
|
||||||
vpslldq $4, %xmm14, %xmm14;
|
|
||||||
vpxor %xmm14, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpand %xmm15, %xmm5, %xmm14;
|
|
||||||
vpslld $1, %xmm14, %xmm13;
|
|
||||||
vpsrld $31, %xmm14, %xmm14;
|
|
||||||
vpaddd %xmm13, %xmm14, %xmm14;
|
|
||||||
vpsrldq $12, %xmm14, %xmm14;
|
|
||||||
vpslldq $8, %xmm14, %xmm14;
|
|
||||||
vpxor %xmm14, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpshufd $0x1b, %xmm5, %xmm5;
|
|
||||||
vpshufd $0x1b, %xmm6, %xmm6;
|
|
||||||
vpshufd $0x1b, %xmm7, %xmm7;
|
|
||||||
vpshufd $0x1b, %xmm8, %xmm8;
|
|
||||||
vpshufd $0x1b, %xmm9, %xmm9;
|
|
||||||
|
|
||||||
vmovdqu %xmm5, (((24)*8))(%rdi);
|
|
||||||
vmovdqu %xmm6, (((26)*8))(%rdi);
|
|
||||||
vmovdqu %xmm7, (((28)*8))(%rdi);
|
|
||||||
vmovdqu %xmm8, (((30)*8))(%rdi);
|
|
||||||
vmovdqu %xmm9, (((32)*8))(%rdi);
|
|
||||||
|
|
||||||
vpshufd $0x1b, (((22)*8))(%rdi), %xmm0;
|
|
||||||
vpshufd $0x1b, (((20)*8))(%rdi), %xmm1;
|
|
||||||
vpshufd $0x1b, (((18)*8))(%rdi), %xmm2;
|
|
||||||
vpshufd $0x1b, (((16)*8))(%rdi), %xmm3;
|
|
||||||
vpshufd $0x1b, (((14)*8))(%rdi), %xmm4;
|
|
||||||
vpshufd $0x1b, (((12)*8))(%rdi), %xmm5;
|
|
||||||
vpshufd $0x1b, (((10)*8))(%rdi), %xmm6;
|
|
||||||
vpshufd $0x1b, (((8)*8))(%rdi), %xmm7;
|
|
||||||
|
|
||||||
vpxor %xmm15, %xmm0, %xmm0;
|
|
||||||
vpxor %xmm15, %xmm1, %xmm1;
|
|
||||||
vpxor %xmm15, %xmm2, %xmm2;
|
|
||||||
|
|
||||||
|
|
||||||
vpandn %xmm15, %xmm3, %xmm14;
|
|
||||||
vpslldq $4, %xmm14, %xmm14;
|
|
||||||
vpxor %xmm14, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpand %xmm15, %xmm3, %xmm14;
|
|
||||||
vpslld $1, %xmm14, %xmm13;
|
|
||||||
vpsrld $31, %xmm14, %xmm14;
|
|
||||||
vpaddd %xmm13, %xmm14, %xmm14;
|
|
||||||
vpsrldq $12, %xmm14, %xmm14;
|
|
||||||
vpslldq $8, %xmm14, %xmm14;
|
|
||||||
vpxor %xmm14, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpxor %xmm15, %xmm4, %xmm4;
|
|
||||||
vpxor %xmm15, %xmm5, %xmm5;
|
|
||||||
vpxor %xmm15, %xmm6, %xmm6;
|
|
||||||
|
|
||||||
vpshufd $0x1b, %xmm0, %xmm0;
|
|
||||||
vpshufd $0x1b, %xmm1, %xmm1;
|
|
||||||
vpshufd $0x1b, %xmm2, %xmm2;
|
|
||||||
vpshufd $0x1b, %xmm4, %xmm4;
|
|
||||||
vpshufd $0x1b, %xmm5, %xmm5;
|
|
||||||
vpshufd $0x1b, %xmm6, %xmm6;
|
|
||||||
|
|
||||||
vmovdqu %xmm0, (((22)*8))(%rdi);
|
|
||||||
vmovdqu %xmm1, (((20)*8))(%rdi);
|
|
||||||
vmovdqu %xmm2, (((18)*8))(%rdi);
|
|
||||||
vmovdqu %xmm4, (((14)*8))(%rdi);
|
|
||||||
vmovdqu %xmm5, (((12)*8))(%rdi);
|
|
||||||
vmovdqu %xmm6, (((10)*8))(%rdi);
|
|
||||||
|
|
||||||
vpshufd $0x1b, (((6)*8))(%rdi), %xmm6;
|
|
||||||
vpshufd $0x1b, (((4)*8))(%rdi), %xmm4;
|
|
||||||
vpshufd $0x1b, (((2)*8))(%rdi), %xmm2;
|
|
||||||
vpshufd $0x1b, (((0)*8))(%rdi), %xmm0;
|
|
||||||
|
|
||||||
|
|
||||||
vpandn %xmm15, %xmm7, %xmm14;
|
|
||||||
vpslldq $4, %xmm14, %xmm14;
|
|
||||||
vpxor %xmm14, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpand %xmm15, %xmm7, %xmm14;
|
|
||||||
vpslld $1, %xmm14, %xmm13;
|
|
||||||
vpsrld $31, %xmm14, %xmm14;
|
|
||||||
vpaddd %xmm13, %xmm14, %xmm14;
|
|
||||||
vpsrldq $12, %xmm14, %xmm14;
|
|
||||||
vpslldq $8, %xmm14, %xmm14;
|
|
||||||
vpxor %xmm14, %xmm15, %xmm15;
|
|
||||||
|
|
||||||
vpxor %xmm15, %xmm6, %xmm6;
|
|
||||||
vpxor %xmm15, %xmm4, %xmm4;
|
|
||||||
vpxor %xmm15, %xmm2, %xmm2;
|
|
||||||
vpxor %xmm15, %xmm0, %xmm0;
|
|
||||||
|
|
||||||
vpshufd $0x1b, %xmm6, %xmm6;
|
|
||||||
vpshufd $0x1b, %xmm4, %xmm4;
|
|
||||||
vpshufd $0x1b, %xmm2, %xmm2;
|
|
||||||
vpshufd $0x1b, %xmm0, %xmm0;
|
|
||||||
|
|
||||||
vpsrldq $8, %xmm2, %xmm3;
|
|
||||||
vpsrldq $8, %xmm4, %xmm5;
|
|
||||||
vpsrldq $8, %xmm6, %xmm7;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
vpxor %xmm2, %xmm0, %xmm0;
|
|
||||||
vpxor %xmm4, %xmm2, %xmm2;
|
|
||||||
|
|
||||||
vmovq %xmm0, (((0)*8))(%rdi);
|
|
||||||
vmovq %xmm3, (((2)*8))(%rdi);
|
|
||||||
vpxor %xmm5, %xmm3, %xmm3;
|
|
||||||
vpxor %xmm6, %xmm4, %xmm4;
|
|
||||||
vpxor %xmm7, %xmm5, %xmm5;
|
|
||||||
vmovq %xmm2, (((3)*8))(%rdi);
|
|
||||||
vmovq %xmm3, (((4)*8))(%rdi);
|
|
||||||
vmovq %xmm4, (((5)*8))(%rdi);
|
|
||||||
vmovq %xmm5, (((6)*8))(%rdi);
|
|
||||||
|
|
||||||
vmovq (((7)*8))(%rdi), %xmm7;
|
|
||||||
vmovq (((8)*8))(%rdi), %xmm8;
|
|
||||||
vmovq (((9)*8))(%rdi), %xmm9;
|
|
||||||
vmovq (((10)*8))(%rdi), %xmm10;
|
|
||||||
|
|
||||||
vpandn %xmm10, %xmm8, %xmm15;
|
|
||||||
vpsrldq $4, %xmm15, %xmm15;
|
|
||||||
vpxor %xmm15, %xmm10, %xmm0;
|
|
||||||
|
|
||||||
vpand %xmm8, %xmm0, %xmm15;
|
|
||||||
vpslld $1, %xmm15, %xmm14;
|
|
||||||
vpsrld $31, %xmm15, %xmm15;
|
|
||||||
vpaddd %xmm14, %xmm15, %xmm15;
|
|
||||||
vpslldq $12, %xmm15, %xmm15;
|
|
||||||
vpsrldq $8, %xmm15, %xmm15;
|
|
||||||
vpxor %xmm15, %xmm0, %xmm0;
|
|
||||||
|
|
||||||
vpxor %xmm0, %xmm6, %xmm6;
|
|
||||||
vmovq %xmm6, (((7)*8))(%rdi);
|
|
||||||
|
|
||||||
vmovq (((11)*8))(%rdi), %xmm11;
|
|
||||||
vmovq (((12)*8))(%rdi), %xmm12;
|
|
||||||
vmovq (((13)*8))(%rdi), %xmm13;
|
|
||||||
vmovq (((14)*8))(%rdi), %xmm14;
|
|
||||||
vmovq (((15)*8))(%rdi), %xmm15;
|
|
||||||
|
|
||||||
vpandn %xmm7, %xmm9, %xmm1;
|
|
||||||
vpsrldq $4, %xmm1, %xmm1;
|
|
||||||
vpxor %xmm1, %xmm7, %xmm0;
|
|
||||||
|
|
||||||
vpand %xmm9, %xmm0, %xmm1;
|
|
||||||
vpslld $1, %xmm1, %xmm2;
|
|
||||||
vpsrld $31, %xmm1, %xmm1;
|
|
||||||
vpaddd %xmm2, %xmm1, %xmm1;
|
|
||||||
vpslldq $12, %xmm1, %xmm1;
|
|
||||||
vpsrldq $8, %xmm1, %xmm1;
|
|
||||||
vpxor %xmm1, %xmm0, %xmm0;
|
|
||||||
|
|
||||||
vpxor %xmm11, %xmm0, %xmm0;
|
|
||||||
vpxor %xmm12, %xmm10, %xmm10;
|
|
||||||
vpxor %xmm13, %xmm11, %xmm11;
|
|
||||||
vpxor %xmm14, %xmm12, %xmm12;
|
|
||||||
vpxor %xmm15, %xmm13, %xmm13;
|
|
||||||
vmovq %xmm0, (((10)*8))(%rdi);
|
|
||||||
vmovq %xmm10, (((11)*8))(%rdi);
|
|
||||||
vmovq %xmm11, (((12)*8))(%rdi);
|
|
||||||
vmovq %xmm12, (((13)*8))(%rdi);
|
|
||||||
vmovq %xmm13, (((14)*8))(%rdi);
|
|
||||||
|
|
||||||
vmovq (((16)*8))(%rdi), %xmm6;
|
|
||||||
vmovq (((17)*8))(%rdi), %xmm7;
|
|
||||||
vmovq (((18)*8))(%rdi), %xmm8;
|
|
||||||
vmovq (((19)*8))(%rdi), %xmm9;
|
|
||||||
vmovq (((20)*8))(%rdi), %xmm10;
|
|
||||||
|
|
||||||
vpandn %xmm8, %xmm6, %xmm1;
|
|
||||||
vpsrldq $4, %xmm1, %xmm1;
|
|
||||||
vpxor %xmm1, %xmm8, %xmm0;
|
|
||||||
|
|
||||||
vpand %xmm6, %xmm0, %xmm1;
|
|
||||||
vpslld $1, %xmm1, %xmm2;
|
|
||||||
vpsrld $31, %xmm1, %xmm1;
|
|
||||||
vpaddd %xmm2, %xmm1, %xmm1;
|
|
||||||
vpslldq $12, %xmm1, %xmm1;
|
|
||||||
vpsrldq $8, %xmm1, %xmm1;
|
|
||||||
vpxor %xmm1, %xmm0, %xmm0;
|
|
||||||
|
|
||||||
vpxor %xmm14, %xmm0, %xmm0;
|
|
||||||
vmovq %xmm0, (((15)*8))(%rdi);
|
|
||||||
|
|
||||||
|
|
||||||
vpandn %xmm15, %xmm7, %xmm1;
|
|
||||||
vpsrldq $4, %xmm1, %xmm1;
|
|
||||||
vpxor %xmm1, %xmm15, %xmm0;
|
|
||||||
|
|
||||||
vpand %xmm7, %xmm0, %xmm1;
|
|
||||||
vpslld $1, %xmm1, %xmm2;
|
|
||||||
vpsrld $31, %xmm1, %xmm1;
|
|
||||||
vpaddd %xmm2, %xmm1, %xmm1;
|
|
||||||
vpslldq $12, %xmm1, %xmm1;
|
|
||||||
vpsrldq $8, %xmm1, %xmm1;
|
|
||||||
vpxor %xmm1, %xmm0, %xmm0;
|
|
||||||
|
|
||||||
vmovq (((21)*8))(%rdi), %xmm1;
|
|
||||||
vmovq (((22)*8))(%rdi), %xmm2;
|
|
||||||
vmovq (((23)*8))(%rdi), %xmm3;
|
|
||||||
vmovq (((24)*8))(%rdi), %xmm4;
|
|
||||||
|
|
||||||
vpxor %xmm9, %xmm0, %xmm0;
|
|
||||||
vpxor %xmm10, %xmm8, %xmm8;
|
|
||||||
vpxor %xmm1, %xmm9, %xmm9;
|
|
||||||
vpxor %xmm2, %xmm10, %xmm10;
|
|
||||||
vpxor %xmm3, %xmm1, %xmm1;
|
|
||||||
|
|
||||||
vmovq %xmm0, (((18)*8))(%rdi);
|
|
||||||
vmovq %xmm8, (((19)*8))(%rdi);
|
|
||||||
vmovq %xmm9, (((20)*8))(%rdi);
|
|
||||||
vmovq %xmm10, (((21)*8))(%rdi);
|
|
||||||
vmovq %xmm1, (((22)*8))(%rdi);
|
|
||||||
|
|
||||||
vmovq (((25)*8))(%rdi), %xmm5;
|
|
||||||
vmovq (((26)*8))(%rdi), %xmm6;
|
|
||||||
vmovq (((27)*8))(%rdi), %xmm7;
|
|
||||||
vmovq (((28)*8))(%rdi), %xmm8;
|
|
||||||
vmovq (((29)*8))(%rdi), %xmm9;
|
|
||||||
vmovq (((30)*8))(%rdi), %xmm10;
|
|
||||||
vmovq (((31)*8))(%rdi), %xmm11;
|
|
||||||
vmovq (((32)*8))(%rdi), %xmm12;
|
|
||||||
|
|
||||||
|
|
||||||
vpandn %xmm6, %xmm4, %xmm15;
|
|
||||||
vpsrldq $4, %xmm15, %xmm15;
|
|
||||||
vpxor %xmm15, %xmm6, %xmm0;
|
|
||||||
|
|
||||||
vpand %xmm4, %xmm0, %xmm15;
|
|
||||||
vpslld $1, %xmm15, %xmm14;
|
|
||||||
vpsrld $31, %xmm15, %xmm15;
|
|
||||||
vpaddd %xmm14, %xmm15, %xmm15;
|
|
||||||
vpslldq $12, %xmm15, %xmm15;
|
|
||||||
vpsrldq $8, %xmm15, %xmm15;
|
|
||||||
vpxor %xmm15, %xmm0, %xmm0;
|
|
||||||
|
|
||||||
vpxor %xmm0, %xmm2, %xmm2;
|
|
||||||
vmovq %xmm2, (((23)*8))(%rdi);
|
|
||||||
|
|
||||||
|
|
||||||
vpandn %xmm3, %xmm5, %xmm15;
|
|
||||||
vpsrldq $4, %xmm15, %xmm15;
|
|
||||||
vpxor %xmm15, %xmm3, %xmm0;
|
|
||||||
|
|
||||||
vpand %xmm5, %xmm0, %xmm15;
|
|
||||||
vpslld $1, %xmm15, %xmm14;
|
|
||||||
vpsrld $31, %xmm15, %xmm15;
|
|
||||||
vpaddd %xmm14, %xmm15, %xmm15;
|
|
||||||
vpslldq $12, %xmm15, %xmm15;
|
|
||||||
vpsrldq $8, %xmm15, %xmm15;
|
|
||||||
vpxor %xmm15, %xmm0, %xmm0;
|
|
||||||
|
|
||||||
vpxor %xmm7, %xmm0, %xmm0;
|
|
||||||
vpxor %xmm8, %xmm6, %xmm6;
|
|
||||||
vpxor %xmm9, %xmm7, %xmm7;
|
|
||||||
vpxor %xmm10, %xmm8, %xmm8;
|
|
||||||
vpxor %xmm11, %xmm9, %xmm9;
|
|
||||||
vpxor %xmm12, %xmm11, %xmm11;
|
|
||||||
|
|
||||||
vmovq %xmm0, (((26)*8))(%rdi);
|
|
||||||
vmovq %xmm6, (((27)*8))(%rdi);
|
|
||||||
vmovq %xmm7, (((28)*8))(%rdi);
|
|
||||||
vmovq %xmm8, (((29)*8))(%rdi);
|
|
||||||
vmovq %xmm9, (((30)*8))(%rdi);
|
|
||||||
vmovq %xmm10, (((31)*8))(%rdi);
|
|
||||||
vmovq %xmm11, (((32)*8))(%rdi);
|
|
||||||
|
|
||||||
|
|
||||||
movq $0, (((1)*8))(%rdi);
|
|
||||||
movq $0, (((33)*8))(%rdi);
|
|
||||||
|
|
||||||
vzeroupper;
|
|
||||||
|
|
||||||
ret;
|
|
||||||
|
|
||||||
.ifndef __YASM__
|
.ifndef __YASM__
|
||||||
#if defined(__linux__) && defined(__ELF__)
|
#if defined(__linux__) && defined(__ELF__)
|
||||||
.section .note.GNU-stack,"",%progbits
|
.section .note.GNU-stack,"",%progbits
|
||||||
|
|||||||
Reference in New Issue
Block a user