You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
427 lines
5.4 KiB
427 lines
5.4 KiB
// This file is generated from a similarly-named Perl script in the BoringSSL |
|
// source tree. Do not edit by hand. |
|
|
|
#if defined(__has_feature) |
|
#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM) |
|
#define OPENSSL_NO_ASM |
|
#endif |
|
#endif |
|
|
|
#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM) |
|
#if defined(BORINGSSL_PREFIX) |
|
#include <boringssl_prefix_symbols_asm.h> |
|
#endif |
|
.text |
|
|
|
|
|
|
|
|
|
|
|
.type gcm_gmult_ssse3, @function |
|
.globl gcm_gmult_ssse3 |
|
.hidden gcm_gmult_ssse3 |
|
.align 16 |
|
gcm_gmult_ssse3: |
|
.cfi_startproc |
|
.Lgmult_seh_begin: |
|
movdqu (%rdi),%xmm0 |
|
movdqa .Lreverse_bytes(%rip),%xmm10 |
|
movdqa .Llow4_mask(%rip),%xmm2 |
|
|
|
|
|
.byte 102,65,15,56,0,194 |
|
|
|
|
|
movdqa %xmm2,%xmm1 |
|
pandn %xmm0,%xmm1 |
|
psrld $4,%xmm1 |
|
pand %xmm2,%xmm0 |
|
|
|
|
|
|
|
|
|
pxor %xmm2,%xmm2 |
|
pxor %xmm3,%xmm3 |
|
movq $5,%rax |
|
.Loop_row_1: |
|
movdqa (%rsi),%xmm4 |
|
leaq 16(%rsi),%rsi |
|
|
|
|
|
movdqa %xmm2,%xmm6 |
|
.byte 102,15,58,15,243,1 |
|
movdqa %xmm6,%xmm3 |
|
psrldq $1,%xmm2 |
|
|
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
.byte 102,15,56,0,224 |
|
.byte 102,15,56,0,233 |
|
|
|
|
|
pxor %xmm5,%xmm2 |
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
psllq $60,%xmm5 |
|
movdqa %xmm5,%xmm6 |
|
pslldq $8,%xmm6 |
|
pxor %xmm6,%xmm3 |
|
|
|
|
|
psrldq $8,%xmm5 |
|
pxor %xmm5,%xmm2 |
|
psrlq $4,%xmm4 |
|
pxor %xmm4,%xmm2 |
|
|
|
subq $1,%rax |
|
jnz .Loop_row_1 |
|
|
|
|
|
|
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $5,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
pxor %xmm3,%xmm3 |
|
movq $5,%rax |
|
.Loop_row_2: |
|
movdqa (%rsi),%xmm4 |
|
leaq 16(%rsi),%rsi |
|
|
|
|
|
movdqa %xmm2,%xmm6 |
|
.byte 102,15,58,15,243,1 |
|
movdqa %xmm6,%xmm3 |
|
psrldq $1,%xmm2 |
|
|
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
.byte 102,15,56,0,224 |
|
.byte 102,15,56,0,233 |
|
|
|
|
|
pxor %xmm5,%xmm2 |
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
psllq $60,%xmm5 |
|
movdqa %xmm5,%xmm6 |
|
pslldq $8,%xmm6 |
|
pxor %xmm6,%xmm3 |
|
|
|
|
|
psrldq $8,%xmm5 |
|
pxor %xmm5,%xmm2 |
|
psrlq $4,%xmm4 |
|
pxor %xmm4,%xmm2 |
|
|
|
subq $1,%rax |
|
jnz .Loop_row_2 |
|
|
|
|
|
|
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $5,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
pxor %xmm3,%xmm3 |
|
movq $6,%rax |
|
.Loop_row_3: |
|
movdqa (%rsi),%xmm4 |
|
leaq 16(%rsi),%rsi |
|
|
|
|
|
movdqa %xmm2,%xmm6 |
|
.byte 102,15,58,15,243,1 |
|
movdqa %xmm6,%xmm3 |
|
psrldq $1,%xmm2 |
|
|
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
.byte 102,15,56,0,224 |
|
.byte 102,15,56,0,233 |
|
|
|
|
|
pxor %xmm5,%xmm2 |
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
psllq $60,%xmm5 |
|
movdqa %xmm5,%xmm6 |
|
pslldq $8,%xmm6 |
|
pxor %xmm6,%xmm3 |
|
|
|
|
|
psrldq $8,%xmm5 |
|
pxor %xmm5,%xmm2 |
|
psrlq $4,%xmm4 |
|
pxor %xmm4,%xmm2 |
|
|
|
subq $1,%rax |
|
jnz .Loop_row_3 |
|
|
|
|
|
|
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $5,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
pxor %xmm3,%xmm3 |
|
|
|
.byte 102,65,15,56,0,210 |
|
movdqu %xmm2,(%rdi) |
|
|
|
|
|
pxor %xmm0,%xmm0 |
|
pxor %xmm1,%xmm1 |
|
pxor %xmm2,%xmm2 |
|
pxor %xmm3,%xmm3 |
|
pxor %xmm4,%xmm4 |
|
pxor %xmm5,%xmm5 |
|
pxor %xmm6,%xmm6 |
|
.byte 0xf3,0xc3 |
|
.Lgmult_seh_end: |
|
.cfi_endproc |
|
.size gcm_gmult_ssse3,.-gcm_gmult_ssse3 |
|
|
|
|
|
|
|
|
|
|
|
.type gcm_ghash_ssse3, @function |
|
.globl gcm_ghash_ssse3 |
|
.hidden gcm_ghash_ssse3 |
|
.align 16 |
|
gcm_ghash_ssse3: |
|
.Lghash_seh_begin: |
|
.cfi_startproc |
|
movdqu (%rdi),%xmm0 |
|
movdqa .Lreverse_bytes(%rip),%xmm10 |
|
movdqa .Llow4_mask(%rip),%xmm11 |
|
|
|
|
|
andq $-16,%rcx |
|
|
|
|
|
|
|
.byte 102,65,15,56,0,194 |
|
|
|
|
|
pxor %xmm3,%xmm3 |
|
.Loop_ghash: |
|
|
|
movdqu (%rdx),%xmm1 |
|
.byte 102,65,15,56,0,202 |
|
pxor %xmm1,%xmm0 |
|
|
|
|
|
movdqa %xmm11,%xmm1 |
|
pandn %xmm0,%xmm1 |
|
psrld $4,%xmm1 |
|
pand %xmm11,%xmm0 |
|
|
|
|
|
|
|
|
|
pxor %xmm2,%xmm2 |
|
|
|
movq $5,%rax |
|
.Loop_row_4: |
|
movdqa (%rsi),%xmm4 |
|
leaq 16(%rsi),%rsi |
|
|
|
|
|
movdqa %xmm2,%xmm6 |
|
.byte 102,15,58,15,243,1 |
|
movdqa %xmm6,%xmm3 |
|
psrldq $1,%xmm2 |
|
|
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
.byte 102,15,56,0,224 |
|
.byte 102,15,56,0,233 |
|
|
|
|
|
pxor %xmm5,%xmm2 |
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
psllq $60,%xmm5 |
|
movdqa %xmm5,%xmm6 |
|
pslldq $8,%xmm6 |
|
pxor %xmm6,%xmm3 |
|
|
|
|
|
psrldq $8,%xmm5 |
|
pxor %xmm5,%xmm2 |
|
psrlq $4,%xmm4 |
|
pxor %xmm4,%xmm2 |
|
|
|
subq $1,%rax |
|
jnz .Loop_row_4 |
|
|
|
|
|
|
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $5,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
pxor %xmm3,%xmm3 |
|
movq $5,%rax |
|
.Loop_row_5: |
|
movdqa (%rsi),%xmm4 |
|
leaq 16(%rsi),%rsi |
|
|
|
|
|
movdqa %xmm2,%xmm6 |
|
.byte 102,15,58,15,243,1 |
|
movdqa %xmm6,%xmm3 |
|
psrldq $1,%xmm2 |
|
|
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
.byte 102,15,56,0,224 |
|
.byte 102,15,56,0,233 |
|
|
|
|
|
pxor %xmm5,%xmm2 |
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
psllq $60,%xmm5 |
|
movdqa %xmm5,%xmm6 |
|
pslldq $8,%xmm6 |
|
pxor %xmm6,%xmm3 |
|
|
|
|
|
psrldq $8,%xmm5 |
|
pxor %xmm5,%xmm2 |
|
psrlq $4,%xmm4 |
|
pxor %xmm4,%xmm2 |
|
|
|
subq $1,%rax |
|
jnz .Loop_row_5 |
|
|
|
|
|
|
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $5,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
pxor %xmm3,%xmm3 |
|
movq $6,%rax |
|
.Loop_row_6: |
|
movdqa (%rsi),%xmm4 |
|
leaq 16(%rsi),%rsi |
|
|
|
|
|
movdqa %xmm2,%xmm6 |
|
.byte 102,15,58,15,243,1 |
|
movdqa %xmm6,%xmm3 |
|
psrldq $1,%xmm2 |
|
|
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
.byte 102,15,56,0,224 |
|
.byte 102,15,56,0,233 |
|
|
|
|
|
pxor %xmm5,%xmm2 |
|
|
|
|
|
|
|
movdqa %xmm4,%xmm5 |
|
psllq $60,%xmm5 |
|
movdqa %xmm5,%xmm6 |
|
pslldq $8,%xmm6 |
|
pxor %xmm6,%xmm3 |
|
|
|
|
|
psrldq $8,%xmm5 |
|
pxor %xmm5,%xmm2 |
|
psrlq $4,%xmm4 |
|
pxor %xmm4,%xmm2 |
|
|
|
subq $1,%rax |
|
jnz .Loop_row_6 |
|
|
|
|
|
|
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $1,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
psrlq $5,%xmm3 |
|
pxor %xmm3,%xmm2 |
|
pxor %xmm3,%xmm3 |
|
movdqa %xmm2,%xmm0 |
|
|
|
|
|
leaq -256(%rsi),%rsi |
|
|
|
|
|
leaq 16(%rdx),%rdx |
|
subq $16,%rcx |
|
jnz .Loop_ghash |
|
|
|
|
|
.byte 102,65,15,56,0,194 |
|
movdqu %xmm0,(%rdi) |
|
|
|
|
|
pxor %xmm0,%xmm0 |
|
pxor %xmm1,%xmm1 |
|
pxor %xmm2,%xmm2 |
|
pxor %xmm3,%xmm3 |
|
pxor %xmm4,%xmm4 |
|
pxor %xmm5,%xmm5 |
|
pxor %xmm6,%xmm6 |
|
.byte 0xf3,0xc3 |
|
.Lghash_seh_end: |
|
.cfi_endproc |
|
.size gcm_ghash_ssse3,.-gcm_ghash_ssse3 |
|
|
|
.align 16 |
|
|
|
|
|
.Lreverse_bytes: |
|
.byte 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 |
|
|
|
.Llow4_mask: |
|
.quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f |
|
#endif |
|
.section .note.GNU-stack,"",@progbits
|
|
|