diff options
author | sewardj <unknown> | 2001-12-14 15:26:16 +0000 |
---|---|---|
committer | sewardj <unknown> | 2001-12-14 15:26:16 +0000 |
commit | 7dee9e10796acdc3af04f222ef06808ad3d1b611 (patch) | |
tree | d81906c8cfa22fc53a09db01cf0ad51faa5ec342 /ghc/lib/std/PrelGHC.hi-boot.pp | |
parent | 8cb83b665c1131654703fb84d80db027929db09e (diff) | |
download | haskell-7dee9e10796acdc3af04f222ef06808ad3d1b611.tar.gz |
[project @ 2001-12-14 15:26:14 by sewardj]
Get rid of multiple-result MachOps (MO_NatS_AddC, MO_NatS_SubC,
MO_NatS_MulC) which implement {add,sub,mul}IntC#. Supporting gunk
in the NCG disappears as a result.
Instead:
* {add,sub}IntC# are translated out during abstract C simplification,
turning into the xor-xor-invert-and-shift sequence previously defined
in PrimOps.h.
* mulIntC# is more difficult to get rid of portably. Instead we have
a new single-result PrimOp, mulIntMayOflo, with corresponding MachOp
MO_NatS_MulMayOflo. This tells you whether a W x W -> W signed
multiply might overflow, where W is the word size. When W=32, is
implemented by computing a 2W-long result. When W=64, we use the
previous approximation.
PrelNum.lhs' implementation of timesInteger changes slightly, to use
the new PrimOp.
Diffstat (limited to 'ghc/lib/std/PrelGHC.hi-boot.pp')
-rw-r--r-- | ghc/lib/std/PrelGHC.hi-boot.pp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ghc/lib/std/PrelGHC.hi-boot.pp b/ghc/lib/std/PrelGHC.hi-boot.pp index 2a8953aa51..12237357e9 100644 --- a/ghc/lib/std/PrelGHC.hi-boot.pp +++ b/ghc/lib/std/PrelGHC.hi-boot.pp @@ -95,7 +95,7 @@ __export PrelGHC uncheckedIShiftRLzh addIntCzh subIntCzh - mulIntCzh + mulIntMayOflozh Wordzh gtWordzh |