[commit: packages/integer-gmp] master: Dont use big/small-int primops on IL32P64 (i.e. Win/x86_64) for now (0476327)

git at git.haskell.org git at git.haskell.org
Thu Jan 16 23:20:09 UTC 2014


Repository : ssh://git@git.haskell.org/integer-gmp

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/0476327376045838375fbbe4a78c02859a1913cb/integer-gmp

>---------------------------------------------------------------

commit 0476327376045838375fbbe4a78c02859a1913cb
Author: Herbert Valerio Riedel <hvr at gnu.org>
Date:   Thu Jan 16 22:56:37 2014 +0100

    Dont use big/small-int primops on IL32P64 (i.e. Win/x86_64) for now
    
    This is due to `mpz_*()` functions having @long@ arguments which are
    32bit on IL32P64, whereas `Int#` and `Word#` are 64bit wide, causing all
    sorts of malfunction due to truncation.
    
    This affects mostly the new big/small-int primops introduced in the
    course of #8647, so when `SIZEOF_W != SIZEOF_LONG` we simply fall back
    to using the big/big-int primops. big/small primops implemented via the
    low-level `mpn_*()` GMP operations are not affected, as those use
    `mp_limb_t` arguments.
    
    Signed-off-by: Herbert Valerio Riedel <hvr at gnu.org>


>---------------------------------------------------------------

0476327376045838375fbbe4a78c02859a1913cb
 GHC/Integer/Type.lhs |   87 ++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 78 insertions(+), 9 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 0476327376045838375fbbe4a78c02859a1913cb


More information about the ghc-commits mailing list