summaryrefslogtreecommitdiff
path: root/extra/yassl/taocrypt
diff options
context:
space:
mode:
authorKristian Nielsen <knielsen@knielsen-hq.org>2016-10-21 22:43:46 +0200
committerKristian Nielsen <knielsen@knielsen-hq.org>2016-10-21 22:43:46 +0200
commit7eb4bd3f1ddd9b84425d51550b44c14ac0a8f1de (patch)
tree4cf011a87d419d812a2b498a204cd621a2e7a617 /extra/yassl/taocrypt
parent998f987eda62e6b3481ac3914538282715e2df4a (diff)
downloadmariadb-git-7eb4bd3f1ddd9b84425d51550b44c14ac0a8f1de.tar.gz
Upstream patch from Debian Bug 838557
The patch fixes 128-bit multiply on mips64. This corrects a previous incorrect patch upstreamed from Debian.
Diffstat (limited to 'extra/yassl/taocrypt')
-rw-r--r--extra/yassl/taocrypt/src/integer.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/extra/yassl/taocrypt/src/integer.cpp b/extra/yassl/taocrypt/src/integer.cpp
index fb8d9276bd9..dd8425396ed 100644
--- a/extra/yassl/taocrypt/src/integer.cpp
+++ b/extra/yassl/taocrypt/src/integer.cpp
@@ -193,8 +193,9 @@ DWord() {}
"a" (a), "rm" (b) : "cc");
#elif defined(__mips64)
- __asm__("dmultu %2,%3" : "=d" (r.halfs_.high), "=l" (r.halfs_.low)
- : "r" (a), "r" (b));
+ unsigned __int128 t = (unsigned __int128) a * b;
+ r.halfs_.high = t >> 64;
+ r.halfs_.low = (word) t;
#elif defined(_M_IX86)
// for testing