OK bcook@, looks fine for portable too.

> On Nov 4, 2016, at 11:02 AM, Tom Cosgrove 
> <tom.cosgr...@arches-consulting.com> wrote:
> 
>>>> Miod Vallat 4-Nov-16 08:53 >>>
>> 
>> I386_ONLY was used to prefer a different assembler sequence in the
>> sha512 code, which would be faster on 80386 processors, but slower on
>> 80486 and above.
>> 
>> This code path has never been enabled, and there are actually no plans
>> to make libcrypto friendlier to genuine 80386 chips, so why bother
>> keeping this - it's only contributing to obfuscation.
> 
> ... not to mention that OpenBSD hasn't supported the 386 for a long time now
> 
> ok tom@
> 
>> Index: cryptlib.c
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/cryptlib.c,v
>> retrieving revision 1.37
>> diff -u -p -r1.37 cryptlib.c
>> --- cryptlib.c       13 Sep 2015 16:56:11 -0000      1.37
>> +++ cryptlib.c       4 Nov 2016 08:49:22 -0000
>> @@ -635,7 +635,7 @@ OPENSSL_cpu_caps(void)
>>      return *(uint64_t *)OPENSSL_ia32cap_P;
>> }
>> 
>> -#if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM) && 
>> !defined(I386_ONLY)
>> +#if defined(OPENSSL_CPUID_OBJ) && !defined(OPENSSL_NO_ASM)
>> #define OPENSSL_CPUID_SETUP
>> typedef unsigned long long IA32CAP;
>> void
>> Index: md32_common.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/md32_common.h,v
>> retrieving revision 1.21
>> diff -u -p -r1.21 md32_common.h
>> --- md32_common.h    4 Sep 2016 14:31:29 -0000       1.21
>> +++ md32_common.h    4 Nov 2016 08:49:22 -0000
>> @@ -152,8 +152,8 @@ static inline uint32_t ROTATE(uint32_t a
>> #if defined(DATA_ORDER_IS_BIG_ENDIAN)
>> 
>> #if defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && 
>> !defined(OPENSSL_NO_INLINE_ASM)
>> -# if ((defined(__i386) || defined(__i386__)) && !defined(I386_ONLY)) || \
>> -      (defined(__x86_64) || defined(__x86_64__))
>> +# if (defined(__i386) || defined(__i386__) || \
>> +      defined(__x86_64) || defined(__x86_64__))
>>     /*
>>      * This gives ~30-40% performance improvement in SHA-256 compiled
>>      * with gcc [on P4]. Well, first macro to be frank. We can pull
>> Index: arch/alpha/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/alpha/opensslconf.h,v
>> retrieving revision 1.7
>> diff -u -p -r1.7 opensslconf.h
>> --- arch/alpha/opensslconf.h 19 Jun 2015 06:05:11 -0000      1.7
>> +++ arch/alpha/opensslconf.h 4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: arch/amd64/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/amd64/opensslconf.h,v
>> retrieving revision 1.9
>> diff -u -p -r1.9 opensslconf.h
>> --- arch/amd64/opensslconf.h 19 Jun 2015 06:05:11 -0000      1.9
>> +++ arch/amd64/opensslconf.h 4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: arch/arm/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/arm/opensslconf.h,v
>> retrieving revision 1.7
>> diff -u -p -r1.7 opensslconf.h
>> --- arch/arm/opensslconf.h   19 Jun 2015 06:05:11 -0000      1.7
>> +++ arch/arm/opensslconf.h   4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: arch/hppa/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/hppa/opensslconf.h,v
>> retrieving revision 1.7
>> diff -u -p -r1.7 opensslconf.h
>> --- arch/hppa/opensslconf.h  19 Jun 2015 06:05:11 -0000      1.7
>> +++ arch/hppa/opensslconf.h  4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: arch/i386/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/i386/opensslconf.h,v
>> retrieving revision 1.7
>> diff -u -p -r1.7 opensslconf.h
>> --- arch/i386/opensslconf.h  19 Jun 2015 06:05:11 -0000      1.7
>> +++ arch/i386/opensslconf.h  4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: arch/m88k/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/m88k/opensslconf.h,v
>> retrieving revision 1.7
>> diff -u -p -r1.7 opensslconf.h
>> --- arch/m88k/opensslconf.h  19 Jun 2015 06:05:11 -0000      1.7
>> +++ arch/m88k/opensslconf.h  4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: arch/mips64/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/mips64/opensslconf.h,v
>> retrieving revision 1.7
>> diff -u -p -r1.7 opensslconf.h
>> --- arch/mips64/opensslconf.h        19 Jun 2015 06:05:11 -0000      1.7
>> +++ arch/mips64/opensslconf.h        4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: arch/powerpc/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/powerpc/opensslconf.h,v
>> retrieving revision 1.7
>> diff -u -p -r1.7 opensslconf.h
>> --- arch/powerpc/opensslconf.h       19 Jun 2015 06:05:11 -0000      1.7
>> +++ arch/powerpc/opensslconf.h       4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: arch/sh/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/sh/opensslconf.h,v
>> retrieving revision 1.7
>> diff -u -p -r1.7 opensslconf.h
>> --- arch/sh/opensslconf.h    19 Jun 2015 06:05:11 -0000      1.7
>> +++ arch/sh/opensslconf.h    4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: arch/sparc/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/sparc/opensslconf.h,v
>> retrieving revision 1.7
>> diff -u -p -r1.7 opensslconf.h
>> --- arch/sparc/opensslconf.h 19 Jun 2015 06:05:11 -0000      1.7
>> +++ arch/sparc/opensslconf.h 4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: arch/sparc64/opensslconf.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/arch/sparc64/opensslconf.h,v
>> retrieving revision 1.7
>> diff -u -p -r1.7 opensslconf.h
>> --- arch/sparc64/opensslconf.h       19 Jun 2015 06:05:11 -0000      1.7
>> +++ arch/sparc64/opensslconf.h       4 Nov 2016 08:49:22 -0000
>> @@ -1,9 +1,6 @@
>> #include <openssl/opensslfeatures.h>
>> /* crypto/opensslconf.h.in */
>> 
>> -/* Generate 80386 code? */
>> -#undef I386_ONLY
>> -
>> #if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
>> #define OPENSSLDIR "/etc/ssl"
>> #endif
>> Index: engine/eng_padlock.c
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/engine/eng_padlock.c,v
>> retrieving revision 1.14
>> diff -u -p -r1.14 eng_padlock.c
>> --- engine/eng_padlock.c     7 Feb 2015 13:19:15 -0000       1.14
>> +++ engine/eng_padlock.c     4 Nov 2016 08:49:23 -0000
>> @@ -100,7 +100,7 @@
>>    In addition, because of the heavy use of inline assembler,
>>    compiler choice is limited to GCC and Microsoft C. */
>> #undef COMPILE_HW_PADLOCK
>> -#if !defined(I386_ONLY) && !defined(OPENSSL_NO_INLINE_ASM)
>> +#if !defined(OPENSSL_NO_INLINE_ASM)
>> # if (defined(__GNUC__) && (defined(__i386__) || defined(__i386)))
>> #  define COMPILE_HW_PADLOCK
>> # endif
>> Index: evp/e_aes.c
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/evp/e_aes.c,v
>> retrieving revision 1.29
>> diff -u -p -r1.29 e_aes.c
>> --- evp/e_aes.c      10 Sep 2015 15:56:25 -0000      1.29
>> +++ evp/e_aes.c      4 Nov 2016 08:49:23 -0000
>> @@ -143,14 +143,14 @@ void AES_xts_decrypt(const char *inp, ch
>>     const AES_KEY *key1, const AES_KEY *key2, const unsigned char iv[16]);
>> #endif
>> 
>> -#if defined(AES_ASM) && !defined(I386_ONLY) &&      (  \
>> +#if defined(AES_ASM) &&                             (  \
>>      ((defined(__i386)       || defined(__i386__)    || \
>>        defined(_M_IX86)) && defined(OPENSSL_IA32_SSE2))|| \
>>      defined(__x86_64)       || defined(__x86_64__)  || \
>>      defined(_M_AMD64)       || defined(_M_X64)      || \
>>      defined(__INTEL__)                              )
>> 
>> -extern unsigned int OPENSSL_ia32cap_P[2];
>> +extern unsigned int OPENSSL_ia32cap_P[];
>> 
>> #ifdef VPAES_ASM
>> #define VPAES_CAPABLE        (OPENSSL_ia32cap_P[1]&(1<<(41-32)))
>> Index: modes/gcm128.c
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/modes/gcm128.c,v
>> retrieving revision 1.13
>> diff -u -p -r1.13 gcm128.c
>> --- modes/gcm128.c   10 Sep 2015 15:56:25 -0000      1.13
>> +++ modes/gcm128.c   4 Nov 2016 08:49:23 -0000
>> @@ -638,8 +638,7 @@ static void gcm_gmult_1bit(u64 Xi[2],con
>> #endif
>> 
>> #if  TABLE_BITS==4 && defined(GHASH_ASM)
>> -# if        !defined(I386_ONLY) && \
>> -    (defined(__i386)        || defined(__i386__)    || \
>> +# if        (defined(__i386)        || defined(__i386__)    || \
>>       defined(__x86_64)      || defined(__x86_64__)  || \
>>       defined(_M_IX86)       || defined(_M_AMD64)    || defined(_M_X64))
>> #  define GHASH_ASM_X86_OR_64
>> Index: modes/modes_lcl.h
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/modes/modes_lcl.h,v
>> retrieving revision 1.8
>> diff -u -p -r1.8 modes_lcl.h
>> --- modes/modes_lcl.h        10 Jul 2014 22:45:57 -0000      1.8
>> +++ modes/modes_lcl.h        4 Nov 2016 08:49:23 -0000
>> @@ -34,7 +34,7 @@ typedef unsigned char u8;
>> #  define BSWAP4(x) ({       u32 ret=(x);                    \
>>                      asm ("bswapl %0"                \
>>                      : "+r"(ret));   ret;            })
>> -# elif (defined(__i386) || defined(__i386__)) && !defined(I386_ONLY)
>> +# elif (defined(__i386) || defined(__i386__))
>> #  define BSWAP8(x) ({       u32 lo=(u64)(x)>>32,hi=(x);     \
>>                      asm ("bswapl %0; bswapl %1"     \
>>                      : "+r"(hi),"+r"(lo));           \
>> Index: sha/sha512.c
>> ===================================================================
>> RCS file: /cvs/src/lib/libcrypto/sha/sha512.c,v
>> retrieving revision 1.14
>> diff -u -p -r1.14 sha512.c
>> --- sha/sha512.c     10 Sep 2015 15:56:26 -0000      1.14
>> +++ sha/sha512.c     4 Nov 2016 08:49:23 -0000
>> @@ -320,23 +320,12 @@ static const SHA_LONG64 K512[80] = {
>>                              : "=r"(ret)                     \
>>                              : "0"(ret)); ret;               })
>> # elif (defined(__i386) || defined(__i386__))
>> -#  if defined(I386_ONLY)
>> -#   define PULL64(x) ({ const unsigned int *p=(const unsigned int *)(&(x));\
>> -                     unsigned int hi=p[0],lo=p[1];          \
>> -                            asm("xchgb %%ah,%%al;xchgb %%dh,%%dl;"\
>> -                                "roll $16,%%eax; roll $16,%%edx; "\
>> -                                "xchgb %%ah,%%al;xchgb %%dh,%%dl;" \
>> -                            : "=a"(lo),"=d"(hi)             \
>> -                            : "0"(lo),"1"(hi) : "cc");      \
>> -                            ((SHA_LONG64)hi)<<32|lo;        })
>> -#  else
>> #   define PULL64(x) ({ const unsigned int *p=(const unsigned int *)(&(x));\
>>                       unsigned int hi=p[0],lo=p[1];          \
>>                              asm ("bswapl %0; bswapl %1;"    \
>>                              : "=r"(lo),"=r"(hi)             \
>>                              : "0"(lo),"1"(hi));             \
>>                              ((SHA_LONG64)hi)<<32|lo;        })
>> -#  endif
>> # elif (defined(_ARCH_PPC) && defined(__64BIT__)) || defined(_ARCH_PPC64)
>> #  define ROTR(a,n)  ({ SHA_LONG64 ret;              \
>>                              asm ("rotrdi %0,%1,%2"  \
> 

Reply via email to