summaryrefslogtreecommitdiff
path: root/compiler/types
diff options
context:
space:
mode:
authorJohn Ericson <git@JohnEricson.me>2019-06-10 09:32:50 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-07-17 12:20:26 -0400
commit0a9b77b8b4313a9ffe7483cbc286d249fda59e75 (patch)
treeb2f463b84513f965b3bf2b505a443230d6fc0364 /compiler/types
parent52f755aa203c55e44dce79c9ac1abc245977b000 (diff)
downloadhaskell-0a9b77b8b4313a9ffe7483cbc286d249fda59e75.tar.gz
Create {Int,Word}32Rep
This prepares the way for making Int32# and Word32# the actual size they claim to be. Updates binary submodule for (de)serializing the new runtime reps.
Diffstat (limited to 'compiler/types')
-rw-r--r--compiler/types/TyCon.hs10
1 files changed, 7 insertions, 3 deletions
diff --git a/compiler/types/TyCon.hs b/compiler/types/TyCon.hs
index 54a57cfc45..8068a5f666 100644
--- a/compiler/types/TyCon.hs
+++ b/compiler/types/TyCon.hs
@@ -1403,12 +1403,14 @@ data PrimRep
| UnliftedRep -- ^ Unlifted pointer
| Int8Rep -- ^ Signed, 8-bit value
| Int16Rep -- ^ Signed, 16-bit value
- | IntRep -- ^ Signed, word-sized value
- | WordRep -- ^ Unsigned, word-sized value
+ | Int32Rep -- ^ Signed, 32-bit value
| Int64Rep -- ^ Signed, 64 bit value (with 32-bit words only)
+ | IntRep -- ^ Signed, word-sized value
| Word8Rep -- ^ Unsigned, 8 bit value
- | Word16Rep -- ^ Unsigned, 16 bit value
+ | Word16Rep -- ^ Unsigned, 16 bit value
+ | Word32Rep -- ^ Unsigned, 32 bit value
| Word64Rep -- ^ Unsigned, 64 bit value (with 32-bit words only)
+ | WordRep -- ^ Unsigned, word-sized value
| AddrRep -- ^ A pointer, but /not/ to a Haskell value (use '(Un)liftedRep')
| FloatRep
| DoubleRep
@@ -1455,9 +1457,11 @@ primRepSizeB dflags IntRep = wORD_SIZE dflags
primRepSizeB dflags WordRep = wORD_SIZE dflags
primRepSizeB _ Int8Rep = 1
primRepSizeB _ Int16Rep = 2
+primRepSizeB _ Int32Rep = 4
primRepSizeB _ Int64Rep = wORD64_SIZE
primRepSizeB _ Word8Rep = 1
primRepSizeB _ Word16Rep = 2
+primRepSizeB _ Word32Rep = 4
primRepSizeB _ Word64Rep = wORD64_SIZE
primRepSizeB _ FloatRep = fLOAT_SIZE
primRepSizeB dflags DoubleRep = dOUBLE_SIZE dflags