123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- // 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
- .globl _gcm_gmult_ssse3
- .private_extern _gcm_gmult_ssse3
- .p2align 4
- _gcm_gmult_ssse3:
- L$gmult_seh_begin:
- movdqu (%rdi),%xmm0
- movdqa L$reverse_bytes(%rip),%xmm10
- movdqa L$low4_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
- L$oop_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 L$oop_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
- L$oop_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 L$oop_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
- L$oop_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 L$oop_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
- L$gmult_seh_end:
- .globl _gcm_ghash_ssse3
- .private_extern _gcm_ghash_ssse3
- .p2align 4
- _gcm_ghash_ssse3:
- L$ghash_seh_begin:
- movdqu (%rdi),%xmm0
- movdqa L$reverse_bytes(%rip),%xmm10
- movdqa L$low4_mask(%rip),%xmm11
- andq $-16,%rcx
- .byte 102,65,15,56,0,194
- pxor %xmm3,%xmm3
- L$oop_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
- L$oop_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 L$oop_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
- L$oop_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 L$oop_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
- L$oop_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 L$oop_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 L$oop_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
- L$ghash_seh_end:
- .p2align 4
- L$reverse_bytes:
- .byte 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
- L$low4_mask:
- .quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
- #endif
|