diff --git a/crypto/fipsmodule/aes/asm/aesv8-armx.pl b/crypto/fipsmodule/aes/asm/aesv8-armx.pl index 7afc43d3bf..8c49f1f2c0 100644 --- a/crypto/fipsmodule/aes/asm/aesv8-armx.pl +++ b/crypto/fipsmodule/aes/asm/aesv8-armx.pl @@ -96,6 +96,7 @@ .type ${prefix}_set_encrypt_key,%function .align 5 ${prefix}_set_encrypt_key: +.cfi_startproc .Lenc_key: ___ $code.=<<___ if ($flavour =~ /64/); @@ -109,7 +110,11 @@ // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! + .cfi_def_cfa_offset 16 + .cfi_offset x29, -16 + .cfi_offset x30, -8 add x29,sp,#0 + .cfi_def_cfa x29, 16 ___ $code.=<<___; mov $ptr,#-1 @@ -277,21 +282,32 @@ .Lenc_key_abort: mov x0,$ptr // return value `"ldr x29,[sp],#16" if ($flavour =~ /64/)` + `".cfi_restore x29" if ($flavour =~ /64/)` + `".cfi_def_cfa_offset 0" if ($flavour =~ /64/)` ret +.cfi_endproc .size ${prefix}_set_encrypt_key,.-${prefix}_set_encrypt_key .globl ${prefix}_set_decrypt_key .type ${prefix}_set_decrypt_key,%function .align 5 ${prefix}_set_decrypt_key: +.cfi_startproc ___ $code.=<<___ if ($flavour =~ /64/); AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! + .cfi_def_cfa_offset 16 + .cfi_offset x29, -16 + .cfi_offset x30, -8 add x29,sp,#0 + .cfi_def_cfa x29, 16 ___ $code.=<<___ if ($flavour !~ /64/); stmdb sp!,{r4,lr} + .cfi_def_cfa_offset 8 + .cfi_offset r4, -8 + .cfi_offset lr, -4 ___ $code.=<<___; bl .Lenc_key @@ -327,13 +343,20 @@ ___ $code.=<<___ if ($flavour !~ /64/); ldmia sp!,{r4,pc} + .cfi_restore r4 + .cfi_restore lr + .cfi_def_cfa_offset 0 ___ $code.=<<___ if ($flavour =~ /64/); ldp x29,x30,[sp],#16 + .cfi_restore x29 + .cfi_restore x30 + .cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret ___ $code.=<<___; +.cfi_endproc .size ${prefix}_set_decrypt_key,.-${prefix}_set_decrypt_key ___ }}} @@ -350,6 +373,7 @@ () .type ${prefix}_${dir}crypt,%function .align 5 ${prefix}_${dir}crypt: +.cfi_startproc ___ $code.=<<___ if ($flavour =~ /64/); #ifdef BORINGSSL_DISPATCH_TEST @@ -386,6 +410,7 @@ () vst1.8 {$inout},[$out] ret +.cfi_endproc .size ${prefix}_${dir}crypt,.-${prefix}_${dir}crypt ___ } @@ -407,17 +432,38 @@ () .type ${prefix}_cbc_encrypt,%function .align 5 ${prefix}_cbc_encrypt: +.cfi_startproc ___ $code.=<<___ if ($flavour =~ /64/); // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! + .cfi_def_cfa_offset 16 + .cfi_offset x29, -16 + .cfi_offset x30, -8 add x29,sp,#0 + .cfi_def_cfa x29, 16 ___ $code.=<<___ if ($flavour !~ /64/); mov ip,sp stmdb sp!,{r4-r8,lr} + .cfi_def_cfa_offset 24 + .cfi_offset r4, -24 + .cfi_offset r5, -20 + .cfi_offset r6, -16 + .cfi_offset r7, -12 + .cfi_offset r8, -8 + .cfi_offset lr, -4 vstmdb sp!,{d8-d15} @ ABI specification says so + .cfi_def_cfa_offset 88 + .cfi_offset d8, -88 + .cfi_offset d9, -80 + .cfi_offset d10, -72 + .cfi_offset d11, -64 + .cfi_offset d12, -56 + .cfi_offset d13, -48 + .cfi_offset d14, -40 + .cfi_offset d15, -32 ldmia ip,{r4-r5} @ load remaining args ___ $code.=<<___; @@ -710,13 +756,32 @@ () } $code.=<<___ if ($flavour !~ /64/); vldmia sp!,{d8-d15} + .cfi_restore d8 + .cfi_restore d9 + .cfi_restore d10 + .cfi_restore d11 + .cfi_restore d12 + .cfi_restore d13 + .cfi_restore d14 + .cfi_restore d15 + .cfi_def_cfa_offset 24 ldmia sp!,{r4-r8,pc} + .cfi_restore r4 + .cfi_restore r5 + .cfi_restore r6 + .cfi_restore r7 + .cfi_restore r8 + .cfi_restore lr + .cfi_def_cfa_offset 0 ___ $code.=<<___ if ($flavour =~ /64/); ldr x29,[sp],#16 + .cfi_restore x29 + .cfi_def_cfa_offset 0 ret ___ $code.=<<___; +.cfi_endproc .size ${prefix}_cbc_encrypt,.-${prefix}_cbc_encrypt ___ }}} @@ -738,6 +803,7 @@ () .type ${prefix}_ctr32_encrypt_blocks,%function .align 5 ${prefix}_ctr32_encrypt_blocks: +.cfi_startproc ___ $code.=<<___ if ($flavour =~ /64/); #ifdef BORINGSSL_DISPATCH_TEST @@ -750,12 +816,34 @@ () // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! + .cfi_def_cfa_offset 16 + .cfi_offset x29, -16 + .cfi_offset x30, -8 add x29,sp,#0 + .cfi_def_cfa x29, 16 ___ $code.=<<___ if ($flavour !~ /64/); mov ip,sp stmdb sp!,{r4-r10,lr} + .cfi_def_cfa_offset 32 + .cfi_offset r4, -32 + .cfi_offset r5, -28 + .cfi_offset r6, -24 + .cfi_offset r7, -20 + .cfi_offset r8, -16 + .cfi_offset r9, -12 + .cfi_offset r10, -8 + .cfi_offset lr, -4 vstmdb sp!,{d8-d15} @ ABI specification says so + .cfi_def_cfa_offset 96 + .cfi_offset d8, -96 + .cfi_offset d9, -88 + .cfi_offset d10, -80 + .cfi_offset d11, -72 + .cfi_offset d12, -64 + .cfi_offset d13, -56 + .cfi_offset d14, -48 + .cfi_offset d15, -40 ldr r4, [ip] @ load remaining arg ___ $code.=<<___; @@ -958,13 +1046,34 @@ () ___ $code.=<<___ if ($flavour !~ /64/); vldmia sp!,{d8-d15} + .cfi_restore d8 + .cfi_restore d9 + .cfi_restore d10 + .cfi_restore d11 + .cfi_restore d12 + .cfi_restore d13 + .cfi_restore d14 + .cfi_restore d15 + .cfi_def_cfa_offset 32 ldmia sp!,{r4-r10,pc} + .cfi_restore r4 + .cfi_restore r5 + .cfi_restore r6 + .cfi_restore r7 + .cfi_restore r8 + .cfi_restore r9 + .cfi_restore r10 + .cfi_restore lr + .cfi_def_cfa_offset 0 ___ $code.=<<___ if ($flavour =~ /64/); ldr x29,[sp],#16 + .cfi_restore x29 + .cfi_def_cfa_offset 0 ret ___ $code.=<<___; +.cfi_endproc .size ${prefix}_ctr32_encrypt_blocks,.-${prefix}_ctr32_encrypt_blocks ___ }}} diff --git a/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-armx.S b/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-armx.S index cd9501f395..2439b4d9b5 100644 --- a/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-armx.S +++ b/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-armx.S @@ -23,6 +23,7 @@ Lrcon: .align 5 _aes_hw_set_encrypt_key: +.cfi_startproc Lenc_key: #ifdef BORINGSSL_DISPATCH_TEST @@ -34,7 +35,11 @@ Lenc_key: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 mov x3,#-1 cmp x0,#0 b.eq Lenc_key_abort @@ -193,7 +198,10 @@ Ldone: Lenc_key_abort: mov x0,x3 // return value ldr x29,[sp],#16 +.cfi_restore x29 +.cfi_def_cfa_offset 0 ret +.cfi_endproc .globl _aes_hw_set_decrypt_key @@ -201,9 +209,14 @@ Lenc_key_abort: .align 5 _aes_hw_set_decrypt_key: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 bl Lenc_key cmp x0,#0 @@ -235,14 +248,19 @@ Loop_imc: eor x0,x0,x0 // return value Ldec_key_abort: ldp x29,x30,[sp],#16 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .globl _aes_hw_encrypt .private_extern _aes_hw_encrypt .align 5 _aes_hw_encrypt: +.cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST adrp x9,_BORINGSSL_function_hit@PAGE @@ -275,12 +293,14 @@ Loop_enc: st1 {v2.16b},[x1] ret +.cfi_endproc .globl _aes_hw_decrypt .private_extern _aes_hw_decrypt .align 5 _aes_hw_decrypt: +.cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST adrp x9,_BORINGSSL_function_hit@PAGE @@ -313,16 +333,22 @@ Loop_dec: st1 {v2.16b},[x1] ret +.cfi_endproc .globl _aes_hw_cbc_encrypt .private_extern _aes_hw_cbc_encrypt .align 5 _aes_hw_cbc_encrypt: +.cfi_startproc // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 subs x2,x2,#16 mov x8,#16 b.lo Lcbc_abort @@ -605,13 +631,17 @@ Lcbc_done: st1 {v6.16b},[x4] Lcbc_abort: ldr x29,[sp],#16 +.cfi_restore x29 +.cfi_def_cfa_offset 0 ret +.cfi_endproc .globl _aes_hw_ctr32_encrypt_blocks .private_extern _aes_hw_ctr32_encrypt_blocks .align 5 _aes_hw_ctr32_encrypt_blocks: +.cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST adrp x9,_BORINGSSL_function_hit@PAGE @@ -622,7 +652,11 @@ _aes_hw_ctr32_encrypt_blocks: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 ldr w5,[x3,#240] ldr w8, [x4, #12] @@ -812,7 +846,10 @@ Lctr32_tail: Lctr32_done: ldr x29,[sp],#16 +.cfi_restore x29 +.cfi_def_cfa_offset 0 ret +.cfi_endproc .globl _aes_hw_xts_encrypt .private_extern _aes_hw_xts_encrypt diff --git a/generated-src/ios-arm/crypto/fipsmodule/aesv8-armx.S b/generated-src/ios-arm/crypto/fipsmodule/aesv8-armx.S index 7331926865..4b5ff504a6 100644 --- a/generated-src/ios-arm/crypto/fipsmodule/aesv8-armx.S +++ b/generated-src/ios-arm/crypto/fipsmodule/aesv8-armx.S @@ -27,6 +27,7 @@ Lrcon: #endif .align 5 _aes_hw_set_encrypt_key: +.cfi_startproc Lenc_key: mov r3,#-1 cmp r0,#0 @@ -190,7 +191,10 @@ Ldone: Lenc_key_abort: mov r0,r3 @ return value + + bx lr +.cfi_endproc .globl _aes_hw_set_decrypt_key @@ -200,7 +204,11 @@ Lenc_key_abort: #endif .align 5 _aes_hw_set_decrypt_key: +.cfi_startproc stmdb sp!,{r4,lr} +.cfi_def_cfa_offset 8 +.cfi_offset r4, -8 +.cfi_offset lr, -4 bl Lenc_key cmp r0,#0 @@ -232,6 +240,10 @@ Loop_imc: eor r0,r0,r0 @ return value Ldec_key_abort: ldmia sp!,{r4,pc} +.cfi_restore r4 +.cfi_restore lr +.cfi_def_cfa_offset 0 +.cfi_endproc .globl _aes_hw_encrypt .private_extern _aes_hw_encrypt @@ -240,6 +252,7 @@ Ldec_key_abort: #endif .align 5 _aes_hw_encrypt: +.cfi_startproc AARCH64_VALID_CALL_TARGET ldr r3,[r2,#240] vld1.32 {q0},[r2]! @@ -265,6 +278,7 @@ Loop_enc: vst1.8 {q2},[r1] bx lr +.cfi_endproc .globl _aes_hw_decrypt .private_extern _aes_hw_decrypt @@ -273,6 +287,7 @@ Loop_enc: #endif .align 5 _aes_hw_decrypt: +.cfi_startproc AARCH64_VALID_CALL_TARGET ldr r3,[r2,#240] vld1.32 {q0},[r2]! @@ -298,6 +313,7 @@ Loop_dec: vst1.8 {q2},[r1] bx lr +.cfi_endproc .globl _aes_hw_cbc_encrypt .private_extern _aes_hw_cbc_encrypt @@ -306,9 +322,26 @@ Loop_dec: #endif .align 5 _aes_hw_cbc_encrypt: +.cfi_startproc mov ip,sp stmdb sp!,{r4,r5,r6,r7,r8,lr} +.cfi_def_cfa_offset 24 +.cfi_offset r4, -24 +.cfi_offset r5, -20 +.cfi_offset r6, -16 +.cfi_offset r7, -12 +.cfi_offset r8, -8 +.cfi_offset lr, -4 vstmdb sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ ABI specification says so +.cfi_def_cfa_offset 88 +.cfi_offset d8, -88 +.cfi_offset d9, -80 +.cfi_offset d10, -72 +.cfi_offset d11, -64 +.cfi_offset d12, -56 +.cfi_offset d13, -48 +.cfi_offset d14, -40 +.cfi_offset d15, -32 ldmia ip,{r4,r5} @ load remaining args subs r2,r2,#16 mov r8,#16 @@ -592,7 +625,24 @@ Lcbc_done: vst1.8 {q6},[r4] Lcbc_abort: vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15} +.cfi_restore d8 +.cfi_restore d9 +.cfi_restore d10 +.cfi_restore d11 +.cfi_restore d12 +.cfi_restore d13 +.cfi_restore d14 +.cfi_restore d15 +.cfi_def_cfa_offset 24 ldmia sp!,{r4,r5,r6,r7,r8,pc} +.cfi_restore r4 +.cfi_restore r5 +.cfi_restore r6 +.cfi_restore r7 +.cfi_restore r8 +.cfi_restore lr +.cfi_def_cfa_offset 0 +.cfi_endproc .globl _aes_hw_ctr32_encrypt_blocks .private_extern _aes_hw_ctr32_encrypt_blocks @@ -601,9 +651,28 @@ Lcbc_abort: #endif .align 5 _aes_hw_ctr32_encrypt_blocks: +.cfi_startproc mov ip,sp stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,lr} +.cfi_def_cfa_offset 32 +.cfi_offset r4, -32 +.cfi_offset r5, -28 +.cfi_offset r6, -24 +.cfi_offset r7, -20 +.cfi_offset r8, -16 +.cfi_offset r9, -12 +.cfi_offset r10, -8 +.cfi_offset lr, -4 vstmdb sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ ABI specification says so +.cfi_def_cfa_offset 96 +.cfi_offset d8, -96 +.cfi_offset d9, -88 +.cfi_offset d10, -80 +.cfi_offset d11, -72 +.cfi_offset d12, -64 +.cfi_offset d13, -56 +.cfi_offset d14, -48 +.cfi_offset d15, -40 ldr r4, [ip] @ load remaining arg ldr r5,[r3,#240] @@ -795,7 +864,26 @@ Lctr32_tail: Lctr32_done: vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15} +.cfi_restore d8 +.cfi_restore d9 +.cfi_restore d10 +.cfi_restore d11 +.cfi_restore d12 +.cfi_restore d13 +.cfi_restore d14 +.cfi_restore d15 +.cfi_def_cfa_offset 32 ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,pc} +.cfi_restore r4 +.cfi_restore r5 +.cfi_restore r6 +.cfi_restore r7 +.cfi_restore r8 +.cfi_restore r9 +.cfi_restore r10 +.cfi_restore lr +.cfi_def_cfa_offset 0 +.cfi_endproc #endif #endif // !OPENSSL_NO_ASM && defined(OPENSSL_ARM) && defined(__APPLE__) diff --git a/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-armx.S b/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-armx.S index 5d46bc3fd7..9e5428fa3a 100644 --- a/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-armx.S +++ b/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-armx.S @@ -23,6 +23,7 @@ .type aes_hw_set_encrypt_key,%function .align 5 aes_hw_set_encrypt_key: +.cfi_startproc .Lenc_key: #ifdef BORINGSSL_DISPATCH_TEST @@ -34,7 +35,11 @@ aes_hw_set_encrypt_key: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 mov x3,#-1 cmp x0,#0 b.eq .Lenc_key_abort @@ -193,7 +198,10 @@ aes_hw_set_encrypt_key: .Lenc_key_abort: mov x0,x3 // return value ldr x29,[sp],#16 +.cfi_restore x29 +.cfi_def_cfa_offset 0 ret +.cfi_endproc .size aes_hw_set_encrypt_key,.-aes_hw_set_encrypt_key .globl aes_hw_set_decrypt_key @@ -201,9 +209,14 @@ aes_hw_set_encrypt_key: .type aes_hw_set_decrypt_key,%function .align 5 aes_hw_set_decrypt_key: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 bl .Lenc_key cmp x0,#0 @@ -235,14 +248,19 @@ aes_hw_set_decrypt_key: eor x0,x0,x0 // return value .Ldec_key_abort: ldp x29,x30,[sp],#16 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .size aes_hw_set_decrypt_key,.-aes_hw_set_decrypt_key .globl aes_hw_encrypt .hidden aes_hw_encrypt .type aes_hw_encrypt,%function .align 5 aes_hw_encrypt: +.cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST adrp x9,BORINGSSL_function_hit @@ -275,12 +293,14 @@ aes_hw_encrypt: st1 {v2.16b},[x1] ret +.cfi_endproc .size aes_hw_encrypt,.-aes_hw_encrypt .globl aes_hw_decrypt .hidden aes_hw_decrypt .type aes_hw_decrypt,%function .align 5 aes_hw_decrypt: +.cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST adrp x9,BORINGSSL_function_hit @@ -313,16 +333,22 @@ aes_hw_decrypt: st1 {v2.16b},[x1] ret +.cfi_endproc .size aes_hw_decrypt,.-aes_hw_decrypt .globl aes_hw_cbc_encrypt .hidden aes_hw_cbc_encrypt .type aes_hw_cbc_encrypt,%function .align 5 aes_hw_cbc_encrypt: +.cfi_startproc // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 subs x2,x2,#16 mov x8,#16 b.lo .Lcbc_abort @@ -605,13 +631,17 @@ aes_hw_cbc_encrypt: st1 {v6.16b},[x4] .Lcbc_abort: ldr x29,[sp],#16 +.cfi_restore x29 +.cfi_def_cfa_offset 0 ret +.cfi_endproc .size aes_hw_cbc_encrypt,.-aes_hw_cbc_encrypt .globl aes_hw_ctr32_encrypt_blocks .hidden aes_hw_ctr32_encrypt_blocks .type aes_hw_ctr32_encrypt_blocks,%function .align 5 aes_hw_ctr32_encrypt_blocks: +.cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST adrp x9,BORINGSSL_function_hit @@ -622,7 +652,11 @@ aes_hw_ctr32_encrypt_blocks: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 ldr w5,[x3,#240] ldr w8, [x4, #12] @@ -812,7 +846,10 @@ aes_hw_ctr32_encrypt_blocks: .Lctr32_done: ldr x29,[sp],#16 +.cfi_restore x29 +.cfi_def_cfa_offset 0 ret +.cfi_endproc .size aes_hw_ctr32_encrypt_blocks,.-aes_hw_ctr32_encrypt_blocks .globl aes_hw_xts_encrypt .hidden aes_hw_xts_encrypt diff --git a/generated-src/linux-arm/crypto/fipsmodule/aesv8-armx.S b/generated-src/linux-arm/crypto/fipsmodule/aesv8-armx.S index 68da2aa7f6..71f31e7b0d 100644 --- a/generated-src/linux-arm/crypto/fipsmodule/aesv8-armx.S +++ b/generated-src/linux-arm/crypto/fipsmodule/aesv8-armx.S @@ -25,6 +25,7 @@ .type aes_hw_set_encrypt_key,%function .align 5 aes_hw_set_encrypt_key: +.cfi_startproc .Lenc_key: mov r3,#-1 cmp r0,#0 @@ -188,7 +189,10 @@ aes_hw_set_encrypt_key: .Lenc_key_abort: mov r0,r3 @ return value + + bx lr +.cfi_endproc .size aes_hw_set_encrypt_key,.-aes_hw_set_encrypt_key .globl aes_hw_set_decrypt_key @@ -196,7 +200,11 @@ aes_hw_set_encrypt_key: .type aes_hw_set_decrypt_key,%function .align 5 aes_hw_set_decrypt_key: +.cfi_startproc stmdb sp!,{r4,lr} +.cfi_def_cfa_offset 8 +.cfi_offset r4, -8 +.cfi_offset lr, -4 bl .Lenc_key cmp r0,#0 @@ -228,12 +236,17 @@ aes_hw_set_decrypt_key: eor r0,r0,r0 @ return value .Ldec_key_abort: ldmia sp!,{r4,pc} +.cfi_restore r4 +.cfi_restore lr +.cfi_def_cfa_offset 0 +.cfi_endproc .size aes_hw_set_decrypt_key,.-aes_hw_set_decrypt_key .globl aes_hw_encrypt .hidden aes_hw_encrypt .type aes_hw_encrypt,%function .align 5 aes_hw_encrypt: +.cfi_startproc AARCH64_VALID_CALL_TARGET ldr r3,[r2,#240] vld1.32 {q0},[r2]! @@ -259,12 +272,14 @@ aes_hw_encrypt: vst1.8 {q2},[r1] bx lr +.cfi_endproc .size aes_hw_encrypt,.-aes_hw_encrypt .globl aes_hw_decrypt .hidden aes_hw_decrypt .type aes_hw_decrypt,%function .align 5 aes_hw_decrypt: +.cfi_startproc AARCH64_VALID_CALL_TARGET ldr r3,[r2,#240] vld1.32 {q0},[r2]! @@ -290,15 +305,33 @@ aes_hw_decrypt: vst1.8 {q2},[r1] bx lr +.cfi_endproc .size aes_hw_decrypt,.-aes_hw_decrypt .globl aes_hw_cbc_encrypt .hidden aes_hw_cbc_encrypt .type aes_hw_cbc_encrypt,%function .align 5 aes_hw_cbc_encrypt: +.cfi_startproc mov ip,sp stmdb sp!,{r4,r5,r6,r7,r8,lr} +.cfi_def_cfa_offset 24 +.cfi_offset r4, -24 +.cfi_offset r5, -20 +.cfi_offset r6, -16 +.cfi_offset r7, -12 +.cfi_offset r8, -8 +.cfi_offset lr, -4 vstmdb sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ ABI specification says so +.cfi_def_cfa_offset 88 +.cfi_offset d8, -88 +.cfi_offset d9, -80 +.cfi_offset d10, -72 +.cfi_offset d11, -64 +.cfi_offset d12, -56 +.cfi_offset d13, -48 +.cfi_offset d14, -40 +.cfi_offset d15, -32 ldmia ip,{r4,r5} @ load remaining args subs r2,r2,#16 mov r8,#16 @@ -582,16 +615,52 @@ aes_hw_cbc_encrypt: vst1.8 {q6},[r4] .Lcbc_abort: vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15} +.cfi_restore d8 +.cfi_restore d9 +.cfi_restore d10 +.cfi_restore d11 +.cfi_restore d12 +.cfi_restore d13 +.cfi_restore d14 +.cfi_restore d15 +.cfi_def_cfa_offset 24 ldmia sp!,{r4,r5,r6,r7,r8,pc} +.cfi_restore r4 +.cfi_restore r5 +.cfi_restore r6 +.cfi_restore r7 +.cfi_restore r8 +.cfi_restore lr +.cfi_def_cfa_offset 0 +.cfi_endproc .size aes_hw_cbc_encrypt,.-aes_hw_cbc_encrypt .globl aes_hw_ctr32_encrypt_blocks .hidden aes_hw_ctr32_encrypt_blocks .type aes_hw_ctr32_encrypt_blocks,%function .align 5 aes_hw_ctr32_encrypt_blocks: +.cfi_startproc mov ip,sp stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,lr} +.cfi_def_cfa_offset 32 +.cfi_offset r4, -32 +.cfi_offset r5, -28 +.cfi_offset r6, -24 +.cfi_offset r7, -20 +.cfi_offset r8, -16 +.cfi_offset r9, -12 +.cfi_offset r10, -8 +.cfi_offset lr, -4 vstmdb sp!,{d8,d9,d10,d11,d12,d13,d14,d15} @ ABI specification says so +.cfi_def_cfa_offset 96 +.cfi_offset d8, -96 +.cfi_offset d9, -88 +.cfi_offset d10, -80 +.cfi_offset d11, -72 +.cfi_offset d12, -64 +.cfi_offset d13, -56 +.cfi_offset d14, -48 +.cfi_offset d15, -40 ldr r4, [ip] @ load remaining arg ldr r5,[r3,#240] @@ -783,7 +852,26 @@ aes_hw_ctr32_encrypt_blocks: .Lctr32_done: vldmia sp!,{d8,d9,d10,d11,d12,d13,d14,d15} +.cfi_restore d8 +.cfi_restore d9 +.cfi_restore d10 +.cfi_restore d11 +.cfi_restore d12 +.cfi_restore d13 +.cfi_restore d14 +.cfi_restore d15 +.cfi_def_cfa_offset 32 ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,pc} +.cfi_restore r4 +.cfi_restore r5 +.cfi_restore r6 +.cfi_restore r7 +.cfi_restore r8 +.cfi_restore r9 +.cfi_restore r10 +.cfi_restore lr +.cfi_def_cfa_offset 0 +.cfi_endproc .size aes_hw_ctr32_encrypt_blocks,.-aes_hw_ctr32_encrypt_blocks #endif #endif // !OPENSSL_NO_ASM && defined(OPENSSL_ARM) && defined(__ELF__) diff --git a/generated-src/win-aarch64/crypto/fipsmodule/aesv8-armx.S b/generated-src/win-aarch64/crypto/fipsmodule/aesv8-armx.S index 2716d87b27..6e8d1d4e90 100644 --- a/generated-src/win-aarch64/crypto/fipsmodule/aesv8-armx.S +++ b/generated-src/win-aarch64/crypto/fipsmodule/aesv8-armx.S @@ -25,6 +25,7 @@ Lrcon: .endef .align 5 aes_hw_set_encrypt_key: +.cfi_startproc Lenc_key: #ifdef BORINGSSL_DISPATCH_TEST @@ -36,7 +37,11 @@ Lenc_key: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 mov x3,#-1 cmp x0,#0 b.eq Lenc_key_abort @@ -195,7 +200,10 @@ Ldone: Lenc_key_abort: mov x0,x3 // return value ldr x29,[sp],#16 +.cfi_restore x29 +.cfi_def_cfa_offset 0 ret +.cfi_endproc .globl aes_hw_set_decrypt_key @@ -205,9 +213,14 @@ Lenc_key_abort: .endef .align 5 aes_hw_set_decrypt_key: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 bl Lenc_key cmp x0,#0 @@ -239,8 +252,12 @@ Loop_imc: eor x0,x0,x0 // return value Ldec_key_abort: ldp x29,x30,[sp],#16 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .globl aes_hw_encrypt @@ -249,6 +266,7 @@ Ldec_key_abort: .endef .align 5 aes_hw_encrypt: +.cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST adrp x9,BORINGSSL_function_hit @@ -281,6 +299,7 @@ Loop_enc: st1 {v2.16b},[x1] ret +.cfi_endproc .globl aes_hw_decrypt @@ -289,6 +308,7 @@ Loop_enc: .endef .align 5 aes_hw_decrypt: +.cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST adrp x9,BORINGSSL_function_hit @@ -321,6 +341,7 @@ Loop_dec: st1 {v2.16b},[x1] ret +.cfi_endproc .globl aes_hw_cbc_encrypt @@ -329,10 +350,15 @@ Loop_dec: .endef .align 5 aes_hw_cbc_encrypt: +.cfi_startproc // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 subs x2,x2,#16 mov x8,#16 b.lo Lcbc_abort @@ -615,7 +641,10 @@ Lcbc_done: st1 {v6.16b},[x4] Lcbc_abort: ldr x29,[sp],#16 +.cfi_restore x29 +.cfi_def_cfa_offset 0 ret +.cfi_endproc .globl aes_hw_ctr32_encrypt_blocks @@ -624,6 +653,7 @@ Lcbc_abort: .endef .align 5 aes_hw_ctr32_encrypt_blocks: +.cfi_startproc #ifdef BORINGSSL_DISPATCH_TEST adrp x9,BORINGSSL_function_hit @@ -634,7 +664,11 @@ aes_hw_ctr32_encrypt_blocks: // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later. AARCH64_VALID_CALL_TARGET stp x29,x30,[sp,#-16]! +.cfi_def_cfa_offset 16 +.cfi_offset x29, -16 +.cfi_offset x30, -8 add x29,sp,#0 +.cfi_def_cfa x29, 16 ldr w5,[x3,#240] ldr w8, [x4, #12] @@ -824,7 +858,10 @@ Lctr32_tail: Lctr32_done: ldr x29,[sp],#16 +.cfi_restore x29 +.cfi_def_cfa_offset 0 ret +.cfi_endproc .globl aes_hw_xts_encrypt