This is an automated email from the git hooks/post-receive script.

ppm-guest pushed a commit to annotated tag v0.30
in repository libmath-prime-util-perl.

commit 7ace5fb5dbdb0eba36d3154f6607420b66bb3f7a
Author: Dana Jacobsen <d...@acm.org>
Date:   Thu Jul 11 17:25:55 2013 -0700

    Turn on gcc's uint128 types if we have a new enough version
---
 mulmod.h | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/mulmod.h b/mulmod.h
index d44d58b..91c6ca0 100644
--- a/mulmod.h
+++ b/mulmod.h
@@ -38,7 +38,7 @@
          :"%rax", "%rdx"         /* clobbered registers */
         );
     /* A version for _MSC_VER:
-     *  
+     *
      *    __asm { mov rax, qword ptr a
      *            mul qword ptr b
      *            div qword ptr c
@@ -49,12 +49,16 @@
   #define mulmod(a,b,m) _mulmod(a,b,m)
   #define sqrmod(n,m)   _mulmod(n,n,m)
 
-#elif 0
+#elif __GNUC__ == 4 && __GNUC_MINOR__ >= 4
 
-  /* Finding out if these types are supported requires non-trivial
-   * configuration.  They are very fast if they exist. */
-  #define mulmod(a,b,m)  (UV)(((__uint128_t)(a)*(__uint128_t)(b)) % 
((__uint128_t)(m)))
-  #define sqrmod(n,m)    (UV)(((__uint128_t)(n)*(__uint128_t)(n)) % 
((__uint128_t)(m)))
+  #if __GNUC__ == 4 && __GNUC_MINOR__ >= 4 && __GNUC_MINOR__ < 6
+    typedef unsigned int uint128_t __attribute__ ((__mode__ (TI)));
+  #else
+    typedef unsigned __int128 uint128_t;
+  #endif
+
+  #define mulmod(a,b,m) (UV)(((uint128_t)(a)*(uint128_t)(b)) % 
((uint128_t)(m)))
+  #define sqrmod(n,m)   (UV)(((uint128_t)(n)*(uint128_t)(n)) % 
((uint128_t)(m)))
 
 #else
 

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libmath-prime-util-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to