{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 3f656dc0b2b8c747c9679aa81edead314a818d3b..386d8048ec02b29a2581bc324f43890b62cb9d79 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 433ed8571a8cd9240e95208443fff8e085457984..74e5191051eb7b7b52d95f85bcf05b8a2f9556cc 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 6e07c7c1bb1436f7d3c990dd6f51473ab65dea31..9ccb70eeb47b98e0f61ce560adbd2739951fd22a 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
 ___
 }