rind 0.1.12

Pure-Rust cryptography for MoQ, forked from graviola
Documentation
# Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Generated by admin/import-aws-lc from aws-lc 91c93a8eb860e51482a871a8772cb9b1b310baea:
# generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S, which aws-lc generates from crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl.
# Do not edit by hand.
.align	32
.cfi_startproc	


	xorq	%rax,%rax



	cmpq	$0x60,%rdx
	jb	.Laesni_gcm_gcm_dec_abort

	pushq	%rbp
.cfi_adjust_cfa_offset	8
.cfi_offset	%rbp,-16

	movq	%rsp,%rbp
.cfi_def_cfa_register	%rbp
	pushq	%rbx
.cfi_offset	%rbx,-24

	pushq	%r12
.cfi_offset	%r12,-32

	pushq	%r13
.cfi_offset	%r13,-40

	pushq	%r14
.cfi_offset	%r14,-48

	pushq	%r15
.cfi_offset	%r15,-56

	vzeroupper

	movq	16(%rbp),%r12
	vmovdqu	(%r8),%xmm1
	addq	$-128,%rsp
	movl	12(%r8),%ebx
	leaq	{bswap_mask}(%rip),%r11
	leaq	-128(%rcx),%r14
	movq	$0xf80,%r15
	vmovdqu	(%r12),%xmm8
	andq	$-128,%rsp
	vmovdqu	(%r11),%xmm0
	leaq	128(%rcx),%rcx
	leaq	32(%r9),%r9
	movl	240-128(%rcx),%r10d
	vpshufb	%xmm0,%xmm8,%xmm8

	andq	%r15,%r14
	andq	%rsp,%r15
	subq	%r14,%r15
	jc	.Laesni_gcm_dec_no_key_aliasing
	cmpq	$768,%r15
	jnc	.Laesni_gcm_dec_no_key_aliasing
	subq	%r15,%rsp
.Laesni_gcm_dec_no_key_aliasing:

	vmovdqu	80(%rdi),%xmm7
	movq	%rdi,%r14
	vmovdqu	64(%rdi),%xmm4







	leaq	-192(%rdi,%rdx,1),%r15

	vmovdqu	48(%rdi),%xmm5
	shrq	$4,%rdx
	xorq	%rax,%rax
	vmovdqu	32(%rdi),%xmm6
	vpshufb	%xmm0,%xmm7,%xmm7
	vmovdqu	16(%rdi),%xmm2
	vpshufb	%xmm0,%xmm4,%xmm4
	vmovdqu	(%rdi),%xmm3
	vpshufb	%xmm0,%xmm5,%xmm5
	vmovdqu	%xmm4,48(%rsp)
	vpshufb	%xmm0,%xmm6,%xmm6
	vmovdqu	%xmm5,64(%rsp)
	vpshufb	%xmm0,%xmm2,%xmm2
	vmovdqu	%xmm6,80(%rsp)
	vpshufb	%xmm0,%xmm3,%xmm3
	vmovdqu	%xmm2,96(%rsp)
	vmovdqu	%xmm3,112(%rsp)

	call	{aesni_ctr32_ghash_6x}

	movq	16(%rbp),%r12
	vmovups	%xmm9,-96(%rsi)
	vmovups	%xmm10,-80(%rsi)
	vmovups	%xmm11,-64(%rsi)
	vmovups	%xmm12,-48(%rsi)
	vmovups	%xmm13,-32(%rsi)
	vmovups	%xmm14,-16(%rsi)

	vpshufb	(%r11),%xmm8,%xmm8
	vmovdqu	%xmm8,(%r12)

	vzeroupper
	leaq	-40(%rbp),%rsp
.cfi_def_cfa	%rsp, 0x38
	popq	%r15
.cfi_adjust_cfa_offset	-8
.cfi_restore	%r15
	popq	%r14
.cfi_adjust_cfa_offset	-8
.cfi_restore	%r14
	popq	%r13
.cfi_adjust_cfa_offset	-8
.cfi_restore	%r13
	popq	%r12
.cfi_adjust_cfa_offset	-8
.cfi_restore	%r12
	popq	%rbx
.cfi_adjust_cfa_offset	-8
.cfi_restore	%rbx
	popq	%rbp
.cfi_adjust_cfa_offset	-8
.cfi_restore	%rbp
.Laesni_gcm_gcm_dec_abort:
	.byte	0xf3,0xc3

.cfi_endproc