update main-with-bazel from master branch
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user