CFI tag AES-NI key expansion helpers.
962432cbrought in some OpenSSL assembly that's missing CFI start/end tags around some functions. This doesn't trigger the unwind tests in many contexts, but it does trigger test errors on Ubuntu 24.04 for x86-64. Change-Id: Ib97509b4699aa587f084d2fa07fbf01ce61581e2 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70127 Commit-Queue: Adam Langley <agl@google.com> Reviewed-by: David Benjamin <davidben@google.com> (cherry picked from commit6ee4f9de00) Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70267
This commit is contained in:
committed by
Adam Langley
parent
6a235ee922
commit
ee26855eda
@@ -3385,6 +3385,7 @@ ${PREFIX}_set_encrypt_key_base:
|
||||
|
||||
.align 16
|
||||
.Lkey_expansion_128:
|
||||
.cfi_startproc
|
||||
$movkey %xmm0,(%rax)
|
||||
lea 16(%rax),%rax
|
||||
.Lkey_expansion_128_cold:
|
||||
@@ -3395,9 +3396,11 @@ ${PREFIX}_set_encrypt_key_base:
|
||||
shufps \$0b11111111,%xmm1,%xmm1 # critical path
|
||||
xorps %xmm1,%xmm0
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
.align 16
|
||||
.Lkey_expansion_192a:
|
||||
.cfi_startproc
|
||||
$movkey %xmm0,(%rax)
|
||||
lea 16(%rax),%rax
|
||||
.Lkey_expansion_192a_cold:
|
||||
@@ -3415,9 +3418,11 @@ ${PREFIX}_set_encrypt_key_base:
|
||||
pshufd \$0b11111111,%xmm0,%xmm3
|
||||
pxor %xmm3,%xmm2
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
.align 16
|
||||
.Lkey_expansion_192b:
|
||||
.cfi_startproc
|
||||
movaps %xmm0,%xmm3
|
||||
shufps \$0b01000100,%xmm0,%xmm5
|
||||
$movkey %xmm5,(%rax)
|
||||
@@ -3425,9 +3430,11 @@ ${PREFIX}_set_encrypt_key_base:
|
||||
$movkey %xmm3,16(%rax)
|
||||
lea 32(%rax),%rax
|
||||
jmp .Lkey_expansion_192b_warm
|
||||
.cfi_endproc
|
||||
|
||||
.align 16
|
||||
.Lkey_expansion_256a:
|
||||
.cfi_startproc
|
||||
$movkey %xmm2,(%rax)
|
||||
lea 16(%rax),%rax
|
||||
.Lkey_expansion_256a_cold:
|
||||
@@ -3438,9 +3445,11 @@ ${PREFIX}_set_encrypt_key_base:
|
||||
shufps \$0b11111111,%xmm1,%xmm1 # critical path
|
||||
xorps %xmm1,%xmm0
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
.align 16
|
||||
.Lkey_expansion_256b:
|
||||
.cfi_startproc
|
||||
$movkey %xmm0,(%rax)
|
||||
lea 16(%rax),%rax
|
||||
|
||||
@@ -3451,6 +3460,7 @@ ${PREFIX}_set_encrypt_key_base:
|
||||
shufps \$0b10101010,%xmm1,%xmm1 # critical path
|
||||
xorps %xmm1,%xmm2
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size ${PREFIX}_set_encrypt_key_base,.-${PREFIX}_set_encrypt_key_base
|
||||
|
||||
.globl ${PREFIX}_set_encrypt_key_alt
|
||||
|
||||
@@ -2082,6 +2082,7 @@ L$enc_key_ret:
|
||||
|
||||
.p2align 4
|
||||
L$key_expansion_128:
|
||||
|
||||
movups %xmm0,(%rax)
|
||||
leaq 16(%rax),%rax
|
||||
L$key_expansion_128_cold:
|
||||
@@ -2093,8 +2094,10 @@ L$key_expansion_128_cold:
|
||||
xorps %xmm1,%xmm0
|
||||
ret
|
||||
|
||||
|
||||
.p2align 4
|
||||
L$key_expansion_192a:
|
||||
|
||||
movups %xmm0,(%rax)
|
||||
leaq 16(%rax),%rax
|
||||
L$key_expansion_192a_cold:
|
||||
@@ -2113,8 +2116,10 @@ L$key_expansion_192b_warm:
|
||||
pxor %xmm3,%xmm2
|
||||
ret
|
||||
|
||||
|
||||
.p2align 4
|
||||
L$key_expansion_192b:
|
||||
|
||||
movaps %xmm0,%xmm3
|
||||
shufps $68,%xmm0,%xmm5
|
||||
movups %xmm5,(%rax)
|
||||
@@ -2123,8 +2128,10 @@ L$key_expansion_192b:
|
||||
leaq 32(%rax),%rax
|
||||
jmp L$key_expansion_192b_warm
|
||||
|
||||
|
||||
.p2align 4
|
||||
L$key_expansion_256a:
|
||||
|
||||
movups %xmm2,(%rax)
|
||||
leaq 16(%rax),%rax
|
||||
L$key_expansion_256a_cold:
|
||||
@@ -2136,8 +2143,10 @@ L$key_expansion_256a_cold:
|
||||
xorps %xmm1,%xmm0
|
||||
ret
|
||||
|
||||
|
||||
.p2align 4
|
||||
L$key_expansion_256b:
|
||||
|
||||
movups %xmm0,(%rax)
|
||||
leaq 16(%rax),%rax
|
||||
|
||||
@@ -2150,6 +2159,7 @@ L$key_expansion_256b:
|
||||
ret
|
||||
|
||||
|
||||
|
||||
.globl _aes_hw_set_encrypt_key_alt
|
||||
.private_extern _aes_hw_set_encrypt_key_alt
|
||||
|
||||
|
||||
@@ -2083,6 +2083,7 @@ _CET_ENDBR
|
||||
|
||||
.align 16
|
||||
.Lkey_expansion_128:
|
||||
.cfi_startproc
|
||||
movups %xmm0,(%rax)
|
||||
leaq 16(%rax),%rax
|
||||
.Lkey_expansion_128_cold:
|
||||
@@ -2093,9 +2094,11 @@ _CET_ENDBR
|
||||
shufps $255,%xmm1,%xmm1
|
||||
xorps %xmm1,%xmm0
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
.align 16
|
||||
.Lkey_expansion_192a:
|
||||
.cfi_startproc
|
||||
movups %xmm0,(%rax)
|
||||
leaq 16(%rax),%rax
|
||||
.Lkey_expansion_192a_cold:
|
||||
@@ -2113,9 +2116,11 @@ _CET_ENDBR
|
||||
pshufd $255,%xmm0,%xmm3
|
||||
pxor %xmm3,%xmm2
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
.align 16
|
||||
.Lkey_expansion_192b:
|
||||
.cfi_startproc
|
||||
movaps %xmm0,%xmm3
|
||||
shufps $68,%xmm0,%xmm5
|
||||
movups %xmm5,(%rax)
|
||||
@@ -2123,9 +2128,11 @@ _CET_ENDBR
|
||||
movups %xmm3,16(%rax)
|
||||
leaq 32(%rax),%rax
|
||||
jmp .Lkey_expansion_192b_warm
|
||||
.cfi_endproc
|
||||
|
||||
.align 16
|
||||
.Lkey_expansion_256a:
|
||||
.cfi_startproc
|
||||
movups %xmm2,(%rax)
|
||||
leaq 16(%rax),%rax
|
||||
.Lkey_expansion_256a_cold:
|
||||
@@ -2136,9 +2143,11 @@ _CET_ENDBR
|
||||
shufps $255,%xmm1,%xmm1
|
||||
xorps %xmm1,%xmm0
|
||||
ret
|
||||
.cfi_endproc
|
||||
|
||||
.align 16
|
||||
.Lkey_expansion_256b:
|
||||
.cfi_startproc
|
||||
movups %xmm0,(%rax)
|
||||
leaq 16(%rax),%rax
|
||||
|
||||
@@ -2149,6 +2158,7 @@ _CET_ENDBR
|
||||
shufps $170,%xmm1,%xmm1
|
||||
xorps %xmm1,%xmm2
|
||||
ret
|
||||
.cfi_endproc
|
||||
.size aes_hw_set_encrypt_key_base,.-aes_hw_set_encrypt_key_base
|
||||
|
||||
.globl aes_hw_set_encrypt_key_alt
|
||||
|
||||
@@ -2187,6 +2187,7 @@ $L$SEH_end_aes_hw_set_encrypt_key_base_4:
|
||||
|
||||
ALIGN 16
|
||||
$L$key_expansion_128:
|
||||
|
||||
movups XMMWORD[rax],xmm0
|
||||
lea rax,[16+rax]
|
||||
$L$key_expansion_128_cold:
|
||||
@@ -2198,8 +2199,10 @@ $L$key_expansion_128_cold:
|
||||
xorps xmm0,xmm1
|
||||
ret
|
||||
|
||||
|
||||
ALIGN 16
|
||||
$L$key_expansion_192a:
|
||||
|
||||
movups XMMWORD[rax],xmm0
|
||||
lea rax,[16+rax]
|
||||
$L$key_expansion_192a_cold:
|
||||
@@ -2218,8 +2221,10 @@ $L$key_expansion_192b_warm:
|
||||
pxor xmm2,xmm3
|
||||
ret
|
||||
|
||||
|
||||
ALIGN 16
|
||||
$L$key_expansion_192b:
|
||||
|
||||
movaps xmm3,xmm0
|
||||
shufps xmm5,xmm0,68
|
||||
movups XMMWORD[rax],xmm5
|
||||
@@ -2228,8 +2233,10 @@ $L$key_expansion_192b:
|
||||
lea rax,[32+rax]
|
||||
jmp NEAR $L$key_expansion_192b_warm
|
||||
|
||||
|
||||
ALIGN 16
|
||||
$L$key_expansion_256a:
|
||||
|
||||
movups XMMWORD[rax],xmm2
|
||||
lea rax,[16+rax]
|
||||
$L$key_expansion_256a_cold:
|
||||
@@ -2241,8 +2248,10 @@ $L$key_expansion_256a_cold:
|
||||
xorps xmm0,xmm1
|
||||
ret
|
||||
|
||||
|
||||
ALIGN 16
|
||||
$L$key_expansion_256b:
|
||||
|
||||
movups XMMWORD[rax],xmm0
|
||||
lea rax,[16+rax]
|
||||
|
||||
@@ -2255,6 +2264,7 @@ $L$key_expansion_256b:
|
||||
ret
|
||||
|
||||
|
||||
|
||||
global aes_hw_set_encrypt_key_alt
|
||||
|
||||
ALIGN 16
|
||||
|
||||
Reference in New Issue
Block a user