1 diff -up openssl-0.9.8g/crypto/bn/bn_lcl.h.ia64 openssl-0.9.8g/crypto/bn/bn_lcl.h
2 --- openssl-0.9.8g/crypto/bn/bn_lcl.h.ia64 2008-08-10 22:23:55.000000000 +0200
3 +++ openssl-0.9.8g/crypto/bn/bn_lcl.h 2008-08-10 22:23:55.000000000 +0200
4 @@ -279,6 +279,15 @@ extern "C" {
5 # define BN_UMULT_HIGH(a,b) __umulh((a),(b))
6 # define BN_UMULT_LOHI(low,high,a,b) ((low)=_umul128((a),(b),&(high)))
8 +# elif defined(__ia64) && defined(SIXTY_FOUR_BIT_LONG)
9 +# if defined(__GNUC__)
10 +# define BN_UMULT_HIGH(a,b) ({ \
11 + register BN_ULONG ret; \
12 + asm ("xmpy.hu %0 = %1, %2" \
14 + : "f"(a), "f"(b)); \
16 +# endif /* compiler */
18 #endif /* OPENSSL_NO_ASM */