update main-with-bazel from master branch

This commit is contained in:
BoringSSL Robot
2024-05-11 08:38:10 +00:00
13 changed files with 365 additions and 315 deletions
@@ -474,7 +474,7 @@ ___
if ($win64) {
$code.=<<___
lea -0xa8(%rsp),%rsp # 8 extra bytes to align the stack
.seh_allocstack 0xa8
.seh_stackalloc 0xa8
.seh_setframe %rbp, 0xa8+5*8
# Load the last two parameters. These go into %rdi and %rsi, which are
# non-volatile on Windows, so stash them in the parameter stack area
@@ -487,25 +487,26 @@ $code.=<<___
mov 0x38(%rbp), $Htable
# Save non-volatile XMM registers.
movaps %xmm6,-0xd0(%rbp)
.seh_savexmm128 %xmm6, 0xa8+5*8-0xd0
.seh_savexmm %xmm6, 0xa8+5*8-0xd0
movaps %xmm7,-0xc0(%rbp)
.seh_savexmm128 %xmm7, 0xa8+5*8-0xc0
.seh_savexmm %xmm7, 0xa8+5*8-0xc0
movaps %xmm8,-0xb0(%rbp)
.seh_savexmm128 %xmm8, 0xa8+5*8-0xb0
.seh_savexmm %xmm8, 0xa8+5*8-0xb0
movaps %xmm9,-0xa0(%rbp)
.seh_savexmm128 %xmm9, 0xa8+5*8-0xa0
.seh_savexmm %xmm9, 0xa8+5*8-0xa0
movaps %xmm10,-0x90(%rbp)
.seh_savexmm128 %xmm10, 0xa8+5*8-0x90
.seh_savexmm %xmm10, 0xa8+5*8-0x90
movaps %xmm11,-0x80(%rbp)
.seh_savexmm128 %xmm11, 0xa8+5*8-0x80
.seh_savexmm %xmm11, 0xa8+5*8-0x80
movaps %xmm12,-0x70(%rbp)
.seh_savexmm128 %xmm12, 0xa8+5*8-0x70
.seh_savexmm %xmm12, 0xa8+5*8-0x70
movaps %xmm13,-0x60(%rbp)
.seh_savexmm128 %xmm13, 0xa8+5*8-0x60
.seh_savexmm %xmm13, 0xa8+5*8-0x60
movaps %xmm14,-0x50(%rbp)
.seh_savexmm128 %xmm14, 0xa8+5*8-0x50
.seh_savexmm %xmm14, 0xa8+5*8-0x50
movaps %xmm15,-0x40(%rbp)
.seh_savexmm128 %xmm15, 0xa8+5*8-0x40
.seh_savexmm %xmm15, 0xa8+5*8-0x40
.seh_endprologue
___
}
$code.=<<___;
@@ -753,7 +754,7 @@ ___
if ($win64) {
$code.=<<___
lea -0xa8(%rsp),%rsp # 8 extra bytes to align the stack
.seh_allocstack 0xa8
.seh_stackalloc 0xa8
.seh_setframe %rbp, 0xa8+5*8
# Load the last two parameters. These go into %rdi and %rsi, which are
# non-volatile on Windows, so stash them in the parameter stack area
@@ -766,25 +767,26 @@ $code.=<<___
mov 0x38(%rbp), $Htable
# Save non-volatile XMM registers.
movaps %xmm6,-0xd0(%rbp)
.seh_savexmm128 %xmm6, 0xa8+5*8-0xd0
.seh_savexmm %xmm6, 0xa8+5*8-0xd0
movaps %xmm7,-0xc0(%rbp)
.seh_savexmm128 %xmm7, 0xa8+5*8-0xc0
.seh_savexmm %xmm7, 0xa8+5*8-0xc0
movaps %xmm8,-0xb0(%rbp)
.seh_savexmm128 %xmm8, 0xa8+5*8-0xb0
.seh_savexmm %xmm8, 0xa8+5*8-0xb0
movaps %xmm9,-0xa0(%rbp)
.seh_savexmm128 %xmm9, 0xa8+5*8-0xa0
.seh_savexmm %xmm9, 0xa8+5*8-0xa0
movaps %xmm10,-0x90(%rbp)
.seh_savexmm128 %xmm10, 0xa8+5*8-0x90
.seh_savexmm %xmm10, 0xa8+5*8-0x90
movaps %xmm11,-0x80(%rbp)
.seh_savexmm128 %xmm11, 0xa8+5*8-0x80
.seh_savexmm %xmm11, 0xa8+5*8-0x80
movaps %xmm12,-0x70(%rbp)
.seh_savexmm128 %xmm12, 0xa8+5*8-0x70
.seh_savexmm %xmm12, 0xa8+5*8-0x70
movaps %xmm13,-0x60(%rbp)
.seh_savexmm128 %xmm13, 0xa8+5*8-0x60
.seh_savexmm %xmm13, 0xa8+5*8-0x60
movaps %xmm14,-0x50(%rbp)
.seh_savexmm128 %xmm14, 0xa8+5*8-0x50
.seh_savexmm %xmm14, 0xa8+5*8-0x50
movaps %xmm15,-0x40(%rbp)
.seh_savexmm128 %xmm15, 0xa8+5*8-0x40
.seh_savexmm %xmm15, 0xa8+5*8-0x40
.seh_endprologue
___
}
$code.=<<___;
@@ -108,11 +108,12 @@ gcm_gmult_ssse3:
____
$code .= <<____ if ($win64);
subq \$40, %rsp
.seh_allocstack 40
.seh_stackalloc 40
movdqa %xmm6, (%rsp)
.seh_savexmm128 %xmm6, 0
.seh_savexmm %xmm6, 0
movdqa %xmm10, 16(%rsp)
.seh_savexmm128 %xmm10, 16
.seh_savexmm %xmm10, 16
.seh_endprologue
____
$code .= <<____;
movdqu ($Xi), %xmm0
@@ -251,13 +252,14 @@ gcm_ghash_ssse3:
____
$code .= <<____ if ($win64);
subq \$56, %rsp
.seh_allocstack 56
.seh_stackalloc 56
movdqa %xmm6, (%rsp)
.seh_savexmm128 %xmm6, 0
.seh_savexmm %xmm6, 0
movdqa %xmm10, 16(%rsp)
.seh_savexmm128 %xmm10, 16
.seh_savexmm %xmm10, 16
movdqa %xmm11, 32(%rsp)
.seh_savexmm128 %xmm11, 32
.seh_savexmm %xmm11, 32
.seh_endprologue
____
$code .= <<____;
movdqu ($Xi), %xmm0
+32 -28
View File
@@ -210,9 +210,10 @@ gcm_init_clmul:
___
$code.=<<___ if ($win64);
sub \$0x18,%rsp
.seh_allocstack 0x18
.seh_stackalloc 0x18
movaps %xmm6,(%rsp)
.seh_savexmm128 %xmm6, 0
.seh_savexmm %xmm6, 0
.seh_endprologue
___
$code.=<<___;
movdqu ($Xip),$Hkey
@@ -347,27 +348,28 @@ ___
$code.=<<___ if ($win64);
lea -0x88(%rsp),%rax
lea -0x20(%rax),%rsp
.seh_allocstack 0x20+0x88
.seh_stackalloc 0x20+0x88
movaps %xmm6,-0x20(%rax)
.seh_savexmm128 %xmm6, 0x20-0x20
.seh_savexmm %xmm6, 0x20-0x20
movaps %xmm7,-0x10(%rax)
.seh_savexmm128 %xmm7, 0x20-0x10
.seh_savexmm %xmm7, 0x20-0x10
movaps %xmm8,0(%rax)
.seh_savexmm128 %xmm8, 0x20+0
.seh_savexmm %xmm8, 0x20+0
movaps %xmm9,0x10(%rax)
.seh_savexmm128 %xmm9, 0x20+0x10
.seh_savexmm %xmm9, 0x20+0x10
movaps %xmm10,0x20(%rax)
.seh_savexmm128 %xmm10, 0x20+0x20
.seh_savexmm %xmm10, 0x20+0x20
movaps %xmm11,0x30(%rax)
.seh_savexmm128 %xmm11, 0x20+0x30
.seh_savexmm %xmm11, 0x20+0x30
movaps %xmm12,0x40(%rax)
.seh_savexmm128 %xmm12, 0x20+0x40
.seh_savexmm %xmm12, 0x20+0x40
movaps %xmm13,0x50(%rax)
.seh_savexmm128 %xmm13, 0x20+0x50
.seh_savexmm %xmm13, 0x20+0x50
movaps %xmm14,0x60(%rax)
.seh_savexmm128 %xmm14, 0x20+0x60
.seh_savexmm %xmm14, 0x20+0x60
movaps %xmm15,0x70(%rax)
.seh_savexmm128 %xmm15, 0x20+0x70
.seh_savexmm %xmm15, 0x20+0x70
.seh_endprologue
___
$code.=<<___;
movdqa .Lbswap_mask(%rip),$T3
@@ -704,6 +706,7 @@ $code.=<<___;
.align 32
gcm_init_avx:
.cfi_startproc
.seh_startproc
_CET_ENDBR
___
if ($avx) {
@@ -711,11 +714,11 @@ my ($Htbl,$Xip)=@_4args;
my $HK="%xmm6";
$code.=<<___ if ($win64);
.seh_startproc
sub \$0x18,%rsp
.seh_allocstack 0x18
.seh_stackalloc 0x18
movaps %xmm6,(%rsp)
.seh_savexmm128 %xmm6, 0
.seh_savexmm %xmm6, 0
.seh_endprologue
___
$code.=<<___;
vzeroupper
@@ -862,6 +865,7 @@ $code.=<<___;
.align 32
gcm_ghash_avx:
.cfi_startproc
.seh_startproc
_CET_ENDBR
___
if ($avx) {
@@ -872,30 +876,30 @@ my ($Xlo,$Xhi,$Xmi,
$Xi,$Xo,$Tred,$bswap,$Ii,$Ij) = map("%xmm$_",(0..15));
$code.=<<___ if ($win64);
.seh_startproc
lea -0x88(%rsp),%rax
lea -0x20(%rax),%rsp
.seh_allocstack 0x20+0x88
.seh_stackalloc 0x20+0x88
movaps %xmm6,-0x20(%rax)
.seh_savexmm128 %xmm6, 0x20-0x20
.seh_savexmm %xmm6, 0x20-0x20
movaps %xmm7,-0x10(%rax)
.seh_savexmm128 %xmm7, 0x20-0x10
.seh_savexmm %xmm7, 0x20-0x10
movaps %xmm8,0(%rax)
.seh_savexmm128 %xmm8, 0x20+0
.seh_savexmm %xmm8, 0x20+0
movaps %xmm9,0x10(%rax)
.seh_savexmm128 %xmm9, 0x20+0x10
.seh_savexmm %xmm9, 0x20+0x10
movaps %xmm10,0x20(%rax)
.seh_savexmm128 %xmm10, 0x20+0x20
.seh_savexmm %xmm10, 0x20+0x20
movaps %xmm11,0x30(%rax)
.seh_savexmm128 %xmm11, 0x20+0x30
.seh_savexmm %xmm11, 0x20+0x30
movaps %xmm12,0x40(%rax)
.seh_savexmm128 %xmm12, 0x20+0x40
.seh_savexmm %xmm12, 0x20+0x40
movaps %xmm13,0x50(%rax)
.seh_savexmm128 %xmm13, 0x20+0x50
.seh_savexmm %xmm13, 0x20+0x50
movaps %xmm14,0x60(%rax)
.seh_savexmm128 %xmm14, 0x20+0x60
.seh_savexmm %xmm14, 0x20+0x60
movaps %xmm15,0x70(%rax)
.seh_savexmm128 %xmm15, 0x20+0x70
.seh_savexmm %xmm15, 0x20+0x70
.seh_endprologue
___
$code.=<<___;
vzeroupper
+44 -28
View File
@@ -714,16 +714,21 @@ my %globals;
}
}
{ package seh_directive;
# This implements directives, like MASM's, for specifying Windows unwind
# codes. See https://learn.microsoft.com/en-us/cpp/build/exception-handling-x64?view=msvc-170
# for details on the Windows unwind mechanism. Unlike MASM's directives, we
# have no .seh_endprolog directive. Instead, the last prolog directive is
# implicitly the end of the prolog.
# This implements directives, like MASM, gas, and clang-assembler for
# specifying Windows unwind codes. See
# https://learn.microsoft.com/en-us/cpp/build/exception-handling-x64?view=msvc-170
# for details on the Windows unwind mechanism. As perlasm generally uses gas
# syntax, the syntax is patterned after the gas spelling, described in
# https://sourceware.org/legacy-ml/binutils/2009-08/msg00193.html
#
# TODO(https://crbug.com/boringssl/571): Translate to the MASM directives
# when using the MASM output. Emit as-is when using "mingw64" output, which
# is Windows with gas syntax.
#
# TODO(https://crbug.com/boringssl/259): For now, SEH directives are ignored
# on non-Windows platforms. This means functions need to specify both CFI
# and SEH directives, often redundantly. Ideally we'd abstract between the
# two. E.g., we can synthesize CFI from SEH prologs, but SEH does not
# two. E.g., we can synthesize CFI from SEH prologues, but SEH does not
# annotate epilogs, so we'd need to combine parts from both. Or we can
# restrict ourselves to a subset of CFI and synthesize SEH from CFI.
#
@@ -732,7 +737,7 @@ my %globals;
# complication is the current scheme modifies RDI and RSI (non-volatile on
# Windows) at the start of the function, and saves them in the parameter
# stack area. This can be expressed with .seh_savereg, but .seh_savereg is
# only usable late in the prolog. However, unwind information gives enough
# only usable late in the prologue. However, unwind information gives enough
# information to locate the parameter stack area at any point in the
# function, so we can defer conversion or implement other schemes.
@@ -777,6 +782,11 @@ my %globals;
die "Missing .seh_startproc directive" unless %info;
}
sub _check_in_prologue {
_check_in_proc();
die "Invalid SEH directive after .seh_endprologue" if defined($info{endprologue});
}
sub _check_not_in_proc {
die "Missing .seh_endproc directive" if %info;
}
@@ -794,8 +804,8 @@ my %globals;
info_label => $info_label,
# start_label is the start of the function.
start_label => $start_label,
# endprolog is the label of the last unwind code in the function.
endprolog => $start_label,
# endprologue is the label of the end of the prologue.
endprologue => undef,
# unwind_codes contains the textual representation of the
# unwind codes in the function so far.
unwind_codes => "",
@@ -821,14 +831,14 @@ my %globals;
sub _add_unwind_code {
my ($op, $value, @extra) = @_;
_check_in_proc();
_check_in_prologue();
if ($op != $UWOP_PUSH_NONVOL) {
$info{has_nonpushreg} = 1;
} elsif ($info{has_nonpushreg}) {
die ".seh_pushreg directives must appear first in the prolog";
die ".seh_pushreg directives must appear first in the prologue";
}
my $label = _new_unwind_label("prolog");
my $label = _new_unwind_label("prologue");
# Encode an UNWIND_CODE structure. See
# https://learn.microsoft.com/en-us/cpp/build/exception-handling-x64?view=msvc-170#struct-unwind_code
my $encoded = $op | ($value << 4);
@@ -844,17 +854,13 @@ ____
$info{num_codes} += 1 + scalar(@extra);
# Unwind codes are listed in reverse order.
$info{unwind_codes} = $codes . $info{unwind_codes};
# Track the label of the last unwind code. It implicitly is the end of
# the prolog. MASM has an endprolog directive, but it seems to be
# unnecessary.
$info{endprolog} = $label;
return $label;
}
sub _updating_fixed_allocation {
_check_in_proc();
_check_in_prologue();
if ($info{frame_reg} != 0) {
# Windows documentation does not explicitly forbid .seh_allocstack
# Windows documentation does not explicitly forbid .seh_stackalloc
# after .seh_setframe, but it appears to have no effect. Offsets are
# still relative to the fixed allocation when the frame register was
# established.
@@ -862,7 +868,7 @@ ____
}
if ($info{has_offset}) {
# Windows documentation does not explicitly forbid .seh_savereg
# before .seh_allocstack, but it does not work very well. Offsets
# before .seh_stackalloc, but it does not work very well. Offsets
# are relative to the top of the final fixed allocation, not where
# RSP currently is.
die "directives with an offset must come after the fixed allocation is established.";
@@ -871,11 +877,8 @@ ____
sub _endproc {
_check_in_proc();
if ($info{num_codes} == 0) {
# If a Windows function has no directives (i.e. it doesn't touch the
# stack), it is a leaf function and is not expected to appear in
# .pdata or .xdata.
die ".seh_endproc found with no unwind codes";
if (!defined($info{endprologue})) {
die "Missing .seh_endprologue";
}
my $end_label = _new_unwind_label("end");
@@ -894,7 +897,7 @@ ____
$xdata .= <<____;
$info{info_label}:
.byte 1 # version 1, no flags
.byte $info{endprolog}-$info{start_label}
.byte $info{endprologue}-$info{start_label}
.byte $info{num_codes}
.byte $frame_encoded
$info{unwind_codes}
@@ -916,7 +919,7 @@ ____
my $label;
SWITCH: for ($dir) {
/^startproc$/ && do {
$label = _startproc();
$label = _startproc($1);
last;
};
/^pushreg$/ && do {
@@ -926,7 +929,7 @@ ____
$label = _add_unwind_code($UWOP_PUSH_NONVOL, $reg_num);
last;
};
/^allocstack$/ && do {
/^stackalloc$/ && do {
my $num = eval($$line);
if ($num <= 0 || $num % 8 != 0) {
die "invalid stack allocation: $num";
@@ -976,7 +979,7 @@ ____
$info{has_offset} = 1;
last;
};
/^savexmm128$/ && do {
/^savexmm$/ && do {
$$line =~ /%xmm(\d+)\s*,\s*(.+)/ or die "could not parse .seh_$dir";
my $reg_num = $1;
my $offset = eval($2);
@@ -991,6 +994,19 @@ ____
$info{has_offset} = 1;
last;
};
/^endprologue$/ && do {
_check_in_prologue();
if ($info{num_codes} == 0) {
# If a Windows function has no directives (i.e. it
# doesn't touch the stack), it is a leaf function and is
# not expected to appear in .pdata or .xdata.
die ".seh_endprologue found with no unwind codes";
}
$label = _new_unwind_label("endprologue");
$info{endprologue} = $label;
last;
};
/^endproc$/ && do {
$label = _endproc();
last;
+6 -2
View File
@@ -179,7 +179,7 @@ my $caller_state_offset = $scratch_offset + 8;
$code .= <<____;
subq \$$stack_alloc_size, %rsp
.cfi_adjust_cfa_offset $stack_alloc_size
.seh_allocstack $stack_alloc_size
.seh_stackalloc $stack_alloc_size
____
$code .= <<____ if (!$win64);
movq $unwind, $unwind_offset(%rsp)
@@ -195,12 +195,13 @@ $code .= store_caller_state($caller_state_offset, "%rsp", sub {
# pointer just before the call.
my $cfi_off = $off - $stack_alloc_size - 8;
my $seh_dir = ".seh_savereg";
$seh_dir = ".seh_savexmm128" if ($reg =~ /^xmm/);
$seh_dir = ".seh_savexmm" if ($reg =~ /^xmm/);
return <<____;
.cfi_offset $reg, $cfi_off
$seh_dir \%$reg, $off
____
});
$code .= ".seh_endprologue\n";
$code .= load_caller_state(0, $state);
$code .= <<____;
@@ -342,6 +343,7 @@ abi_test_bad_unwind_wrong_register:
pushq %r12
.cfi_push %r13 # This should be %r13
.seh_pushreg %r13 # This should be %r13
.seh_endprologue
# Windows evaluates epilogs directly in the unwinder, rather than using
# unwind codes. Add a nop so there is one non-epilog point (immediately
# before the nop) where the unwinder can observe the mistake.
@@ -366,6 +368,7 @@ abi_test_bad_unwind_temporary:
pushq %r12
.cfi_push %r12
.seh_pushreg %r12
.seh_endprologue
movq %r12, %rax
inc %rax
@@ -422,6 +425,7 @@ abi_test_bad_unwind_epilog:
.seh_startproc
pushq %r12
.seh_pushreg %r12
.seh_endprologue
nop
+88 -86
View File
@@ -363,57 +363,58 @@ _CET_ENDBR
push rbp
$L$SEH_prolog_aesni_gcm_decrypt_2:
$L$SEH_prologue_aesni_gcm_decrypt_2:
mov rbp,rsp
push rbx
$L$SEH_prolog_aesni_gcm_decrypt_3:
$L$SEH_prologue_aesni_gcm_decrypt_3:
push r12
$L$SEH_prolog_aesni_gcm_decrypt_4:
$L$SEH_prologue_aesni_gcm_decrypt_4:
push r13
$L$SEH_prolog_aesni_gcm_decrypt_5:
$L$SEH_prologue_aesni_gcm_decrypt_5:
push r14
$L$SEH_prolog_aesni_gcm_decrypt_6:
$L$SEH_prologue_aesni_gcm_decrypt_6:
push r15
$L$SEH_prolog_aesni_gcm_decrypt_7:
$L$SEH_prologue_aesni_gcm_decrypt_7:
lea rsp,[((-168))+rsp]
$L$SEH_prolog_aesni_gcm_decrypt_8:
$L$SEH_prolog_aesni_gcm_decrypt_9:
$L$SEH_prologue_aesni_gcm_decrypt_8:
$L$SEH_prologue_aesni_gcm_decrypt_9:
mov QWORD[16+rbp],rdi
$L$SEH_prolog_aesni_gcm_decrypt_10:
$L$SEH_prologue_aesni_gcm_decrypt_10:
mov QWORD[24+rbp],rsi
$L$SEH_prolog_aesni_gcm_decrypt_11:
$L$SEH_prologue_aesni_gcm_decrypt_11:
mov rdi,QWORD[48+rbp]
mov rsi,QWORD[56+rbp]
movaps XMMWORD[(-208)+rbp],xmm6
$L$SEH_prolog_aesni_gcm_decrypt_12:
$L$SEH_prologue_aesni_gcm_decrypt_12:
movaps XMMWORD[(-192)+rbp],xmm7
$L$SEH_prolog_aesni_gcm_decrypt_13:
$L$SEH_prologue_aesni_gcm_decrypt_13:
movaps XMMWORD[(-176)+rbp],xmm8
$L$SEH_prolog_aesni_gcm_decrypt_14:
$L$SEH_prologue_aesni_gcm_decrypt_14:
movaps XMMWORD[(-160)+rbp],xmm9
$L$SEH_prolog_aesni_gcm_decrypt_15:
$L$SEH_prologue_aesni_gcm_decrypt_15:
movaps XMMWORD[(-144)+rbp],xmm10
$L$SEH_prolog_aesni_gcm_decrypt_16:
$L$SEH_prologue_aesni_gcm_decrypt_16:
movaps XMMWORD[(-128)+rbp],xmm11
$L$SEH_prolog_aesni_gcm_decrypt_17:
$L$SEH_prologue_aesni_gcm_decrypt_17:
movaps XMMWORD[(-112)+rbp],xmm12
$L$SEH_prolog_aesni_gcm_decrypt_18:
$L$SEH_prologue_aesni_gcm_decrypt_18:
movaps XMMWORD[(-96)+rbp],xmm13
$L$SEH_prolog_aesni_gcm_decrypt_19:
$L$SEH_prologue_aesni_gcm_decrypt_19:
movaps XMMWORD[(-80)+rbp],xmm14
$L$SEH_prolog_aesni_gcm_decrypt_20:
$L$SEH_prologue_aesni_gcm_decrypt_20:
movaps XMMWORD[(-64)+rbp],xmm15
$L$SEH_prolog_aesni_gcm_decrypt_21:
$L$SEH_prologue_aesni_gcm_decrypt_21:
$L$SEH_endprologue_aesni_gcm_decrypt_22:
vzeroupper
mov r12,QWORD[64+rbp]
@@ -512,7 +513,7 @@ $L$dec_no_key_aliasing:
$L$gcm_dec_abort:
ret
$L$SEH_end_aesni_gcm_decrypt_22:
$L$SEH_end_aesni_gcm_decrypt_23:
@@ -629,57 +630,58 @@ EXTERN BORINGSSL_function_hit
push rbp
$L$SEH_prolog_aesni_gcm_encrypt_2:
$L$SEH_prologue_aesni_gcm_encrypt_2:
mov rbp,rsp
push rbx
$L$SEH_prolog_aesni_gcm_encrypt_3:
$L$SEH_prologue_aesni_gcm_encrypt_3:
push r12
$L$SEH_prolog_aesni_gcm_encrypt_4:
$L$SEH_prologue_aesni_gcm_encrypt_4:
push r13
$L$SEH_prolog_aesni_gcm_encrypt_5:
$L$SEH_prologue_aesni_gcm_encrypt_5:
push r14
$L$SEH_prolog_aesni_gcm_encrypt_6:
$L$SEH_prologue_aesni_gcm_encrypt_6:
push r15
$L$SEH_prolog_aesni_gcm_encrypt_7:
$L$SEH_prologue_aesni_gcm_encrypt_7:
lea rsp,[((-168))+rsp]
$L$SEH_prolog_aesni_gcm_encrypt_8:
$L$SEH_prolog_aesni_gcm_encrypt_9:
$L$SEH_prologue_aesni_gcm_encrypt_8:
$L$SEH_prologue_aesni_gcm_encrypt_9:
mov QWORD[16+rbp],rdi
$L$SEH_prolog_aesni_gcm_encrypt_10:
$L$SEH_prologue_aesni_gcm_encrypt_10:
mov QWORD[24+rbp],rsi
$L$SEH_prolog_aesni_gcm_encrypt_11:
$L$SEH_prologue_aesni_gcm_encrypt_11:
mov rdi,QWORD[48+rbp]
mov rsi,QWORD[56+rbp]
movaps XMMWORD[(-208)+rbp],xmm6
$L$SEH_prolog_aesni_gcm_encrypt_12:
$L$SEH_prologue_aesni_gcm_encrypt_12:
movaps XMMWORD[(-192)+rbp],xmm7
$L$SEH_prolog_aesni_gcm_encrypt_13:
$L$SEH_prologue_aesni_gcm_encrypt_13:
movaps XMMWORD[(-176)+rbp],xmm8
$L$SEH_prolog_aesni_gcm_encrypt_14:
$L$SEH_prologue_aesni_gcm_encrypt_14:
movaps XMMWORD[(-160)+rbp],xmm9
$L$SEH_prolog_aesni_gcm_encrypt_15:
$L$SEH_prologue_aesni_gcm_encrypt_15:
movaps XMMWORD[(-144)+rbp],xmm10
$L$SEH_prolog_aesni_gcm_encrypt_16:
$L$SEH_prologue_aesni_gcm_encrypt_16:
movaps XMMWORD[(-128)+rbp],xmm11
$L$SEH_prolog_aesni_gcm_encrypt_17:
$L$SEH_prologue_aesni_gcm_encrypt_17:
movaps XMMWORD[(-112)+rbp],xmm12
$L$SEH_prolog_aesni_gcm_encrypt_18:
$L$SEH_prologue_aesni_gcm_encrypt_18:
movaps XMMWORD[(-96)+rbp],xmm13
$L$SEH_prolog_aesni_gcm_encrypt_19:
$L$SEH_prologue_aesni_gcm_encrypt_19:
movaps XMMWORD[(-80)+rbp],xmm14
$L$SEH_prolog_aesni_gcm_encrypt_20:
$L$SEH_prologue_aesni_gcm_encrypt_20:
movaps XMMWORD[(-64)+rbp],xmm15
$L$SEH_prolog_aesni_gcm_encrypt_21:
$L$SEH_prologue_aesni_gcm_encrypt_21:
$L$SEH_endprologue_aesni_gcm_encrypt_22:
vzeroupper
vmovdqu xmm1,XMMWORD[rdi]
@@ -943,7 +945,7 @@ $L$enc_no_key_aliasing:
$L$gcm_enc_abort:
ret
$L$SEH_end_aesni_gcm_encrypt_22:
$L$SEH_end_aesni_gcm_encrypt_23:
section .rdata rdata align=8
@@ -968,11 +970,11 @@ section .text
section .pdata rdata align=4
ALIGN 4
DD $L$SEH_begin_aesni_gcm_decrypt_1 wrt ..imagebase
DD $L$SEH_end_aesni_gcm_decrypt_22 wrt ..imagebase
DD $L$SEH_end_aesni_gcm_decrypt_23 wrt ..imagebase
DD $L$SEH_info_aesni_gcm_decrypt_0 wrt ..imagebase
DD $L$SEH_begin_aesni_gcm_encrypt_1 wrt ..imagebase
DD $L$SEH_end_aesni_gcm_encrypt_22 wrt ..imagebase
DD $L$SEH_end_aesni_gcm_encrypt_23 wrt ..imagebase
DD $L$SEH_info_aesni_gcm_encrypt_0 wrt ..imagebase
@@ -980,120 +982,120 @@ section .xdata rdata align=8
ALIGN 4
$L$SEH_info_aesni_gcm_decrypt_0:
DB 1
DB $L$SEH_prolog_aesni_gcm_decrypt_21-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_endprologue_aesni_gcm_decrypt_22-$L$SEH_begin_aesni_gcm_decrypt_1
DB 33
DB 213
DB $L$SEH_prolog_aesni_gcm_decrypt_21-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_21-$L$SEH_begin_aesni_gcm_decrypt_1
DB 248
DW 9
DB $L$SEH_prolog_aesni_gcm_decrypt_20-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_20-$L$SEH_begin_aesni_gcm_decrypt_1
DB 232
DW 8
DB $L$SEH_prolog_aesni_gcm_decrypt_19-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_19-$L$SEH_begin_aesni_gcm_decrypt_1
DB 216
DW 7
DB $L$SEH_prolog_aesni_gcm_decrypt_18-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_18-$L$SEH_begin_aesni_gcm_decrypt_1
DB 200
DW 6
DB $L$SEH_prolog_aesni_gcm_decrypt_17-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_17-$L$SEH_begin_aesni_gcm_decrypt_1
DB 184
DW 5
DB $L$SEH_prolog_aesni_gcm_decrypt_16-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_16-$L$SEH_begin_aesni_gcm_decrypt_1
DB 168
DW 4
DB $L$SEH_prolog_aesni_gcm_decrypt_15-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_15-$L$SEH_begin_aesni_gcm_decrypt_1
DB 152
DW 3
DB $L$SEH_prolog_aesni_gcm_decrypt_14-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_14-$L$SEH_begin_aesni_gcm_decrypt_1
DB 136
DW 2
DB $L$SEH_prolog_aesni_gcm_decrypt_13-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_13-$L$SEH_begin_aesni_gcm_decrypt_1
DB 120
DW 1
DB $L$SEH_prolog_aesni_gcm_decrypt_12-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_12-$L$SEH_begin_aesni_gcm_decrypt_1
DB 104
DW 0
DB $L$SEH_prolog_aesni_gcm_decrypt_11-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_11-$L$SEH_begin_aesni_gcm_decrypt_1
DB 100
DW 29
DB $L$SEH_prolog_aesni_gcm_decrypt_10-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_10-$L$SEH_begin_aesni_gcm_decrypt_1
DB 116
DW 28
DB $L$SEH_prolog_aesni_gcm_decrypt_9-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_9-$L$SEH_begin_aesni_gcm_decrypt_1
DB 3
DB $L$SEH_prolog_aesni_gcm_decrypt_8-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_8-$L$SEH_begin_aesni_gcm_decrypt_1
DB 1
DW 21
DB $L$SEH_prolog_aesni_gcm_decrypt_7-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_7-$L$SEH_begin_aesni_gcm_decrypt_1
DB 240
DB $L$SEH_prolog_aesni_gcm_decrypt_6-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_6-$L$SEH_begin_aesni_gcm_decrypt_1
DB 224
DB $L$SEH_prolog_aesni_gcm_decrypt_5-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_5-$L$SEH_begin_aesni_gcm_decrypt_1
DB 208
DB $L$SEH_prolog_aesni_gcm_decrypt_4-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_4-$L$SEH_begin_aesni_gcm_decrypt_1
DB 192
DB $L$SEH_prolog_aesni_gcm_decrypt_3-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_3-$L$SEH_begin_aesni_gcm_decrypt_1
DB 48
DB $L$SEH_prolog_aesni_gcm_decrypt_2-$L$SEH_begin_aesni_gcm_decrypt_1
DB $L$SEH_prologue_aesni_gcm_decrypt_2-$L$SEH_begin_aesni_gcm_decrypt_1
DB 80
$L$SEH_info_aesni_gcm_encrypt_0:
DB 1
DB $L$SEH_prolog_aesni_gcm_encrypt_21-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_endprologue_aesni_gcm_encrypt_22-$L$SEH_begin_aesni_gcm_encrypt_1
DB 33
DB 213
DB $L$SEH_prolog_aesni_gcm_encrypt_21-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_21-$L$SEH_begin_aesni_gcm_encrypt_1
DB 248
DW 9
DB $L$SEH_prolog_aesni_gcm_encrypt_20-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_20-$L$SEH_begin_aesni_gcm_encrypt_1
DB 232
DW 8
DB $L$SEH_prolog_aesni_gcm_encrypt_19-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_19-$L$SEH_begin_aesni_gcm_encrypt_1
DB 216
DW 7
DB $L$SEH_prolog_aesni_gcm_encrypt_18-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_18-$L$SEH_begin_aesni_gcm_encrypt_1
DB 200
DW 6
DB $L$SEH_prolog_aesni_gcm_encrypt_17-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_17-$L$SEH_begin_aesni_gcm_encrypt_1
DB 184
DW 5
DB $L$SEH_prolog_aesni_gcm_encrypt_16-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_16-$L$SEH_begin_aesni_gcm_encrypt_1
DB 168
DW 4
DB $L$SEH_prolog_aesni_gcm_encrypt_15-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_15-$L$SEH_begin_aesni_gcm_encrypt_1
DB 152
DW 3
DB $L$SEH_prolog_aesni_gcm_encrypt_14-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_14-$L$SEH_begin_aesni_gcm_encrypt_1
DB 136
DW 2
DB $L$SEH_prolog_aesni_gcm_encrypt_13-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_13-$L$SEH_begin_aesni_gcm_encrypt_1
DB 120
DW 1
DB $L$SEH_prolog_aesni_gcm_encrypt_12-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_12-$L$SEH_begin_aesni_gcm_encrypt_1
DB 104
DW 0
DB $L$SEH_prolog_aesni_gcm_encrypt_11-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_11-$L$SEH_begin_aesni_gcm_encrypt_1
DB 100
DW 29
DB $L$SEH_prolog_aesni_gcm_encrypt_10-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_10-$L$SEH_begin_aesni_gcm_encrypt_1
DB 116
DW 28
DB $L$SEH_prolog_aesni_gcm_encrypt_9-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_9-$L$SEH_begin_aesni_gcm_encrypt_1
DB 3
DB $L$SEH_prolog_aesni_gcm_encrypt_8-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_8-$L$SEH_begin_aesni_gcm_encrypt_1
DB 1
DW 21
DB $L$SEH_prolog_aesni_gcm_encrypt_7-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_7-$L$SEH_begin_aesni_gcm_encrypt_1
DB 240
DB $L$SEH_prolog_aesni_gcm_encrypt_6-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_6-$L$SEH_begin_aesni_gcm_encrypt_1
DB 224
DB $L$SEH_prolog_aesni_gcm_encrypt_5-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_5-$L$SEH_begin_aesni_gcm_encrypt_1
DB 208
DB $L$SEH_prolog_aesni_gcm_encrypt_4-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_4-$L$SEH_begin_aesni_gcm_encrypt_1
DB 192
DB $L$SEH_prolog_aesni_gcm_encrypt_3-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_3-$L$SEH_begin_aesni_gcm_encrypt_1
DB 48
DB $L$SEH_prolog_aesni_gcm_encrypt_2-$L$SEH_begin_aesni_gcm_encrypt_1
DB $L$SEH_prologue_aesni_gcm_encrypt_2-$L$SEH_begin_aesni_gcm_encrypt_1
DB 80
%else
; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738
+22 -20
View File
@@ -26,11 +26,12 @@ gcm_gmult_ssse3:
$L$SEH_begin_gcm_gmult_ssse3_1:
_CET_ENDBR
sub rsp,40
$L$SEH_prolog_gcm_gmult_ssse3_2:
$L$SEH_prologue_gcm_gmult_ssse3_2:
movdqa XMMWORD[rsp],xmm6
$L$SEH_prolog_gcm_gmult_ssse3_3:
$L$SEH_prologue_gcm_gmult_ssse3_3:
movdqa XMMWORD[16+rsp],xmm10
$L$SEH_prolog_gcm_gmult_ssse3_4:
$L$SEH_prologue_gcm_gmult_ssse3_4:
$L$SEH_endprologue_gcm_gmult_ssse3_5:
movdqu xmm0,XMMWORD[rcx]
movdqa xmm10,XMMWORD[$L$reverse_bytes]
movdqa xmm2,XMMWORD[$L$low4_mask]
@@ -210,7 +211,7 @@ DB 102,65,15,56,0,210
add rsp,40
ret
$L$SEH_end_gcm_gmult_ssse3_5:
$L$SEH_end_gcm_gmult_ssse3_6:
@@ -225,13 +226,14 @@ gcm_ghash_ssse3:
$L$SEH_begin_gcm_ghash_ssse3_1:
_CET_ENDBR
sub rsp,56
$L$SEH_prolog_gcm_ghash_ssse3_2:
$L$SEH_prologue_gcm_ghash_ssse3_2:
movdqa XMMWORD[rsp],xmm6
$L$SEH_prolog_gcm_ghash_ssse3_3:
$L$SEH_prologue_gcm_ghash_ssse3_3:
movdqa XMMWORD[16+rsp],xmm10
$L$SEH_prolog_gcm_ghash_ssse3_4:
$L$SEH_prologue_gcm_ghash_ssse3_4:
movdqa XMMWORD[32+rsp],xmm11
$L$SEH_prolog_gcm_ghash_ssse3_5:
$L$SEH_prologue_gcm_ghash_ssse3_5:
$L$SEH_endprologue_gcm_ghash_ssse3_6:
movdqu xmm0,XMMWORD[rcx]
movdqa xmm10,XMMWORD[$L$reverse_bytes]
movdqa xmm11,XMMWORD[$L$low4_mask]
@@ -434,7 +436,7 @@ DB 102,65,15,56,0,194
add rsp,56
ret
$L$SEH_end_gcm_ghash_ssse3_6:
$L$SEH_end_gcm_ghash_ssse3_7:
section .rdata rdata align=8
@@ -451,11 +453,11 @@ section .text
section .pdata rdata align=4
ALIGN 4
DD $L$SEH_begin_gcm_gmult_ssse3_1 wrt ..imagebase
DD $L$SEH_end_gcm_gmult_ssse3_5 wrt ..imagebase
DD $L$SEH_end_gcm_gmult_ssse3_6 wrt ..imagebase
DD $L$SEH_info_gcm_gmult_ssse3_0 wrt ..imagebase
DD $L$SEH_begin_gcm_ghash_ssse3_1 wrt ..imagebase
DD $L$SEH_end_gcm_ghash_ssse3_6 wrt ..imagebase
DD $L$SEH_end_gcm_ghash_ssse3_7 wrt ..imagebase
DD $L$SEH_info_gcm_ghash_ssse3_0 wrt ..imagebase
@@ -463,33 +465,33 @@ section .xdata rdata align=8
ALIGN 4
$L$SEH_info_gcm_gmult_ssse3_0:
DB 1
DB $L$SEH_prolog_gcm_gmult_ssse3_4-$L$SEH_begin_gcm_gmult_ssse3_1
DB $L$SEH_endprologue_gcm_gmult_ssse3_5-$L$SEH_begin_gcm_gmult_ssse3_1
DB 5
DB 0
DB $L$SEH_prolog_gcm_gmult_ssse3_4-$L$SEH_begin_gcm_gmult_ssse3_1
DB $L$SEH_prologue_gcm_gmult_ssse3_4-$L$SEH_begin_gcm_gmult_ssse3_1
DB 168
DW 1
DB $L$SEH_prolog_gcm_gmult_ssse3_3-$L$SEH_begin_gcm_gmult_ssse3_1
DB $L$SEH_prologue_gcm_gmult_ssse3_3-$L$SEH_begin_gcm_gmult_ssse3_1
DB 104
DW 0
DB $L$SEH_prolog_gcm_gmult_ssse3_2-$L$SEH_begin_gcm_gmult_ssse3_1
DB $L$SEH_prologue_gcm_gmult_ssse3_2-$L$SEH_begin_gcm_gmult_ssse3_1
DB 66
$L$SEH_info_gcm_ghash_ssse3_0:
DB 1
DB $L$SEH_prolog_gcm_ghash_ssse3_5-$L$SEH_begin_gcm_ghash_ssse3_1
DB $L$SEH_endprologue_gcm_ghash_ssse3_6-$L$SEH_begin_gcm_ghash_ssse3_1
DB 7
DB 0
DB $L$SEH_prolog_gcm_ghash_ssse3_5-$L$SEH_begin_gcm_ghash_ssse3_1
DB $L$SEH_prologue_gcm_ghash_ssse3_5-$L$SEH_begin_gcm_ghash_ssse3_1
DB 184
DW 2
DB $L$SEH_prolog_gcm_ghash_ssse3_4-$L$SEH_begin_gcm_ghash_ssse3_1
DB $L$SEH_prologue_gcm_ghash_ssse3_4-$L$SEH_begin_gcm_ghash_ssse3_1
DB 168
DW 1
DB $L$SEH_prolog_gcm_ghash_ssse3_3-$L$SEH_begin_gcm_ghash_ssse3_1
DB $L$SEH_prologue_gcm_ghash_ssse3_3-$L$SEH_begin_gcm_ghash_ssse3_1
DB 104
DW 0
DB $L$SEH_prolog_gcm_ghash_ssse3_2-$L$SEH_begin_gcm_ghash_ssse3_1
DB $L$SEH_prologue_gcm_ghash_ssse3_2-$L$SEH_begin_gcm_ghash_ssse3_1
DB 98
%else
; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738
+2
View File
@@ -612,6 +612,7 @@ L$done:
.p2align 5
_gcm_init_avx:
_CET_ENDBR
vzeroupper
@@ -734,6 +735,7 @@ _CET_ENDBR
.p2align 5
_gcm_ghash_avx:
_CET_ENDBR
vzeroupper
+2
View File
@@ -612,6 +612,7 @@ _CET_ENDBR
.align 32
gcm_init_avx:
.cfi_startproc
_CET_ENDBR
vzeroupper
@@ -734,6 +735,7 @@ _CET_ENDBR
.align 32
gcm_ghash_avx:
.cfi_startproc
_CET_ENDBR
vzeroupper
+70 -66
View File
@@ -22,9 +22,10 @@ $L$SEH_begin_gcm_init_clmul_1:
_CET_ENDBR
$L$_init_clmul:
sub rsp,0x18
$L$SEH_prolog_gcm_init_clmul_2:
$L$SEH_prologue_gcm_init_clmul_2:
movaps XMMWORD[rsp],xmm6
$L$SEH_prolog_gcm_init_clmul_3:
$L$SEH_prologue_gcm_init_clmul_3:
$L$SEH_endprologue_gcm_init_clmul_4:
movdqu xmm2,XMMWORD[rdx]
pshufd xmm2,xmm2,78
@@ -178,7 +179,7 @@ DB 102,15,58,15,227,8
lea rsp,[24+rsp]
ret
$L$SEH_end_gcm_init_clmul_4:
$L$SEH_end_gcm_init_clmul_5:
global gcm_gmult_clmul
@@ -244,27 +245,28 @@ _CET_ENDBR
$L$_ghash_clmul:
lea rax,[((-136))+rsp]
lea rsp,[((-32))+rax]
$L$SEH_prolog_gcm_ghash_clmul_2:
$L$SEH_prologue_gcm_ghash_clmul_2:
movaps XMMWORD[(-32)+rax],xmm6
$L$SEH_prolog_gcm_ghash_clmul_3:
$L$SEH_prologue_gcm_ghash_clmul_3:
movaps XMMWORD[(-16)+rax],xmm7
$L$SEH_prolog_gcm_ghash_clmul_4:
$L$SEH_prologue_gcm_ghash_clmul_4:
movaps XMMWORD[rax],xmm8
$L$SEH_prolog_gcm_ghash_clmul_5:
$L$SEH_prologue_gcm_ghash_clmul_5:
movaps XMMWORD[16+rax],xmm9
$L$SEH_prolog_gcm_ghash_clmul_6:
$L$SEH_prologue_gcm_ghash_clmul_6:
movaps XMMWORD[32+rax],xmm10
$L$SEH_prolog_gcm_ghash_clmul_7:
$L$SEH_prologue_gcm_ghash_clmul_7:
movaps XMMWORD[48+rax],xmm11
$L$SEH_prolog_gcm_ghash_clmul_8:
$L$SEH_prologue_gcm_ghash_clmul_8:
movaps XMMWORD[64+rax],xmm12
$L$SEH_prolog_gcm_ghash_clmul_9:
$L$SEH_prologue_gcm_ghash_clmul_9:
movaps XMMWORD[80+rax],xmm13
$L$SEH_prolog_gcm_ghash_clmul_10:
$L$SEH_prologue_gcm_ghash_clmul_10:
movaps XMMWORD[96+rax],xmm14
$L$SEH_prolog_gcm_ghash_clmul_11:
$L$SEH_prologue_gcm_ghash_clmul_11:
movaps XMMWORD[112+rax],xmm15
$L$SEH_prolog_gcm_ghash_clmul_12:
$L$SEH_prologue_gcm_ghash_clmul_12:
$L$SEH_endprologue_gcm_ghash_clmul_13:
movdqa xmm10,XMMWORD[$L$bswap_mask]
movdqu xmm0,XMMWORD[rcx]
@@ -649,19 +651,20 @@ DB 102,65,15,56,0,194
lea rsp,[168+rsp]
ret
$L$SEH_end_gcm_ghash_clmul_13:
$L$SEH_end_gcm_ghash_clmul_14:
global gcm_init_avx
ALIGN 32
gcm_init_avx:
_CET_ENDBR
$L$SEH_begin_gcm_init_avx_1:
_CET_ENDBR
sub rsp,0x18
$L$SEH_prolog_gcm_init_avx_2:
$L$SEH_prologue_gcm_init_avx_2:
movaps XMMWORD[rsp],xmm6
$L$SEH_prolog_gcm_init_avx_3:
$L$SEH_prologue_gcm_init_avx_3:
$L$SEH_endprologue_gcm_init_avx_4:
vzeroupper
vmovdqu xmm2,XMMWORD[rdx]
@@ -766,7 +769,7 @@ $L$init_start_avx:
movaps xmm6,XMMWORD[rsp]
lea rsp,[24+rsp]
ret
$L$SEH_end_gcm_init_avx_4:
$L$SEH_end_gcm_init_avx_5:
global gcm_gmult_avx
@@ -783,31 +786,32 @@ global gcm_ghash_avx
ALIGN 32
gcm_ghash_avx:
_CET_ENDBR
$L$SEH_begin_gcm_ghash_avx_1:
_CET_ENDBR
lea rax,[((-136))+rsp]
lea rsp,[((-32))+rax]
$L$SEH_prolog_gcm_ghash_avx_2:
$L$SEH_prologue_gcm_ghash_avx_2:
movaps XMMWORD[(-32)+rax],xmm6
$L$SEH_prolog_gcm_ghash_avx_3:
$L$SEH_prologue_gcm_ghash_avx_3:
movaps XMMWORD[(-16)+rax],xmm7
$L$SEH_prolog_gcm_ghash_avx_4:
$L$SEH_prologue_gcm_ghash_avx_4:
movaps XMMWORD[rax],xmm8
$L$SEH_prolog_gcm_ghash_avx_5:
$L$SEH_prologue_gcm_ghash_avx_5:
movaps XMMWORD[16+rax],xmm9
$L$SEH_prolog_gcm_ghash_avx_6:
$L$SEH_prologue_gcm_ghash_avx_6:
movaps XMMWORD[32+rax],xmm10
$L$SEH_prolog_gcm_ghash_avx_7:
$L$SEH_prologue_gcm_ghash_avx_7:
movaps XMMWORD[48+rax],xmm11
$L$SEH_prolog_gcm_ghash_avx_8:
$L$SEH_prologue_gcm_ghash_avx_8:
movaps XMMWORD[64+rax],xmm12
$L$SEH_prolog_gcm_ghash_avx_9:
$L$SEH_prologue_gcm_ghash_avx_9:
movaps XMMWORD[80+rax],xmm13
$L$SEH_prolog_gcm_ghash_avx_10:
$L$SEH_prologue_gcm_ghash_avx_10:
movaps XMMWORD[96+rax],xmm14
$L$SEH_prolog_gcm_ghash_avx_11:
$L$SEH_prologue_gcm_ghash_avx_11:
movaps XMMWORD[112+rax],xmm15
$L$SEH_prolog_gcm_ghash_avx_12:
$L$SEH_prologue_gcm_ghash_avx_12:
$L$SEH_endprologue_gcm_ghash_avx_13:
vzeroupper
vmovdqu xmm10,XMMWORD[rcx]
@@ -1191,7 +1195,7 @@ $L$tail_no_xor_avx:
lea rsp,[168+rsp]
ret
$L$SEH_end_gcm_ghash_avx_13:
$L$SEH_end_gcm_ghash_avx_14:
section .rdata rdata align=8
ALIGN 64
@@ -1213,19 +1217,19 @@ section .text
section .pdata rdata align=4
ALIGN 4
DD $L$SEH_begin_gcm_init_clmul_1 wrt ..imagebase
DD $L$SEH_end_gcm_init_clmul_4 wrt ..imagebase
DD $L$SEH_end_gcm_init_clmul_5 wrt ..imagebase
DD $L$SEH_info_gcm_init_clmul_0 wrt ..imagebase
DD $L$SEH_begin_gcm_ghash_clmul_1 wrt ..imagebase
DD $L$SEH_end_gcm_ghash_clmul_13 wrt ..imagebase
DD $L$SEH_end_gcm_ghash_clmul_14 wrt ..imagebase
DD $L$SEH_info_gcm_ghash_clmul_0 wrt ..imagebase
DD $L$SEH_begin_gcm_init_avx_1 wrt ..imagebase
DD $L$SEH_end_gcm_init_avx_4 wrt ..imagebase
DD $L$SEH_end_gcm_init_avx_5 wrt ..imagebase
DD $L$SEH_info_gcm_init_avx_0 wrt ..imagebase
DD $L$SEH_begin_gcm_ghash_avx_1 wrt ..imagebase
DD $L$SEH_end_gcm_ghash_avx_13 wrt ..imagebase
DD $L$SEH_end_gcm_ghash_avx_14 wrt ..imagebase
DD $L$SEH_info_gcm_ghash_avx_0 wrt ..imagebase
@@ -1233,101 +1237,101 @@ section .xdata rdata align=8
ALIGN 4
$L$SEH_info_gcm_init_clmul_0:
DB 1
DB $L$SEH_prolog_gcm_init_clmul_3-$L$SEH_begin_gcm_init_clmul_1
DB $L$SEH_endprologue_gcm_init_clmul_4-$L$SEH_begin_gcm_init_clmul_1
DB 3
DB 0
DB $L$SEH_prolog_gcm_init_clmul_3-$L$SEH_begin_gcm_init_clmul_1
DB $L$SEH_prologue_gcm_init_clmul_3-$L$SEH_begin_gcm_init_clmul_1
DB 104
DW 0
DB $L$SEH_prolog_gcm_init_clmul_2-$L$SEH_begin_gcm_init_clmul_1
DB $L$SEH_prologue_gcm_init_clmul_2-$L$SEH_begin_gcm_init_clmul_1
DB 34
$L$SEH_info_gcm_ghash_clmul_0:
DB 1
DB $L$SEH_prolog_gcm_ghash_clmul_12-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_endprologue_gcm_ghash_clmul_13-$L$SEH_begin_gcm_ghash_clmul_1
DB 22
DB 0
DB $L$SEH_prolog_gcm_ghash_clmul_12-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_12-$L$SEH_begin_gcm_ghash_clmul_1
DB 248
DW 9
DB $L$SEH_prolog_gcm_ghash_clmul_11-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_11-$L$SEH_begin_gcm_ghash_clmul_1
DB 232
DW 8
DB $L$SEH_prolog_gcm_ghash_clmul_10-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_10-$L$SEH_begin_gcm_ghash_clmul_1
DB 216
DW 7
DB $L$SEH_prolog_gcm_ghash_clmul_9-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_9-$L$SEH_begin_gcm_ghash_clmul_1
DB 200
DW 6
DB $L$SEH_prolog_gcm_ghash_clmul_8-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_8-$L$SEH_begin_gcm_ghash_clmul_1
DB 184
DW 5
DB $L$SEH_prolog_gcm_ghash_clmul_7-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_7-$L$SEH_begin_gcm_ghash_clmul_1
DB 168
DW 4
DB $L$SEH_prolog_gcm_ghash_clmul_6-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_6-$L$SEH_begin_gcm_ghash_clmul_1
DB 152
DW 3
DB $L$SEH_prolog_gcm_ghash_clmul_5-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_5-$L$SEH_begin_gcm_ghash_clmul_1
DB 136
DW 2
DB $L$SEH_prolog_gcm_ghash_clmul_4-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_4-$L$SEH_begin_gcm_ghash_clmul_1
DB 120
DW 1
DB $L$SEH_prolog_gcm_ghash_clmul_3-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_3-$L$SEH_begin_gcm_ghash_clmul_1
DB 104
DW 0
DB $L$SEH_prolog_gcm_ghash_clmul_2-$L$SEH_begin_gcm_ghash_clmul_1
DB $L$SEH_prologue_gcm_ghash_clmul_2-$L$SEH_begin_gcm_ghash_clmul_1
DB 1
DW 21
$L$SEH_info_gcm_init_avx_0:
DB 1
DB $L$SEH_prolog_gcm_init_avx_3-$L$SEH_begin_gcm_init_avx_1
DB $L$SEH_endprologue_gcm_init_avx_4-$L$SEH_begin_gcm_init_avx_1
DB 3
DB 0
DB $L$SEH_prolog_gcm_init_avx_3-$L$SEH_begin_gcm_init_avx_1
DB $L$SEH_prologue_gcm_init_avx_3-$L$SEH_begin_gcm_init_avx_1
DB 104
DW 0
DB $L$SEH_prolog_gcm_init_avx_2-$L$SEH_begin_gcm_init_avx_1
DB $L$SEH_prologue_gcm_init_avx_2-$L$SEH_begin_gcm_init_avx_1
DB 34
$L$SEH_info_gcm_ghash_avx_0:
DB 1
DB $L$SEH_prolog_gcm_ghash_avx_12-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_endprologue_gcm_ghash_avx_13-$L$SEH_begin_gcm_ghash_avx_1
DB 22
DB 0
DB $L$SEH_prolog_gcm_ghash_avx_12-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_12-$L$SEH_begin_gcm_ghash_avx_1
DB 248
DW 9
DB $L$SEH_prolog_gcm_ghash_avx_11-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_11-$L$SEH_begin_gcm_ghash_avx_1
DB 232
DW 8
DB $L$SEH_prolog_gcm_ghash_avx_10-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_10-$L$SEH_begin_gcm_ghash_avx_1
DB 216
DW 7
DB $L$SEH_prolog_gcm_ghash_avx_9-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_9-$L$SEH_begin_gcm_ghash_avx_1
DB 200
DW 6
DB $L$SEH_prolog_gcm_ghash_avx_8-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_8-$L$SEH_begin_gcm_ghash_avx_1
DB 184
DW 5
DB $L$SEH_prolog_gcm_ghash_avx_7-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_7-$L$SEH_begin_gcm_ghash_avx_1
DB 168
DW 4
DB $L$SEH_prolog_gcm_ghash_avx_6-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_6-$L$SEH_begin_gcm_ghash_avx_1
DB 152
DW 3
DB $L$SEH_prolog_gcm_ghash_avx_5-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_5-$L$SEH_begin_gcm_ghash_avx_1
DB 136
DW 2
DB $L$SEH_prolog_gcm_ghash_avx_4-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_4-$L$SEH_begin_gcm_ghash_avx_1
DB 120
DW 1
DB $L$SEH_prolog_gcm_ghash_avx_3-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_3-$L$SEH_begin_gcm_ghash_avx_1
DB 104
DW 0
DB $L$SEH_prolog_gcm_ghash_avx_2-$L$SEH_begin_gcm_ghash_avx_1
DB $L$SEH_prologue_gcm_ghash_avx_2-$L$SEH_begin_gcm_ghash_avx_1
DB 1
DW 21
%else
@@ -52,6 +52,7 @@ _CET_ENDBR
movq %r15,104(%rsp)
movq 0(%rsi),%rbx
movq 8(%rsi),%rbp
movq 16(%rsi),%r12
@@ -473,6 +474,7 @@ _CET_ENDBR
nop
popq %r12
@@ -496,6 +498,7 @@ _CET_ENDBR
movq %r12,%rax
incq %rax
movq %rax,(%rsp)
@@ -52,6 +52,7 @@ _CET_ENDBR
movq %r15,104(%rsp)
.cfi_offset r15, -24
movq 0(%rsi),%rbx
movq 8(%rsi),%rbp
movq 16(%rsi),%r12
@@ -474,6 +475,7 @@ _CET_ENDBR
nop
popq %r12
.cfi_adjust_cfa_offset -8
@@ -499,6 +501,7 @@ _CET_ENDBR
.cfi_offset %r12,-16
movq %r12,%rax
incq %rax
movq %rax,(%rsp)
+60 -56
View File
@@ -39,61 +39,62 @@ _CET_ENDBR
sub rsp,344
$L$SEH_prolog_abi_test_trampoline_2:
$L$SEH_prologue_abi_test_trampoline_2:
mov QWORD[112+rsp],rbx
$L$SEH_prolog_abi_test_trampoline_3:
$L$SEH_prologue_abi_test_trampoline_3:
mov QWORD[120+rsp],rbp
$L$SEH_prolog_abi_test_trampoline_4:
$L$SEH_prologue_abi_test_trampoline_4:
mov QWORD[128+rsp],rdi
$L$SEH_prolog_abi_test_trampoline_5:
$L$SEH_prologue_abi_test_trampoline_5:
mov QWORD[136+rsp],rsi
$L$SEH_prolog_abi_test_trampoline_6:
$L$SEH_prologue_abi_test_trampoline_6:
mov QWORD[144+rsp],r12
$L$SEH_prolog_abi_test_trampoline_7:
$L$SEH_prologue_abi_test_trampoline_7:
mov QWORD[152+rsp],r13
$L$SEH_prolog_abi_test_trampoline_8:
$L$SEH_prologue_abi_test_trampoline_8:
mov QWORD[160+rsp],r14
$L$SEH_prolog_abi_test_trampoline_9:
$L$SEH_prologue_abi_test_trampoline_9:
mov QWORD[168+rsp],r15
$L$SEH_prolog_abi_test_trampoline_10:
$L$SEH_prologue_abi_test_trampoline_10:
movdqa XMMWORD[176+rsp],xmm6
$L$SEH_prolog_abi_test_trampoline_11:
$L$SEH_prologue_abi_test_trampoline_11:
movdqa XMMWORD[192+rsp],xmm7
$L$SEH_prolog_abi_test_trampoline_12:
$L$SEH_prologue_abi_test_trampoline_12:
movdqa XMMWORD[208+rsp],xmm8
$L$SEH_prolog_abi_test_trampoline_13:
$L$SEH_prologue_abi_test_trampoline_13:
movdqa XMMWORD[224+rsp],xmm9
$L$SEH_prolog_abi_test_trampoline_14:
$L$SEH_prologue_abi_test_trampoline_14:
movdqa XMMWORD[240+rsp],xmm10
$L$SEH_prolog_abi_test_trampoline_15:
$L$SEH_prologue_abi_test_trampoline_15:
movdqa XMMWORD[256+rsp],xmm11
$L$SEH_prolog_abi_test_trampoline_16:
$L$SEH_prologue_abi_test_trampoline_16:
movdqa XMMWORD[272+rsp],xmm12
$L$SEH_prolog_abi_test_trampoline_17:
$L$SEH_prologue_abi_test_trampoline_17:
movdqa XMMWORD[288+rsp],xmm13
$L$SEH_prolog_abi_test_trampoline_18:
$L$SEH_prologue_abi_test_trampoline_18:
movdqa XMMWORD[304+rsp],xmm14
$L$SEH_prolog_abi_test_trampoline_19:
$L$SEH_prologue_abi_test_trampoline_19:
movdqa XMMWORD[320+rsp],xmm15
$L$SEH_prolog_abi_test_trampoline_20:
$L$SEH_prologue_abi_test_trampoline_20:
$L$SEH_endprologue_abi_test_trampoline_21:
mov rbx,QWORD[rdx]
mov rbp,QWORD[8+rdx]
mov rdi,QWORD[16+rdx]
@@ -254,7 +255,7 @@ $L$call_done:
ret
$L$SEH_end_abi_test_trampoline_21:
$L$SEH_end_abi_test_trampoline_22:
global abi_test_clobber_rax
@@ -516,7 +517,8 @@ $L$SEH_begin_abi_test_bad_unwind_wrong_register_1:
_CET_ENDBR
push r12
$L$SEH_prolog_abi_test_bad_unwind_wrong_register_2:
$L$SEH_prologue_abi_test_bad_unwind_wrong_register_2:
$L$SEH_endprologue_abi_test_bad_unwind_wrong_register_3:
@@ -524,7 +526,7 @@ $L$SEH_prolog_abi_test_bad_unwind_wrong_register_2:
pop r12
ret
$L$SEH_end_abi_test_bad_unwind_wrong_register_3:
$L$SEH_end_abi_test_bad_unwind_wrong_register_4:
@@ -540,7 +542,8 @@ $L$SEH_begin_abi_test_bad_unwind_temporary_1:
_CET_ENDBR
push r12
$L$SEH_prolog_abi_test_bad_unwind_temporary_2:
$L$SEH_prologue_abi_test_bad_unwind_temporary_2:
$L$SEH_endprologue_abi_test_bad_unwind_temporary_3:
mov rax,r12
inc rax
@@ -555,7 +558,7 @@ $L$SEH_prolog_abi_test_bad_unwind_temporary_2:
ret
$L$SEH_end_abi_test_bad_unwind_temporary_3:
$L$SEH_end_abi_test_bad_unwind_temporary_4:
@@ -592,7 +595,8 @@ ALIGN 16
abi_test_bad_unwind_epilog:
$L$SEH_begin_abi_test_bad_unwind_epilog_1:
push r12
$L$SEH_prolog_abi_test_bad_unwind_epilog_2:
$L$SEH_prologue_abi_test_bad_unwind_epilog_2:
$L$SEH_endprologue_abi_test_bad_unwind_epilog_3:
nop
@@ -600,24 +604,24 @@ $L$SEH_prolog_abi_test_bad_unwind_epilog_2:
pop r12
nop
ret
$L$SEH_end_abi_test_bad_unwind_epilog_3:
$L$SEH_end_abi_test_bad_unwind_epilog_4:
section .pdata rdata align=4
ALIGN 4
DD $L$SEH_begin_abi_test_trampoline_1 wrt ..imagebase
DD $L$SEH_end_abi_test_trampoline_21 wrt ..imagebase
DD $L$SEH_end_abi_test_trampoline_22 wrt ..imagebase
DD $L$SEH_info_abi_test_trampoline_0 wrt ..imagebase
DD $L$SEH_begin_abi_test_bad_unwind_wrong_register_1 wrt ..imagebase
DD $L$SEH_end_abi_test_bad_unwind_wrong_register_3 wrt ..imagebase
DD $L$SEH_end_abi_test_bad_unwind_wrong_register_4 wrt ..imagebase
DD $L$SEH_info_abi_test_bad_unwind_wrong_register_0 wrt ..imagebase
DD $L$SEH_begin_abi_test_bad_unwind_temporary_1 wrt ..imagebase
DD $L$SEH_end_abi_test_bad_unwind_temporary_3 wrt ..imagebase
DD $L$SEH_end_abi_test_bad_unwind_temporary_4 wrt ..imagebase
DD $L$SEH_info_abi_test_bad_unwind_temporary_0 wrt ..imagebase
DD $L$SEH_begin_abi_test_bad_unwind_epilog_1 wrt ..imagebase
DD $L$SEH_end_abi_test_bad_unwind_epilog_3 wrt ..imagebase
DD $L$SEH_end_abi_test_bad_unwind_epilog_4 wrt ..imagebase
DD $L$SEH_info_abi_test_bad_unwind_epilog_0 wrt ..imagebase
@@ -625,89 +629,89 @@ section .xdata rdata align=8
ALIGN 4
$L$SEH_info_abi_test_trampoline_0:
DB 1
DB $L$SEH_prolog_abi_test_trampoline_20-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_endprologue_abi_test_trampoline_21-$L$SEH_begin_abi_test_trampoline_1
DB 38
DB 0
DB $L$SEH_prolog_abi_test_trampoline_20-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_20-$L$SEH_begin_abi_test_trampoline_1
DB 248
DW 20
DB $L$SEH_prolog_abi_test_trampoline_19-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_19-$L$SEH_begin_abi_test_trampoline_1
DB 232
DW 19
DB $L$SEH_prolog_abi_test_trampoline_18-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_18-$L$SEH_begin_abi_test_trampoline_1
DB 216
DW 18
DB $L$SEH_prolog_abi_test_trampoline_17-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_17-$L$SEH_begin_abi_test_trampoline_1
DB 200
DW 17
DB $L$SEH_prolog_abi_test_trampoline_16-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_16-$L$SEH_begin_abi_test_trampoline_1
DB 184
DW 16
DB $L$SEH_prolog_abi_test_trampoline_15-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_15-$L$SEH_begin_abi_test_trampoline_1
DB 168
DW 15
DB $L$SEH_prolog_abi_test_trampoline_14-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_14-$L$SEH_begin_abi_test_trampoline_1
DB 152
DW 14
DB $L$SEH_prolog_abi_test_trampoline_13-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_13-$L$SEH_begin_abi_test_trampoline_1
DB 136
DW 13
DB $L$SEH_prolog_abi_test_trampoline_12-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_12-$L$SEH_begin_abi_test_trampoline_1
DB 120
DW 12
DB $L$SEH_prolog_abi_test_trampoline_11-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_11-$L$SEH_begin_abi_test_trampoline_1
DB 104
DW 11
DB $L$SEH_prolog_abi_test_trampoline_10-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_10-$L$SEH_begin_abi_test_trampoline_1
DB 244
DW 21
DB $L$SEH_prolog_abi_test_trampoline_9-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_9-$L$SEH_begin_abi_test_trampoline_1
DB 228
DW 20
DB $L$SEH_prolog_abi_test_trampoline_8-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_8-$L$SEH_begin_abi_test_trampoline_1
DB 212
DW 19
DB $L$SEH_prolog_abi_test_trampoline_7-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_7-$L$SEH_begin_abi_test_trampoline_1
DB 196
DW 18
DB $L$SEH_prolog_abi_test_trampoline_6-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_6-$L$SEH_begin_abi_test_trampoline_1
DB 100
DW 17
DB $L$SEH_prolog_abi_test_trampoline_5-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_5-$L$SEH_begin_abi_test_trampoline_1
DB 116
DW 16
DB $L$SEH_prolog_abi_test_trampoline_4-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_4-$L$SEH_begin_abi_test_trampoline_1
DB 84
DW 15
DB $L$SEH_prolog_abi_test_trampoline_3-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_3-$L$SEH_begin_abi_test_trampoline_1
DB 52
DW 14
DB $L$SEH_prolog_abi_test_trampoline_2-$L$SEH_begin_abi_test_trampoline_1
DB $L$SEH_prologue_abi_test_trampoline_2-$L$SEH_begin_abi_test_trampoline_1
DB 1
DW 43
$L$SEH_info_abi_test_bad_unwind_wrong_register_0:
DB 1
DB $L$SEH_prolog_abi_test_bad_unwind_wrong_register_2-$L$SEH_begin_abi_test_bad_unwind_wrong_register_1
DB $L$SEH_endprologue_abi_test_bad_unwind_wrong_register_3-$L$SEH_begin_abi_test_bad_unwind_wrong_register_1
DB 1
DB 0
DB $L$SEH_prolog_abi_test_bad_unwind_wrong_register_2-$L$SEH_begin_abi_test_bad_unwind_wrong_register_1
DB $L$SEH_prologue_abi_test_bad_unwind_wrong_register_2-$L$SEH_begin_abi_test_bad_unwind_wrong_register_1
DB 208
$L$SEH_info_abi_test_bad_unwind_temporary_0:
DB 1
DB $L$SEH_prolog_abi_test_bad_unwind_temporary_2-$L$SEH_begin_abi_test_bad_unwind_temporary_1
DB $L$SEH_endprologue_abi_test_bad_unwind_temporary_3-$L$SEH_begin_abi_test_bad_unwind_temporary_1
DB 1
DB 0
DB $L$SEH_prolog_abi_test_bad_unwind_temporary_2-$L$SEH_begin_abi_test_bad_unwind_temporary_1
DB $L$SEH_prologue_abi_test_bad_unwind_temporary_2-$L$SEH_begin_abi_test_bad_unwind_temporary_1
DB 192
$L$SEH_info_abi_test_bad_unwind_epilog_0:
DB 1
DB $L$SEH_prolog_abi_test_bad_unwind_epilog_2-$L$SEH_begin_abi_test_bad_unwind_epilog_1
DB $L$SEH_endprologue_abi_test_bad_unwind_epilog_3-$L$SEH_begin_abi_test_bad_unwind_epilog_1
DB 1
DB 0
DB $L$SEH_prolog_abi_test_bad_unwind_epilog_2-$L$SEH_begin_abi_test_bad_unwind_epilog_1
DB $L$SEH_prologue_abi_test_bad_unwind_epilog_2-$L$SEH_begin_abi_test_bad_unwind_epilog_1
DB 192
%else
; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738