diff --git a/crypto/chacha/asm/chacha-armv8.pl b/crypto/chacha/asm/chacha-armv8.pl index 8834fc61ae..b73fb19ee9 100755 --- a/crypto/chacha/asm/chacha-armv8.pl +++ b/crypto/chacha/asm/chacha-armv8.pl @@ -141,17 +141,32 @@ sub ROUND { .type ChaCha20_ctr32_nohw,%function .align 5 ChaCha20_ctr32_nohw: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x29, -96 +.cfi_offset x30, -88 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp @x[0],:pg_hi21:.Lsigma add @x[0],@x[0],:lo12:.Lsigma stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 sub sp,sp,#64 ldp @d[0],@d[1],[@x[0]] // load sigma @@ -256,12 +271,25 @@ sub ROUND { b.hi .Loop_outer ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret @@ -312,14 +340,28 @@ sub ROUND { stp xzr,xzr,[sp,#48] ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .size ChaCha20_ctr32_nohw,.-ChaCha20_ctr32_nohw ___ @@ -365,17 +407,32 @@ sub NEONROUND { .type ChaCha20_ctr32_neon,%function .align 5 ChaCha20_ctr32_neon: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x30, -88 +.cfi_offset x29, -96 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp @x[0],:pg_hi21:.Lsigma add @x[0],@x[0],:lo12:.Lsigma stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 cmp $len,#512 b.hs .L512_or_more_neon @@ -559,12 +616,25 @@ sub NEONROUND { b.hi .Loop_outer_neon ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret @@ -669,14 +739,28 @@ sub NEONROUND { .Ldone_neon: ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .size ChaCha20_ctr32_neon,.-ChaCha20_ctr32_neon ___ { @@ -688,17 +772,32 @@ sub NEONROUND { .type ChaCha20_512_neon,%function .align 5 ChaCha20_512_neon: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x30, -88 +.cfi_offset x29, -96 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp @x[0],:pg_hi21:.Lsigma add @x[0],@x[0],:lo12:.Lsigma stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 .L512_or_more_neon: sub sp,sp,#128+64 @@ -1102,14 +1201,28 @@ sub NEONROUND { .Ldone_512_neon: ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#128+64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .size ChaCha20_512_neon,.-ChaCha20_512_neon ___ } diff --git a/generated-src/ios-aarch64/crypto/chacha/chacha-armv8.S b/generated-src/ios-aarch64/crypto/chacha/chacha-armv8.S index 3807631e44..ffd3d39d18 100644 --- a/generated-src/ios-aarch64/crypto/chacha/chacha-armv8.S +++ b/generated-src/ios-aarch64/crypto/chacha/chacha-armv8.S @@ -23,17 +23,32 @@ Lone: .align 5 _ChaCha20_ctr32_nohw: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x29, -96 +.cfi_offset x30, -88 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp x5,Lsigma@PAGE add x5,x5,Lsigma@PAGEOFF stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 sub sp,sp,#64 ldp x22,x23,[x5] // load sigma @@ -230,12 +245,25 @@ Loop: b.hi Loop_outer ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret @@ -286,14 +314,28 @@ Loop_tail: stp xzr,xzr,[sp,#48] ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .globl _ChaCha20_ctr32_neon @@ -301,17 +343,32 @@ Loop_tail: .align 5 _ChaCha20_ctr32_neon: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x30, -88 +.cfi_offset x29, -96 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp x5,Lsigma@PAGE add x5,x5,Lsigma@PAGEOFF stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 cmp x2,#512 b.hs L512_or_more_neon @@ -676,12 +733,25 @@ Loop_neon: b.hi Loop_outer_neon ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret @@ -786,29 +856,58 @@ Loop_tail_neon: Ldone_neon: ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .align 5 ChaCha20_512_neon: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x30, -88 +.cfi_offset x29, -96 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp x5,Lsigma@PAGE add x5,x5,Lsigma@PAGEOFF stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 L512_or_more_neon: sub sp,sp,#128+64 @@ -1956,13 +2055,27 @@ Loop_lower_neon: Ldone_512_neon: ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#128+64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc #endif // !OPENSSL_NO_ASM && defined(OPENSSL_AARCH64) && defined(__APPLE__) diff --git a/generated-src/linux-aarch64/crypto/chacha/chacha-armv8.S b/generated-src/linux-aarch64/crypto/chacha/chacha-armv8.S index 55fa58379c..3f3c9d9af7 100644 --- a/generated-src/linux-aarch64/crypto/chacha/chacha-armv8.S +++ b/generated-src/linux-aarch64/crypto/chacha/chacha-armv8.S @@ -23,17 +23,32 @@ .type ChaCha20_ctr32_nohw,%function .align 5 ChaCha20_ctr32_nohw: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x29, -96 +.cfi_offset x30, -88 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp x5,.Lsigma add x5,x5,:lo12:.Lsigma stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 sub sp,sp,#64 ldp x22,x23,[x5] // load sigma @@ -230,12 +245,25 @@ ChaCha20_ctr32_nohw: b.hi .Loop_outer ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret @@ -286,14 +314,28 @@ ChaCha20_ctr32_nohw: stp xzr,xzr,[sp,#48] ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .size ChaCha20_ctr32_nohw,.-ChaCha20_ctr32_nohw .globl ChaCha20_ctr32_neon @@ -301,17 +343,32 @@ ChaCha20_ctr32_nohw: .type ChaCha20_ctr32_neon,%function .align 5 ChaCha20_ctr32_neon: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x30, -88 +.cfi_offset x29, -96 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp x5,.Lsigma add x5,x5,:lo12:.Lsigma stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 cmp x2,#512 b.hs .L512_or_more_neon @@ -676,12 +733,25 @@ ChaCha20_ctr32_neon: b.hi .Loop_outer_neon ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret @@ -786,29 +856,58 @@ ChaCha20_ctr32_neon: .Ldone_neon: ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .size ChaCha20_ctr32_neon,.-ChaCha20_ctr32_neon .type ChaCha20_512_neon,%function .align 5 ChaCha20_512_neon: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x30, -88 +.cfi_offset x29, -96 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp x5,.Lsigma add x5,x5,:lo12:.Lsigma stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 .L512_or_more_neon: sub sp,sp,#128+64 @@ -1956,13 +2055,27 @@ ChaCha20_512_neon: .Ldone_512_neon: ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#128+64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .size ChaCha20_512_neon,.-ChaCha20_512_neon #endif // !OPENSSL_NO_ASM && defined(OPENSSL_AARCH64) && defined(__ELF__) diff --git a/generated-src/win-aarch64/crypto/chacha/chacha-armv8.S b/generated-src/win-aarch64/crypto/chacha/chacha-armv8.S index 851ef4db6c..82848a466f 100644 --- a/generated-src/win-aarch64/crypto/chacha/chacha-armv8.S +++ b/generated-src/win-aarch64/crypto/chacha/chacha-armv8.S @@ -25,17 +25,32 @@ Lone: .endef .align 5 ChaCha20_ctr32_nohw: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x29, -96 +.cfi_offset x30, -88 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp x5,Lsigma add x5,x5,:lo12:Lsigma stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 sub sp,sp,#64 ldp x22,x23,[x5] // load sigma @@ -232,12 +247,25 @@ Loop: b.hi Loop_outer ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret @@ -288,14 +316,28 @@ Loop_tail: stp xzr,xzr,[sp,#48] ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .globl ChaCha20_ctr32_neon @@ -305,17 +347,32 @@ Loop_tail: .endef .align 5 ChaCha20_ctr32_neon: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x30, -88 +.cfi_offset x29, -96 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp x5,Lsigma add x5,x5,:lo12:Lsigma stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 cmp x2,#512 b.hs L512_or_more_neon @@ -680,12 +737,25 @@ Loop_neon: b.hi Loop_outer_neon ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret @@ -790,31 +860,60 @@ Loop_tail_neon: Ldone_neon: ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc .def ChaCha20_512_neon .type 32 .endef .align 5 ChaCha20_512_neon: +.cfi_startproc AARCH64_SIGN_LINK_REGISTER stp x29,x30,[sp,#-96]! +.cfi_def_cfa_offset 96 +.cfi_offset x30, -88 +.cfi_offset x29, -96 add x29,sp,#0 +.cfi_def_cfa x29, 96 adrp x5,Lsigma add x5,x5,:lo12:Lsigma stp x19,x20,[sp,#16] +.cfi_offset x19, -80 +.cfi_offset x20, -72 stp x21,x22,[sp,#32] +.cfi_offset x21, -64 +.cfi_offset x22, -56 stp x23,x24,[sp,#48] +.cfi_offset x23, -48 +.cfi_offset x24, -40 stp x25,x26,[sp,#64] +.cfi_offset x25, -32 +.cfi_offset x26, -24 stp x27,x28,[sp,#80] +.cfi_offset x27, -16 +.cfi_offset x28, -8 L512_or_more_neon: sub sp,sp,#128+64 @@ -1962,13 +2061,27 @@ Loop_lower_neon: Ldone_512_neon: ldp x19,x20,[x29,#16] +.cfi_restore x19 +.cfi_restore x20 add sp,sp,#128+64 ldp x21,x22,[x29,#32] +.cfi_restore x21 +.cfi_restore x22 ldp x23,x24,[x29,#48] +.cfi_restore x23 +.cfi_restore x24 ldp x25,x26,[x29,#64] +.cfi_restore x25 +.cfi_restore x26 ldp x27,x28,[x29,#80] +.cfi_restore x27 +.cfi_restore x28 ldp x29,x30,[sp],#96 +.cfi_restore x29 +.cfi_restore x30 +.cfi_def_cfa_offset 0 AARCH64_VALIDATE_LINK_REGISTER ret +.cfi_endproc #endif // !OPENSSL_NO_ASM && defined(OPENSSL_AARCH64) && defined(_WIN32)