Skip to content
  • David Benjamin's avatar
    Fix some CFI issues in x86_64 assembly · 2086edb7
    David Benjamin authored
    
    
    The add/double shortcut in ecp_nistz256-x86_64.pl left one instruction
    point that did not unwind, and the "slow" path in AES_cbc_encrypt was
    not annotated correctly. For the latter, add
    .cfi_{remember,restore}_state support to perlasm.
    
    Next, fill in a bunch of functions that are missing no-op .cfi_startproc
    and .cfi_endproc blocks. libunwind cannot unwind those stack frames
    otherwise.
    
    Finally, work around a bug in libunwind by not encoding rflags. (rflags
    isn't a callee-saved register, so there's not much need to annotate it
    anyway.)
    
    These were found as part of ABI testing work in BoringSSL.
    
    Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
    GH: #8109
    (cherry picked from commit c0e8e500)
    2086edb7