Skip to content
  1. Feb 17, 2019
    • 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
  2. Feb 13, 2019
  3. Sep 11, 2018
  4. Jun 25, 2018
  5. Jun 03, 2018
  6. May 29, 2018
  7. May 10, 2018
  8. Mar 20, 2018
  9. Mar 19, 2018
  10. Feb 27, 2018
    • David Benjamin's avatar
      Always use adr with __thumb2__. · 8a5d8bc4
      David Benjamin authored
      Thumb2 addresses are a bit a mess, depending on whether a label is
      interpreted as a function pointer value (for use with BX and BLX) or as
      a program counter value (for use with PC-relative addressing). Clang's
      integrated assembler mis-assembles this code. See
      https://crbug.com/124610#c54 for details.
      
      Instead, use the ADR pseudo-instruction which has clear semantics and
      should be supported by every assembler that handles the OpenSSL Thumb2
      code. (In other files, the ADR vs SUB conditionals are based on
      __thumb2__ already. For some reason, this one is based on __APPLE__, I'm
      guessing to deal with an older version of clang assembler.)
      
      It's unclear to me which of clang or binutils is "correct" or if this is
      even a well-defined notion beyond "whatever binutils does". But I will
      note that https://github.com/openssl/openssl/pull/4669
      
       suggests binutils
      has also changed behavior around this before.
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/5431)
      8a5d8bc4
  11. Jan 09, 2018
  12. Jan 07, 2018
  13. Nov 13, 2017
  14. Nov 12, 2017
  15. Nov 05, 2017
  16. Oct 30, 2017
  17. Oct 17, 2017
  18. Oct 13, 2017
  19. Jul 24, 2017
  20. Jul 21, 2017
    • Andy Polyakov's avatar
      x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results. · 64d92d74
      Andy Polyakov authored
      
      
      "Optimize" is in quotes because it's rather a "salvage operation"
      for now. Idea is to identify processor capability flags that
      drive Knights Landing to suboptimial code paths and mask them.
      Two flags were identified, XSAVE and ADCX/ADOX. Former affects
      choice of AES-NI code path specific for Silvermont (Knights Landing
      is of Silvermont "ancestry"). And 64-bit ADCX/ADOX instructions are
      effectively mishandled at decode time. In both cases we are looking
      at ~2x improvement.
      
      AVX-512 results cover even Skylake-X :-)
      
      Hardware used for benchmarking courtesy of Atos, experiments run by
      Romain Dolbeau <romain.dolbeau@atos.net>. Kudos!
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      64d92d74
  21. Jul 03, 2017
  22. May 11, 2017
  23. Mar 29, 2017
  24. Mar 26, 2017
    • Andy Polyakov's avatar
      aes/asm/bsaes-armv7.pl: relax stack alignment requirement. · 0822d41b
      Andy Polyakov authored
      
      
      Even though Apple refers to Procedure Call Standard for ARM Architecture
      (AAPCS), they apparently adhere to custom version that doesn't follow
      stack alignment constraints in the said standard. [Why or why? If it's
      vendor lock-in thing, then it would be like worst spot ever.] And since
      bsaes-armv7 relied on standard alignment, it became problematic to
      execute the code on iOS.
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      0822d41b
  25. Mar 22, 2017
  26. Feb 28, 2017
    • Emilia Kasper's avatar
      Clean up references to FIPS · b53338cb
      Emilia Kasper authored
      
      
      This removes the fips configure option. This option is broken as the
      required FIPS code is not available.
      
      FIPS_mode() and FIPS_mode_set() are retained for compatibility, but
      FIPS_mode() always returns 0, and FIPS_mode_set() can only be used to
      turn FIPS mode off.
      
      Reviewed-by: default avatarStephen Henson <steve@openssl.org>
      b53338cb
  27. Feb 15, 2017
  28. Feb 13, 2017
  29. Feb 06, 2017
  30. Dec 19, 2016
  31. Nov 11, 2016
  32. Nov 10, 2016
  33. Oct 24, 2016
  34. Oct 18, 2016
  35. Oct 10, 2016
    • David Benjamin's avatar
      Remove trailing whitespace from some files. · 609b0852
      David Benjamin authored
      
      
      The prevailing style seems to not have trailing whitespace, but a few
      lines do. This is mostly in the perlasm files, but a few C files got
      them after the reformat. This is the result of:
      
        find . -name '*.pl' | xargs sed -E -i '' -e 's/( |'$'\t'')*$//'
        find . -name '*.c' | xargs sed -E -i '' -e 's/( |'$'\t'')*$//'
        find . -name '*.h' | xargs sed -E -i '' -e 's/( |'$'\t'')*$//'
      
      Then bn_prime.h was excluded since this is a generated file.
      
      Note mkerr.pl has some changes in a heredoc for some help output, but
      other lines there lack trailing whitespace too.
      
      Reviewed-by: default avatarKurt Roeckx <kurt@openssl.org>
      Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
      609b0852
  36. Sep 02, 2016
  37. Aug 16, 2016