CFI tag AES-NI key expansion helpers.

962432c brought 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 commit 6ee4f9de00)
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/70267
This commit is contained in:
Adam Langley
2024-08-14 20:05:12 +00:00
committed by Adam Langley
parent 6a235ee922
commit ee26855eda
4 changed files with 40 additions and 0 deletions
+10
View File
@@ -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
+10
View File
@@ -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
+10
View File
@@ -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
+10
View File
@@ -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