Add some missing cfi frame info in x86_64-mont5.pl
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Wed, 18 Dec 2019 17:35:12 +0000 (18:35 +0100)
committerBernd Edlinger <bernd.edlinger@hotmail.de>
Fri, 20 Dec 2019 21:58:43 +0000 (22:58 +0100)
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
(Merged from https://github.com/openssl/openssl/pull/10651)

(cherry picked from commit 0190c52ab8b4cdf5fe577b3d924576167c892a15)

crypto/bn/asm/x86_64-mont5.pl

index f43e13d11643a58fde41a069b400bf4b010c09a2..cbeb4b5488639556d4a872b1da6ca101dd921cd9 100755 (executable)
@@ -580,6 +580,7 @@ $code.=<<___;
 .type  mul4x_internal,\@abi-omnipotent
 .align 32
 mul4x_internal:
+.cfi_startproc
        shl     \$5,$num                # $num was in bytes
        movd    `($win64?56:8)`(%rax),%xmm5     # load 7th argument, index
        lea     .Linc(%rip),%rax
@@ -1074,6 +1075,7 @@ $code.=<<___
 ___
 }
 $code.=<<___;
+.cfi_endproc
 .size  mul4x_internal,.-mul4x_internal
 ___
 }}}
@@ -1239,6 +1241,7 @@ $code.=<<___;
 .align 32
 bn_sqr8x_internal:
 __bn_sqr8x_internal:
+.cfi_startproc
        ##############################################################
        # Squaring part:
        #
@@ -2030,6 +2033,7 @@ __bn_sqr8x_reduction:
        cmp     %rdx,$tptr              # end of t[]?
        jb      .L8x_reduction_loop
        ret
+.cfi_endproc
 .size  bn_sqr8x_internal,.-bn_sqr8x_internal
 ___
 }\f
@@ -2042,6 +2046,7 @@ $code.=<<___;
 .type  __bn_post4x_internal,\@abi-omnipotent
 .align 32
 __bn_post4x_internal:
+.cfi_startproc
        mov     8*0($nptr),%r12
        lea     (%rdi,$num),$tptr       # %rdi was $tptr above
        mov     $num,%rcx
@@ -2092,6 +2097,7 @@ __bn_post4x_internal:
        mov     $num,%r10               # prepare for back-to-back call
        neg     $num                    # restore $num
        ret
+.cfi_endproc
 .size  __bn_post4x_internal,.-__bn_post4x_internal
 ___
 }
@@ -2101,10 +2107,12 @@ $code.=<<___;
 .type  bn_from_montgomery,\@abi-omnipotent
 .align 32
 bn_from_montgomery:
+.cfi_startproc
        testl   \$7,`($win64?"48(%rsp)":"%r9d")`
        jz      bn_from_mont8x
        xor     %eax,%eax
        ret
+.cfi_endproc
 .size  bn_from_montgomery,.-bn_from_montgomery
 
 .type  bn_from_mont8x,\@function,6
@@ -2400,6 +2408,7 @@ bn_mulx4x_mont_gather5:
 .type  mulx4x_internal,\@abi-omnipotent
 .align 32
 mulx4x_internal:
+.cfi_startproc
        mov     $num,8(%rsp)            # save -$num (it was in bytes)
        mov     $num,%r10
        neg     $num                    # restore $num
@@ -2750,6 +2759,7 @@ $code.=<<___;
        mov     8*2(%rbp),%r14
        mov     8*3(%rbp),%r15
        jmp     .Lsqrx4x_sub_entry      # common post-condition
+.cfi_endproc
 .size  mulx4x_internal,.-mulx4x_internal
 ___
 }\f{
@@ -3555,6 +3565,7 @@ my ($rptr,$nptr)=("%rdx","%rbp");
 $code.=<<___;
 .align 32
 __bn_postx4x_internal:
+.cfi_startproc
        mov     8*0($nptr),%r12
        mov     %rcx,%r10               # -$num
        mov     %rcx,%r9                # -$num
@@ -3602,6 +3613,7 @@ __bn_postx4x_internal:
        neg     %r9                     # restore $num
 
        ret
+.cfi_endproc
 .size  __bn_postx4x_internal,.-__bn_postx4x_internal
 ___
 }
@@ -3618,6 +3630,7 @@ $code.=<<___;
 .type  bn_get_bits5,\@abi-omnipotent
 .align 16
 bn_get_bits5:
+.cfi_startproc
        lea     0($inp),%r10
        lea     1($inp),%r11
        mov     $num,%ecx
@@ -3631,12 +3644,14 @@ bn_get_bits5:
        shrl    %cl,%eax
        and     \$31,%eax
        ret
+.cfi_endproc
 .size  bn_get_bits5,.-bn_get_bits5
 
 .globl bn_scatter5
 .type  bn_scatter5,\@abi-omnipotent
 .align 16
 bn_scatter5:
+.cfi_startproc
        cmp     \$0, $num
        jz      .Lscatter_epilogue
        lea     ($tbl,$idx,8),$tbl
@@ -3649,6 +3664,7 @@ bn_scatter5:
        jnz     .Lscatter
 .Lscatter_epilogue:
        ret
+.cfi_endproc
 .size  bn_scatter5,.-bn_scatter5
 
 .globl bn_gather5
@@ -3656,6 +3672,7 @@ bn_scatter5:
 .align 32
 bn_gather5:
 .LSEH_begin_bn_gather5:                        # Win64 thing, but harmless in other cases
+.cfi_startproc
        # I can't trust assembler to use specific encoding:-(
        .byte   0x4c,0x8d,0x14,0x24                     #lea    (%rsp),%r10
        .byte   0x48,0x81,0xec,0x08,0x01,0x00,0x00      #sub    $0x108,%rsp
@@ -3740,6 +3757,7 @@ $code.=<<___;
        lea     (%r10),%rsp
        ret
 .LSEH_end_bn_gather5:
+.cfi_endproc
 .size  bn_gather5,.-bn_gather5
 ___
 }