Commit ae1ffe0f authored by Andy Polyakov's avatar Andy Polyakov
Browse files

ec/curve448: portability fixups.



SPARC condition in __SIZEOF_INT128__==16 is rather performance thing
than portability. Even though compiler advertises int128 capability,
corresponding operations are inefficient, because they are not
directly backed by instruction set.

Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5449)
parent e8c42b98
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -500,7 +500,7 @@ struct smvt_control {
    int power, addend;
};

#if defined(__GNUC__) || defined(__clang__)
#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 3))
# define NUMTRAILINGZEROS	__builtin_ctz
#else
# define NUMTRAILINGZEROS	numtrailingzeros
+2 −1
Original line number Diff line number Diff line
@@ -23,7 +23,8 @@
 * with arch_arm32.
 */
# ifndef C448_WORD_BITS
#  if defined(__SIZEOF_INT128__) && (__SIZEOF_INT128__ == 16)
#  if (defined(__SIZEOF_INT128__) && (__SIZEOF_INT128__ == 16)) \
      && !defined(__sparc__)
#   define C448_WORD_BITS 64      /* The number of bits in a word */
#  else
#   define C448_WORD_BITS 32      /* The number of bits in a word */