From: Andy Polyakov Date: Thu, 24 Apr 2008 10:02:01 +0000 (+0000) Subject: Compensate inline assembler in sha512.c for gcc 2.7.2 compiler bug [from HEAD]. X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=18ab306e63c68bbe3f34eefcb3388531d653791a;p=oweals%2Fopenssl.git Compensate inline assembler in sha512.c for gcc 2.7.2 compiler bug [from HEAD]. PR: 1667 --- diff --git a/crypto/sha/sha512.c b/crypto/sha/sha512.c index b4da9ea521..a396479321 100644 --- a/crypto/sha/sha512.c +++ b/crypto/sha/sha512.c @@ -325,19 +325,19 @@ static const SHA_LONG64 K512[80] = { # elif (defined(__i386) || defined(__i386__)) && !defined(B_ENDIAN) # if defined(I386_ONLY) # define PULL64(x) ({ const unsigned int *p=(const unsigned int *)(&(x));\ - unsigned int hi,lo; \ + 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"(p[1]),"1"(p[0]) : "cc"); \ + : "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,lo; \ + unsigned int hi=p[0],lo=p[1]; \ asm ("bswapl %0; bswapl %1;" \ : "=r"(lo),"=r"(hi) \ - : "0"(p[1]),"1"(p[0])); \ + : "0"(lo),"1"(hi)); \ ((SHA_LONG64)hi)<<32|lo; }) # endif # elif (defined(_ARCH_PPC) && defined(__64BIT__)) || defined(_ARCH_PPC64)