--- pgp/src/lmul.h 2018/04/24 16:38:38 1.1.1.1 +++ pgp/src/lmul.h 2018/04/24 16:43:37 1.1.1.4 @@ -30,14 +30,15 @@ #define lmul(a,b,xl,xh) \ {\ xl = a; \ - asm("mulul %3, %1:%0" : "=d" (xl) , "=d" (xh) : "0" (xl) , "d" (b)); \ + asm("mulul %3, %1:%0" : "=d" (xl) , "=d" (xh) : "0" (xl) , \ +"d" (b)); \ } #else #if defined(__GNUC__) && defined(i386) && defined(MUNIT32) #define lmul(a,b,xl,xh) asm("mull %3":"=a" (xl),"=d" (xh):"0" (a),"g" (b)) #else -#define MUNITHMASK (((unsigned long)1 <<(MUNITSIZE/2)) - 1) +#define MUNITHMASK (((unsigned long)1 <<(MULTUNITSIZE/2)) - 1) #ifdef MUNIT16 #define lmul(a,b,xl,xh) \ @@ -51,16 +52,16 @@ #define lmul(a,b,xl, xh) \ {\ MULTUNIT Xaa, Xbb, Xal, Xah, Xbl, Xbh, Xx1,Xx2,Xx3,Xx4,Xx5,Xx6; \ - Xaa= (a); Xbb = (b); Xal = Xaa&MUNITHMASK; Xah = Xaa>>(MUNITSIZE/2); \ - Xbl = Xbb&MUNITHMASK; Xbh = Xbb>>(MUNITSIZE/2); \ + Xaa= (a); Xbb = (b); Xal = Xaa&MUNITHMASK; Xah = Xaa>>(MULTUNITSIZE/2); \ + Xbl = Xbb&MUNITHMASK; Xbh = Xbb>>(MULTUNITSIZE/2); \ Xx1 = Xal*Xbl; \ Xx2 = Xah*Xbl; \ Xx3 = Xal*Xbh; \ Xx4 = Xah*Xbh; \ Xx5 = Xx2+Xx3; \ - Xx4 += ((MULTUNIT) (Xx5 < Xx2)) << (MUNITSIZE/2); \ - Xx6 = Xx1 + (Xx5 << (MUNITSIZE/2)); \ - Xx4 += (Xx6 < Xx1) + (Xx5>>(MUNITSIZE/2)); \ + Xx4 += ((MULTUNIT) (Xx5 < Xx2)) << (MULTUNITSIZE/2); \ + Xx6 = Xx1 + (Xx5 << (MULTUNITSIZE/2)); \ + Xx4 += (Xx6 < Xx1) + (Xx5>>(MULTUNITSIZE/2)); \ \ \ xl = Xx6; \