{md5,rc4}/asm/*-x86_64.pl: add CFI annotations.
authorAndy Polyakov <appro@openssl.org>
Sat, 11 Feb 2017 21:31:47 +0000 (22:31 +0100)
committerAndy Polyakov <appro@openssl.org>
Mon, 13 Feb 2017 13:16:01 +0000 (14:16 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
crypto/md5/asm/md5-x86_64.pl
crypto/rc4/asm/rc4-md5-x86_64.pl
crypto/rc4/asm/rc4-x86_64.pl

index 3f656dc..386d804 100755 (executable)
@@ -140,11 +140,17 @@ $code .= <<EOF;
 .globl md5_block_asm_data_order
 .type md5_block_asm_data_order,\@function,3
 md5_block_asm_data_order:
+.cfi_startproc
        push    %rbp
+.cfi_push      %rbp
        push    %rbx
+.cfi_push      %rbx
        push    %r12
+.cfi_push      %r12
        push    %r14
+.cfi_push      %r14
        push    %r15
+.cfi_push      %r15
 .Lprologue:
 
        # rdi = arg #1 (ctx, MD5_CTX pointer)
@@ -261,13 +267,20 @@ $code .= <<EOF;
        mov     %edx,           3*4(%rbp)       # ctx->D = D
 
        mov     (%rsp),%r15
+.cfi_restore   %r15
        mov     8(%rsp),%r14
+.cfi_restore   %r14
        mov     16(%rsp),%r12
+.cfi_restore   %r12
        mov     24(%rsp),%rbx
+.cfi_restore   %rbx
        mov     32(%rsp),%rbp
+.cfi_restore   %rbp
        add     \$40,%rsp
+.cfi_adjust_cfa_offset -40
 .Lepilogue:
        ret
+.cfi_endproc
 .size md5_block_asm_data_order,.-md5_block_asm_data_order
 EOF
 
index 433ed85..74e5191 100644 (file)
@@ -124,15 +124,23 @@ $code.=<<___;
 .globl $func
 .type  $func,\@function,$nargs
 $func:
+.cfi_startproc
        cmp     \$0,$len
        je      .Labort
        push    %rbx
+.cfi_push      %rbx
        push    %rbp
+.cfi_push      %rbp
        push    %r12
+.cfi_push      %r12
        push    %r13
+.cfi_push      %r13
        push    %r14
+.cfi_push      %r14
        push    %r15
+.cfi_push      %r15
        sub     \$40,%rsp
+.cfi_adjust_cfa_offset 40
 .Lbody:
 ___
 if ($rc4) {
@@ -444,15 +452,23 @@ $code.=<<___;
 #rc4#  movl    $YY#d,-4($dat)
 
        mov     40(%rsp),%r15
+.cfi_restore   %r15
        mov     48(%rsp),%r14
+.cfi_restore   %r14
        mov     56(%rsp),%r13
+.cfi_restore   %r13
        mov     64(%rsp),%r12
+.cfi_restore   %r12
        mov     72(%rsp),%rbp
+.cfi_restore   %rbp
        mov     80(%rsp),%rbx
+.cfi_restore   %rbx
        lea     88(%rsp),%rsp
+.cfi_adjust_cfa_offset -88
 .Lepilogue:
 .Labort:
        ret
+.cfi_endproc
 .size $func,.-$func
 ___
 
index 6e07c7c..9ccb70e 100755 (executable)
@@ -142,9 +142,13 @@ RC4:       or      $len,$len
        jne     .Lentry
        ret
 .Lentry:
+.cfi_startproc
        push    %rbx
+.cfi_push      %rbx
        push    %r12
+.cfi_push      %r12
        push    %r13
+.cfi_push      %r13
 .Lprologue:
        mov     $len,%r11
        mov     $inp,%r12
@@ -427,11 +431,16 @@ $code.=<<___;
        movl    $YY#d,-4($dat)
 
        mov     (%rsp),%r13
+.cfi_restore   %r13
        mov     8(%rsp),%r12
+.cfi_restore   %r12
        mov     16(%rsp),%rbx
+.cfi_restore   %rbx
        add     \$24,%rsp
+.cfi_adjust_cfa_offset -24
 .Lepilogue:
        ret
+.cfi_endproc
 .size  RC4,.-RC4
 ___
 }