diff options
| author | Grant Likely <grant.likely@secretlab.ca> | 2012-12-07 17:02:47 +0000 | 
|---|---|---|
| committer | Grant Likely <grant.likely@secretlab.ca> | 2012-12-07 17:02:47 +0000 | 
| commit | 7730cba2a50332c194f50a58b86359ea39a82bd1 (patch) | |
| tree | 64c8d7228da1454c02288068e57a9c61f8b0acd0 /lib/mpi/longlong.h | |
| parent | c20151dff8a6d503c0d0cc4387c33a618cdabcb7 (diff) | |
| parent | b69f0859dc8e633c5d8c06845811588fe17e68b3 (diff) | |
Merge tag 'v3.7-rc8' into spi/next
Linux 3.7-rc8
Diffstat (limited to 'lib/mpi/longlong.h')
| -rw-r--r-- | lib/mpi/longlong.h | 19 | 
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/mpi/longlong.h b/lib/mpi/longlong.h index 678ce4f1e124..095ab157a521 100644 --- a/lib/mpi/longlong.h +++ b/lib/mpi/longlong.h @@ -641,7 +641,14 @@ do { \  	**************  MIPS  *****************  	***************************************/  #if defined(__mips__) && W_TYPE_SIZE == 32 -#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7 +#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 4 +#define umul_ppmm(w1, w0, u, v)			\ +do {						\ +	UDItype __ll = (UDItype)(u) * (v);	\ +	w1 = __ll >> 32;			\ +	w0 = __ll;				\ +} while (0) +#elif __GNUC__ > 2 || __GNUC_MINOR__ >= 7  #define umul_ppmm(w1, w0, u, v) \  	__asm__ ("multu %2,%3" \  	: "=l" ((USItype)(w0)), \ @@ -666,7 +673,15 @@ do { \  	**************  MIPS/64  **************  	***************************************/  #if (defined(__mips) && __mips >= 3) && W_TYPE_SIZE == 64 -#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7 +#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 4 +#define umul_ppmm(w1, w0, u, v) \ +do {									\ +	typedef unsigned int __ll_UTItype __attribute__((mode(TI)));	\ +	__ll_UTItype __ll = (__ll_UTItype)(u) * (v);			\ +	w1 = __ll >> 64;						\ +	w0 = __ll;							\ +} while (0) +#elif __GNUC__ > 2 || __GNUC_MINOR__ >= 7  #define umul_ppmm(w1, w0, u, v) \  	__asm__ ("dmultu %2,%3" \  	: "=l" ((UDItype)(w0)), \  | 
