diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/GHC/Builtin/bytearray-ops.txt.pp | 60 | ||||
-rw-r--r-- | compiler/GHC/Builtin/primops.txt.pp | 93 | ||||
-rw-r--r-- | compiler/GHC/CmmToAsm/Ppr.hs | 14 | ||||
-rw-r--r-- | compiler/GHC/Data/FastString.hs | 4 | ||||
-rw-r--r-- | compiler/GHC/StgToCmm/Prim.hs | 96 | ||||
-rw-r--r-- | compiler/GHC/Tc/Deriv/Generate.hs | 43 |
6 files changed, 155 insertions, 155 deletions
diff --git a/compiler/GHC/Builtin/bytearray-ops.txt.pp b/compiler/GHC/Builtin/bytearray-ops.txt.pp index 75f420479f..6ed9028c6b 100644 --- a/compiler/GHC/Builtin/bytearray-ops.txt.pp +++ b/compiler/GHC/Builtin/bytearray-ops.txt.pp @@ -55,17 +55,17 @@ primop IndexByteArrayOp_StablePtr "indexStablePtrArray#" GenPrimOp with can_fail = True primop IndexByteArrayOp_Int8 "indexInt8Array#" GenPrimOp - ByteArray# -> Int# -> Int# + ByteArray# -> Int# -> Int8# {Read a 8-bit signed integer; offset in bytes.} with can_fail = True primop IndexByteArrayOp_Int16 "indexInt16Array#" GenPrimOp - ByteArray# -> Int# -> Int# + ByteArray# -> Int# -> Int16# {Read a 16-bit signed integer; offset in 2-byte words.} with can_fail = True primop IndexByteArrayOp_Int32 "indexInt32Array#" GenPrimOp - ByteArray# -> Int# -> INT32 + ByteArray# -> Int# -> Int32# {Read a 32-bit signed integer; offset in 4-byte words.} with can_fail = True @@ -75,17 +75,17 @@ primop IndexByteArrayOp_Int64 "indexInt64Array#" GenPrimOp with can_fail = True primop IndexByteArrayOp_Word8 "indexWord8Array#" GenPrimOp - ByteArray# -> Int# -> Word# + ByteArray# -> Int# -> Word8# {Read a 8-bit unsigned integer; offset in bytes.} with can_fail = True primop IndexByteArrayOp_Word16 "indexWord16Array#" GenPrimOp - ByteArray# -> Int# -> Word# + ByteArray# -> Int# -> Word16# {Read a 16-bit unsigned integer; offset in 2-byte words.} with can_fail = True primop IndexByteArrayOp_Word32 "indexWord32Array#" GenPrimOp - ByteArray# -> Int# -> WORD32 + ByteArray# -> Int# -> Word32# {Read a 32-bit unsigned integer; offset in 4-byte words.} with can_fail = True @@ -140,12 +140,12 @@ primop IndexByteArrayOp_Word8AsStablePtr "indexWord8ArrayAsStablePtr#" GenPrimOp with can_fail = True primop IndexByteArrayOp_Word8AsInt16 "indexWord8ArrayAsInt16#" GenPrimOp - ByteArray# -> Int# -> Int# + ByteArray# -> Int# -> Int16# {Read a 16-bit signed integer; offset in bytes.} with can_fail = True primop IndexByteArrayOp_Word8AsInt32 "indexWord8ArrayAsInt32#" GenPrimOp - ByteArray# -> Int# -> INT32 + ByteArray# -> Int# -> Int32# {Read a 32-bit signed integer; offset in bytes.} with can_fail = True @@ -155,12 +155,12 @@ primop IndexByteArrayOp_Word8AsInt64 "indexWord8ArrayAsInt64#" GenPrimOp with can_fail = True primop IndexByteArrayOp_Word8AsWord16 "indexWord8ArrayAsWord16#" GenPrimOp - ByteArray# -> Int# -> Word# + ByteArray# -> Int# -> Word16# {Read a 16-bit unsigned integer; offset in bytes.} with can_fail = True primop IndexByteArrayOp_Word8AsWord32 "indexWord8ArrayAsWord32#" GenPrimOp - ByteArray# -> Int# -> WORD32 + ByteArray# -> Int# -> Word32# {Read a 32-bit unsigned integer; offset in bytes.} with can_fail = True @@ -223,19 +223,19 @@ primop ReadByteArrayOp_StablePtr "readStablePtrArray#" GenPrimOp can_fail = True primop ReadByteArrayOp_Int8 "readInt8Array#" GenPrimOp - MutableByteArray# s -> Int# -> State# s -> (# State# s, Int# #) + MutableByteArray# s -> Int# -> State# s -> (# State# s, Int8# #) {Read a 8-bit signed integer; offset in bytes.} with has_side_effects = True can_fail = True primop ReadByteArrayOp_Int16 "readInt16Array#" GenPrimOp - MutableByteArray# s -> Int# -> State# s -> (# State# s, Int# #) + MutableByteArray# s -> Int# -> State# s -> (# State# s, Int16# #) {Read a 16-bit signed integer; offset in 2-byte words.} with has_side_effects = True can_fail = True primop ReadByteArrayOp_Int32 "readInt32Array#" GenPrimOp - MutableByteArray# s -> Int# -> State# s -> (# State# s, INT32 #) + MutableByteArray# s -> Int# -> State# s -> (# State# s, Int32# #) {Read a 32-bit signed integer; offset in 4-byte words.} with has_side_effects = True can_fail = True @@ -247,19 +247,19 @@ primop ReadByteArrayOp_Int64 "readInt64Array#" GenPrimOp can_fail = True primop ReadByteArrayOp_Word8 "readWord8Array#" GenPrimOp - MutableByteArray# s -> Int# -> State# s -> (# State# s, Word# #) + MutableByteArray# s -> Int# -> State# s -> (# State# s, Word8# #) {Read a 8-bit unsigned integer; offset in bytes.} with has_side_effects = True can_fail = True primop ReadByteArrayOp_Word16 "readWord16Array#" GenPrimOp - MutableByteArray# s -> Int# -> State# s -> (# State# s, Word# #) + MutableByteArray# s -> Int# -> State# s -> (# State# s, Word16# #) {Read a 16-bit unsigned integer; offset in 2-byte words.} with has_side_effects = True can_fail = True primop ReadByteArrayOp_Word32 "readWord32Array#" GenPrimOp - MutableByteArray# s -> Int# -> State# s -> (# State# s, WORD32 #) + MutableByteArray# s -> Int# -> State# s -> (# State# s, Word32# #) {Read a 32-bit unsigned integer; offset in 4-byte words.} with has_side_effects = True can_fail = True @@ -324,13 +324,13 @@ primop ReadByteArrayOp_Word8AsStablePtr "readWord8ArrayAsStablePtr#" GenPrimOp can_fail = True primop ReadByteArrayOp_Word8AsInt16 "readWord8ArrayAsInt16#" GenPrimOp - MutableByteArray# s -> Int# -> State# s -> (# State# s, Int# #) + MutableByteArray# s -> Int# -> State# s -> (# State# s, Int16# #) {Read a 16-bit signed integer; offset in bytes.} with has_side_effects = True can_fail = True primop ReadByteArrayOp_Word8AsInt32 "readWord8ArrayAsInt32#" GenPrimOp - MutableByteArray# s -> Int# -> State# s -> (# State# s, INT32 #) + MutableByteArray# s -> Int# -> State# s -> (# State# s, Int32# #) {Read a 32-bit signed integer; offset in bytes.} with has_side_effects = True can_fail = True @@ -342,13 +342,13 @@ primop ReadByteArrayOp_Word8AsInt64 "readWord8ArrayAsInt64#" GenPrimOp can_fail = True primop ReadByteArrayOp_Word8AsWord16 "readWord8ArrayAsWord16#" GenPrimOp - MutableByteArray# s -> Int# -> State# s -> (# State# s, Word# #) + MutableByteArray# s -> Int# -> State# s -> (# State# s, Word16# #) {Read a 16-bit unsigned integer; offset in bytes.} with has_side_effects = True can_fail = True primop ReadByteArrayOp_Word8AsWord32 "readWord8ArrayAsWord32#" GenPrimOp - MutableByteArray# s -> Int# -> State# s -> (# State# s, WORD32 #) + MutableByteArray# s -> Int# -> State# s -> (# State# s, Word32# #) {Read a 32-bit unsigned integer; offset in bytes.} with has_side_effects = True can_fail = True @@ -413,19 +413,19 @@ primop WriteByteArrayOp_StablePtr "writeStablePtrArray#" GenPrimOp can_fail = True primop WriteByteArrayOp_Int8 "writeInt8Array#" GenPrimOp - MutableByteArray# s -> Int# -> Int# -> State# s -> State# s + MutableByteArray# s -> Int# -> Int8# -> State# s -> State# s {Write a 8-bit signed integer; offset in bytes.} with has_side_effects = True can_fail = True primop WriteByteArrayOp_Int16 "writeInt16Array#" GenPrimOp - MutableByteArray# s -> Int# -> Int# -> State# s -> State# s + MutableByteArray# s -> Int# -> Int16# -> State# s -> State# s {Write a 16-bit signed integer; offset in 2-byte words.} with has_side_effects = True can_fail = True primop WriteByteArrayOp_Int32 "writeInt32Array#" GenPrimOp - MutableByteArray# s -> Int# -> INT32 -> State# s -> State# s + MutableByteArray# s -> Int# -> Int32# -> State# s -> State# s {Write a 32-bit signed integer; offset in 4-byte words.} with has_side_effects = True can_fail = True @@ -437,19 +437,19 @@ primop WriteByteArrayOp_Int64 "writeInt64Array#" GenPrimOp can_fail = True primop WriteByteArrayOp_Word8 "writeWord8Array#" GenPrimOp - MutableByteArray# s -> Int# -> Word# -> State# s -> State# s + MutableByteArray# s -> Int# -> Word8# -> State# s -> State# s {Write a 8-bit unsigned integer; offset in bytes.} with has_side_effects = True can_fail = True primop WriteByteArrayOp_Word16 "writeWord16Array#" GenPrimOp - MutableByteArray# s -> Int# -> Word# -> State# s -> State# s + MutableByteArray# s -> Int# -> Word16# -> State# s -> State# s {Write a 16-bit unsigned integer; offset in 2-byte words.} with has_side_effects = True can_fail = True primop WriteByteArrayOp_Word32 "writeWord32Array#" GenPrimOp - MutableByteArray# s -> Int# -> WORD32 -> State# s -> State# s + MutableByteArray# s -> Int# -> Word32# -> State# s -> State# s {Write a 32-bit unsigned integer; offset in 4-byte words.} with has_side_effects = True can_fail = True @@ -514,13 +514,13 @@ primop WriteByteArrayOp_Word8AsStablePtr "writeWord8ArrayAsStablePtr#" GenPrimOp can_fail = True primop WriteByteArrayOp_Word8AsInt16 "writeWord8ArrayAsInt16#" GenPrimOp - MutableByteArray# s -> Int# -> Int# -> State# s -> State# s + MutableByteArray# s -> Int# -> Int16# -> State# s -> State# s {Write a 16-bit signed integer; offset in bytes.} with has_side_effects = True can_fail = True primop WriteByteArrayOp_Word8AsInt32 "writeWord8ArrayAsInt32#" GenPrimOp - MutableByteArray# s -> Int# -> INT32 -> State# s -> State# s + MutableByteArray# s -> Int# -> Int32# -> State# s -> State# s {Write a 32-bit signed integer; offset in bytes.} with has_side_effects = True can_fail = True @@ -532,13 +532,13 @@ primop WriteByteArrayOp_Word8AsInt64 "writeWord8ArrayAsInt64#" GenPrimOp can_fail = True primop WriteByteArrayOp_Word8AsWord16 "writeWord8ArrayAsWord16#" GenPrimOp - MutableByteArray# s -> Int# -> Word# -> State# s -> State# s + MutableByteArray# s -> Int# -> Word16# -> State# s -> State# s {Write a 16-bit unsigned integer; offset in bytes.} with has_side_effects = True can_fail = True primop WriteByteArrayOp_Word8AsWord32 "writeWord8ArrayAsWord32#" GenPrimOp - MutableByteArray# s -> Int# -> WORD32 -> State# s -> State# s + MutableByteArray# s -> Int# -> Word32# -> State# s -> State# s {Write a 32-bit unsigned integer; offset in bytes.} with has_side_effects = True can_fail = True diff --git a/compiler/GHC/Builtin/primops.txt.pp b/compiler/GHC/Builtin/primops.txt.pp index fe9ffa6f00..8389de098c 100644 --- a/compiler/GHC/Builtin/primops.txt.pp +++ b/compiler/GHC/Builtin/primops.txt.pp @@ -247,9 +247,6 @@ section "The word size story." -- Define synonyms for indexing ops. -#define INT32 Int# -#define WORD32 Word# - #if WORD_SIZE_IN_BITS < 64 #define INT64 Int64# #define WORD64 Word64# @@ -289,8 +286,8 @@ section "Int8#" primtype Int8# -primop Int8ToIntOp "extendInt8#" GenPrimOp Int8# -> Int# -primop IntToInt8Op "narrowInt8#" GenPrimOp Int# -> Int8# +primop Int8ToIntOp "int8ToInt#" GenPrimOp Int8# -> Int# +primop IntToInt8Op "intToInt8#" GenPrimOp Int# -> Int8# primop Int8NegOp "negateInt8#" GenPrimOp Int8# -> Int8# @@ -337,8 +334,8 @@ section "Word8#" primtype Word8# -primop Word8ToWordOp "extendWord8#" GenPrimOp Word8# -> Word# -primop WordToWord8Op "narrowWord8#" GenPrimOp Word# -> Word8# +primop Word8ToWordOp "word8ToWord#" GenPrimOp Word8# -> Word# +primop WordToWord8Op "wordToWord8#" GenPrimOp Word# -> Word8# primop Word8AddOp "plusWord8#" GenPrimOp Word8# -> Word8# -> Word8# with @@ -393,8 +390,8 @@ section "Int16#" primtype Int16# -primop Int16ToIntOp "extendInt16#" GenPrimOp Int16# -> Int# -primop IntToInt16Op "narrowInt16#" GenPrimOp Int# -> Int16# +primop Int16ToIntOp "int16ToInt#" GenPrimOp Int16# -> Int# +primop IntToInt16Op "intToInt16#" GenPrimOp Int# -> Int16# primop Int16NegOp "negateInt16#" GenPrimOp Int16# -> Int16# @@ -441,8 +438,8 @@ section "Word16#" primtype Word16# -primop Word16ToWordOp "extendWord16#" GenPrimOp Word16# -> Word# -primop WordToWord16Op "narrowWord16#" GenPrimOp Word# -> Word16# +primop Word16ToWordOp "word16ToWord#" GenPrimOp Word16# -> Word# +primop WordToWord16Op "wordToWord16#" GenPrimOp Word# -> Word16# primop Word16AddOp "plusWord16#" GenPrimOp Word16# -> Word16# -> Word16# with @@ -497,8 +494,8 @@ section "Int32#" primtype Int32# -primop Int32ToIntOp "extendInt32#" GenPrimOp Int32# -> Int# -primop IntToInt32Op "narrowInt32#" GenPrimOp Int# -> Int32# +primop Int32ToIntOp "int32ToInt#" GenPrimOp Int32# -> Int# +primop IntToInt32Op "intToInt32#" GenPrimOp Int# -> Int32# primop Int32NegOp "negateInt32#" GenPrimOp Int32# -> Int32# @@ -545,8 +542,8 @@ section "Word32#" primtype Word32# -primop Word32ToWordOp "extendWord32#" GenPrimOp Word32# -> Word# -primop WordToWord32Op "narrowWord32#" GenPrimOp Word# -> Word32# +primop Word32ToWordOp "word32ToWord#" GenPrimOp Word32# -> Word# +primop WordToWord32Op "wordToWord32#" GenPrimOp Word# -> Word32# primop Word32AddOp "plusWord32#" GenPrimOp Word32# -> Word32# -> Word32# with @@ -2046,15 +2043,15 @@ primop IndexOffAddrOp_StablePtr "indexStablePtrOffAddr#" GenPrimOp with can_fail = True primop IndexOffAddrOp_Int8 "indexInt8OffAddr#" GenPrimOp - Addr# -> Int# -> Int# + Addr# -> Int# -> Int8# with can_fail = True primop IndexOffAddrOp_Int16 "indexInt16OffAddr#" GenPrimOp - Addr# -> Int# -> Int# + Addr# -> Int# -> Int16# with can_fail = True primop IndexOffAddrOp_Int32 "indexInt32OffAddr#" GenPrimOp - Addr# -> Int# -> INT32 + Addr# -> Int# -> Int32# with can_fail = True primop IndexOffAddrOp_Int64 "indexInt64OffAddr#" GenPrimOp @@ -2062,15 +2059,15 @@ primop IndexOffAddrOp_Int64 "indexInt64OffAddr#" GenPrimOp with can_fail = True primop IndexOffAddrOp_Word8 "indexWord8OffAddr#" GenPrimOp - Addr# -> Int# -> Word# + Addr# -> Int# -> Word8# with can_fail = True primop IndexOffAddrOp_Word16 "indexWord16OffAddr#" GenPrimOp - Addr# -> Int# -> Word# + Addr# -> Int# -> Word16# with can_fail = True primop IndexOffAddrOp_Word32 "indexWord32OffAddr#" GenPrimOp - Addr# -> Int# -> WORD32 + Addr# -> Int# -> Word32# with can_fail = True primop IndexOffAddrOp_Word64 "indexWord64OffAddr#" GenPrimOp @@ -2120,17 +2117,17 @@ primop ReadOffAddrOp_StablePtr "readStablePtrOffAddr#" GenPrimOp can_fail = True primop ReadOffAddrOp_Int8 "readInt8OffAddr#" GenPrimOp - Addr# -> Int# -> State# s -> (# State# s, Int# #) + Addr# -> Int# -> State# s -> (# State# s, Int8# #) with has_side_effects = True can_fail = True primop ReadOffAddrOp_Int16 "readInt16OffAddr#" GenPrimOp - Addr# -> Int# -> State# s -> (# State# s, Int# #) + Addr# -> Int# -> State# s -> (# State# s, Int16# #) with has_side_effects = True can_fail = True primop ReadOffAddrOp_Int32 "readInt32OffAddr#" GenPrimOp - Addr# -> Int# -> State# s -> (# State# s, INT32 #) + Addr# -> Int# -> State# s -> (# State# s, Int32# #) with has_side_effects = True can_fail = True @@ -2140,17 +2137,17 @@ primop ReadOffAddrOp_Int64 "readInt64OffAddr#" GenPrimOp can_fail = True primop ReadOffAddrOp_Word8 "readWord8OffAddr#" GenPrimOp - Addr# -> Int# -> State# s -> (# State# s, Word# #) + Addr# -> Int# -> State# s -> (# State# s, Word8# #) with has_side_effects = True can_fail = True primop ReadOffAddrOp_Word16 "readWord16OffAddr#" GenPrimOp - Addr# -> Int# -> State# s -> (# State# s, Word# #) + Addr# -> Int# -> State# s -> (# State# s, Word16# #) with has_side_effects = True can_fail = True primop ReadOffAddrOp_Word32 "readWord32OffAddr#" GenPrimOp - Addr# -> Int# -> State# s -> (# State# s, WORD32 #) + Addr# -> Int# -> State# s -> (# State# s, Word32# #) with has_side_effects = True can_fail = True @@ -2200,17 +2197,17 @@ primop WriteOffAddrOp_StablePtr "writeStablePtrOffAddr#" GenPrimOp can_fail = True primop WriteOffAddrOp_Int8 "writeInt8OffAddr#" GenPrimOp - Addr# -> Int# -> Int# -> State# s -> State# s + Addr# -> Int# -> Int8# -> State# s -> State# s with has_side_effects = True can_fail = True primop WriteOffAddrOp_Int16 "writeInt16OffAddr#" GenPrimOp - Addr# -> Int# -> Int# -> State# s -> State# s + Addr# -> Int# -> Int16# -> State# s -> State# s with has_side_effects = True can_fail = True primop WriteOffAddrOp_Int32 "writeInt32OffAddr#" GenPrimOp - Addr# -> Int# -> INT32 -> State# s -> State# s + Addr# -> Int# -> Int32# -> State# s -> State# s with has_side_effects = True can_fail = True @@ -2220,17 +2217,17 @@ primop WriteOffAddrOp_Int64 "writeInt64OffAddr#" GenPrimOp can_fail = True primop WriteOffAddrOp_Word8 "writeWord8OffAddr#" GenPrimOp - Addr# -> Int# -> Word# -> State# s -> State# s + Addr# -> Int# -> Word8# -> State# s -> State# s with has_side_effects = True can_fail = True primop WriteOffAddrOp_Word16 "writeWord16OffAddr#" GenPrimOp - Addr# -> Int# -> Word# -> State# s -> State# s + Addr# -> Int# -> Word16# -> State# s -> State# s with has_side_effects = True can_fail = True primop WriteOffAddrOp_Word32 "writeWord32OffAddr#" GenPrimOp - Addr# -> Int# -> WORD32 -> State# s -> State# s + Addr# -> Int# -> Word32# -> State# s -> State# s with has_side_effects = True can_fail = True @@ -3419,20 +3416,20 @@ section "SIMD Vectors" ------------------------------------------------------------------------ #define ALL_VECTOR_TYPES \ - [<Int8,Int#,16>,<Int16,Int#,8>,<Int32,INT32,4>,<Int64,INT64,2> \ - ,<Int8,Int#,32>,<Int16,Int#,16>,<Int32,INT32,8>,<Int64,INT64,4> \ - ,<Int8,Int#,64>,<Int16,Int#,32>,<Int32,INT32,16>,<Int64,INT64,8> \ - ,<Word8,Word#,16>,<Word16,Word#,8>,<Word32,WORD32,4>,<Word64,WORD64,2> \ - ,<Word8,Word#,32>,<Word16,Word#,16>,<Word32,WORD32,8>,<Word64,WORD64,4> \ - ,<Word8,Word#,64>,<Word16,Word#,32>,<Word32,WORD32,16>,<Word64,WORD64,8> \ + [<Int8,Int8#,16>,<Int16,Int16#,8>,<Int32,Int32#,4>,<Int64,INT64,2> \ + ,<Int8,Int8#,32>,<Int16,Int16#,16>,<Int32,Int32#,8>,<Int64,INT64,4> \ + ,<Int8,Int8#,64>,<Int16,Int16#,32>,<Int32,Int32#,16>,<Int64,INT64,8> \ + ,<Word8,Word#,16>,<Word16,Word#,8>,<Word32,Word32#,4>,<Word64,WORD64,2> \ + ,<Word8,Word#,32>,<Word16,Word#,16>,<Word32,Word32#,8>,<Word64,WORD64,4> \ + ,<Word8,Word#,64>,<Word16,Word#,32>,<Word32,Word32#,16>,<Word64,WORD64,8> \ ,<Float,Float#,4>,<Double,Double#,2> \ ,<Float,Float#,8>,<Double,Double#,4> \ ,<Float,Float#,16>,<Double,Double#,8>] #define SIGNED_VECTOR_TYPES \ - [<Int8,Int#,16>,<Int16,Int#,8>,<Int32,INT32,4>,<Int64,INT64,2> \ - ,<Int8,Int#,32>,<Int16,Int#,16>,<Int32,INT32,8>,<Int64,INT64,4> \ - ,<Int8,Int#,64>,<Int16,Int#,32>,<Int32,INT32,16>,<Int64,INT64,8> \ + [<Int8,Int8#,16>,<Int16,Int16#,8>,<Int32,Int32#,4>,<Int64,INT64,2> \ + ,<Int8,Int8#,32>,<Int16,Int16#,16>,<Int32,Int32#,8>,<Int64,INT64,4> \ + ,<Int8,Int8#,64>,<Int16,Int16#,32>,<Int32,Int32#,16>,<Int64,INT64,8> \ ,<Float,Float#,4>,<Double,Double#,2> \ ,<Float,Float#,8>,<Double,Double#,4> \ ,<Float,Float#,16>,<Double,Double#,8>] @@ -3443,12 +3440,12 @@ section "SIMD Vectors" ,<Float,Float#,16>,<Double,Double#,8>] #define INT_VECTOR_TYPES \ - [<Int8,Int#,16>,<Int16,Int#,8>,<Int32,INT32,4>,<Int64,INT64,2> \ - ,<Int8,Int#,32>,<Int16,Int#,16>,<Int32,INT32,8>,<Int64,INT64,4> \ - ,<Int8,Int#,64>,<Int16,Int#,32>,<Int32,INT32,16>,<Int64,INT64,8> \ - ,<Word8,Word#,16>,<Word16,Word#,8>,<Word32,WORD32,4>,<Word64,WORD64,2> \ - ,<Word8,Word#,32>,<Word16,Word#,16>,<Word32,WORD32,8>,<Word64,WORD64,4> \ - ,<Word8,Word#,64>,<Word16,Word#,32>,<Word32,WORD32,16>,<Word64,WORD64,8>] + [<Int8,Int8#,16>,<Int16,Int16#,8>,<Int32,Int32#,4>,<Int64,INT64,2> \ + ,<Int8,Int8#,32>,<Int16,Int16#,16>,<Int32,Int32#,8>,<Int64,INT64,4> \ + ,<Int8,Int8#,64>,<Int16,Int16#,32>,<Int32,Int32#,16>,<Int64,INT64,8> \ + ,<Word8,Word#,16>,<Word16,Word#,8>,<Word32,Word32#,4>,<Word64,WORD64,2> \ + ,<Word8,Word#,32>,<Word16,Word#,16>,<Word32,Word32#,8>,<Word64,WORD64,4> \ + ,<Word8,Word#,64>,<Word16,Word#,32>,<Word32,Word32#,16>,<Word64,WORD64,8>] primtype VECTOR with llvm_only = True diff --git a/compiler/GHC/CmmToAsm/Ppr.hs b/compiler/GHC/CmmToAsm/Ppr.hs index a3606219da..8fba238cd1 100644 --- a/compiler/GHC/CmmToAsm/Ppr.hs +++ b/compiler/GHC/CmmToAsm/Ppr.hs @@ -38,15 +38,13 @@ import Data.Word import Data.Bits import Data.ByteString (ByteString) import qualified Data.ByteString as BS -import GHC.Exts hiding (extendWord8#) +import GHC.Exts import GHC.Word -#if MIN_VERSION_base(4,16,0) -import GHC.Base (extendWord8#) -#else -extendWord8# :: Word# -> Word# -extendWord8# w = w -{-# INLINE extendWord8# #-} +#if !MIN_VERSION_base(4,16,0) +word8ToWord# :: Word# -> Word# +word8ToWord# w = w +{-# INLINE word8ToWord# #-} #endif -- ----------------------------------------------------------------------------- @@ -111,7 +109,7 @@ pprASCII str -- we know that the Chars we create are in the ASCII range -- so we bypass the check in "chr" chr' :: Word8 -> Char - chr' (W8# w#) = C# (chr# (word2Int# (extendWord8# w#))) + chr' (W8# w#) = C# (chr# (word2Int# (word8ToWord# w#))) octal :: Word8 -> String octal w = [ chr' (ord0 + (w `unsafeShiftR` 6) .&. 0x07) diff --git a/compiler/GHC/Data/FastString.hs b/compiler/GHC/Data/FastString.hs index d9363fe2e4..1388563ca7 100644 --- a/compiler/GHC/Data/FastString.hs +++ b/compiler/GHC/Data/FastString.hs @@ -566,7 +566,11 @@ hashStr sbs@(SBS.SBS ba#) = loop 0# 0# -- DO NOT move this let binding! indexCharOffAddr# reads from the -- pointer so we need to evaluate this based on the length check -- above. Not doing this right caused #17909. +#if __GLASGOW_HASKELL__ >= 901 + !c = int8ToInt# (indexInt8Array# ba# n) +#else !c = indexInt8Array# ba# n +#endif !h2 = (h *# 16777619#) `xorI#` c in loop h2 (n +# 1#) diff --git a/compiler/GHC/StgToCmm/Prim.hs b/compiler/GHC/StgToCmm/Prim.hs index 2ea28a8eb2..b7fde9642c 100644 --- a/compiler/GHC/StgToCmm/Prim.hs +++ b/compiler/GHC/StgToCmm/Prim.hs @@ -457,19 +457,19 @@ emitPrimOp dflags primop = case primop of IndexOffAddrOp_StablePtr -> \args -> opIntoRegs $ \res -> doIndexOffAddrOp Nothing (bWord platform) res args IndexOffAddrOp_Int8 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_s_8ToWord platform)) b8 res args + doIndexOffAddrOp Nothing b8 res args IndexOffAddrOp_Int16 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_s_16ToWord platform)) b16 res args + doIndexOffAddrOp Nothing b16 res args IndexOffAddrOp_Int32 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_s_32ToWord platform)) b32 res args + doIndexOffAddrOp Nothing b32 res args IndexOffAddrOp_Int64 -> \args -> opIntoRegs $ \res -> doIndexOffAddrOp Nothing b64 res args IndexOffAddrOp_Word8 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_u_8ToWord platform)) b8 res args + doIndexOffAddrOp Nothing b8 res args IndexOffAddrOp_Word16 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_u_16ToWord platform)) b16 res args + doIndexOffAddrOp Nothing b16 res args IndexOffAddrOp_Word32 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_u_32ToWord platform)) b32 res args + doIndexOffAddrOp Nothing b32 res args IndexOffAddrOp_Word64 -> \args -> opIntoRegs $ \res -> doIndexOffAddrOp Nothing b64 res args @@ -492,19 +492,19 @@ emitPrimOp dflags primop = case primop of ReadOffAddrOp_StablePtr -> \args -> opIntoRegs $ \res -> doIndexOffAddrOp Nothing (bWord platform) res args ReadOffAddrOp_Int8 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_s_8ToWord platform)) b8 res args + doIndexOffAddrOp Nothing b8 res args ReadOffAddrOp_Int16 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_s_16ToWord platform)) b16 res args + doIndexOffAddrOp Nothing b16 res args ReadOffAddrOp_Int32 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_s_32ToWord platform)) b32 res args + doIndexOffAddrOp Nothing b32 res args ReadOffAddrOp_Int64 -> \args -> opIntoRegs $ \res -> doIndexOffAddrOp Nothing b64 res args ReadOffAddrOp_Word8 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_u_8ToWord platform)) b8 res args + doIndexOffAddrOp Nothing b8 res args ReadOffAddrOp_Word16 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_u_16ToWord platform)) b16 res args + doIndexOffAddrOp Nothing b16 res args ReadOffAddrOp_Word32 -> \args -> opIntoRegs $ \res -> - doIndexOffAddrOp (Just (mo_u_32ToWord platform)) b32 res args + doIndexOffAddrOp Nothing b32 res args ReadOffAddrOp_Word64 -> \args -> opIntoRegs $ \res -> doIndexOffAddrOp Nothing b64 res args @@ -527,19 +527,19 @@ emitPrimOp dflags primop = case primop of IndexByteArrayOp_StablePtr -> \args -> opIntoRegs $ \res -> doIndexByteArrayOp Nothing (bWord platform) res args IndexByteArrayOp_Int8 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_s_8ToWord platform)) b8 res args + doIndexByteArrayOp Nothing b8 res args IndexByteArrayOp_Int16 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_s_16ToWord platform)) b16 res args + doIndexByteArrayOp Nothing b16 res args IndexByteArrayOp_Int32 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_s_32ToWord platform)) b32 res args + doIndexByteArrayOp Nothing b32 res args IndexByteArrayOp_Int64 -> \args -> opIntoRegs $ \res -> doIndexByteArrayOp Nothing b64 res args IndexByteArrayOp_Word8 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_u_8ToWord platform)) b8 res args + doIndexByteArrayOp Nothing b8 res args IndexByteArrayOp_Word16 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_u_16ToWord platform)) b16 res args + doIndexByteArrayOp Nothing b16 res args IndexByteArrayOp_Word32 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_u_32ToWord platform)) b32 res args + doIndexByteArrayOp Nothing b32 res args IndexByteArrayOp_Word64 -> \args -> opIntoRegs $ \res -> doIndexByteArrayOp Nothing b64 res args @@ -562,19 +562,19 @@ emitPrimOp dflags primop = case primop of ReadByteArrayOp_StablePtr -> \args -> opIntoRegs $ \res -> doIndexByteArrayOp Nothing (bWord platform) res args ReadByteArrayOp_Int8 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_s_8ToWord platform)) b8 res args + doIndexByteArrayOp Nothing b8 res args ReadByteArrayOp_Int16 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_s_16ToWord platform)) b16 res args + doIndexByteArrayOp Nothing b16 res args ReadByteArrayOp_Int32 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_s_32ToWord platform)) b32 res args + doIndexByteArrayOp Nothing b32 res args ReadByteArrayOp_Int64 -> \args -> opIntoRegs $ \res -> doIndexByteArrayOp Nothing b64 res args ReadByteArrayOp_Word8 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_u_8ToWord platform)) b8 res args + doIndexByteArrayOp Nothing b8 res args ReadByteArrayOp_Word16 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_u_16ToWord platform)) b16 res args + doIndexByteArrayOp Nothing b16 res args ReadByteArrayOp_Word32 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOp (Just (mo_u_32ToWord platform)) b32 res args + doIndexByteArrayOp Nothing b32 res args ReadByteArrayOp_Word64 -> \args -> opIntoRegs $ \res -> doIndexByteArrayOp Nothing b64 res args @@ -597,15 +597,15 @@ emitPrimOp dflags primop = case primop of IndexByteArrayOp_Word8AsStablePtr -> \args -> opIntoRegs $ \res -> doIndexByteArrayOpAs Nothing (bWord platform) b8 res args IndexByteArrayOp_Word8AsInt16 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOpAs (Just (mo_s_16ToWord platform)) b16 b8 res args + doIndexByteArrayOpAs Nothing b16 b8 res args IndexByteArrayOp_Word8AsInt32 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOpAs (Just (mo_s_32ToWord platform)) b32 b8 res args + doIndexByteArrayOpAs Nothing b32 b8 res args IndexByteArrayOp_Word8AsInt64 -> \args -> opIntoRegs $ \res -> doIndexByteArrayOpAs Nothing b64 b8 res args IndexByteArrayOp_Word8AsWord16 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOpAs (Just (mo_u_16ToWord platform)) b16 b8 res args + doIndexByteArrayOpAs Nothing b16 b8 res args IndexByteArrayOp_Word8AsWord32 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOpAs (Just (mo_u_32ToWord platform)) b32 b8 res args + doIndexByteArrayOpAs Nothing b32 b8 res args IndexByteArrayOp_Word8AsWord64 -> \args -> opIntoRegs $ \res -> doIndexByteArrayOpAs Nothing b64 b8 res args @@ -628,15 +628,15 @@ emitPrimOp dflags primop = case primop of ReadByteArrayOp_Word8AsStablePtr -> \args -> opIntoRegs $ \res -> doIndexByteArrayOpAs Nothing (bWord platform) b8 res args ReadByteArrayOp_Word8AsInt16 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOpAs (Just (mo_s_16ToWord platform)) b16 b8 res args + doIndexByteArrayOpAs Nothing b16 b8 res args ReadByteArrayOp_Word8AsInt32 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOpAs (Just (mo_s_32ToWord platform)) b32 b8 res args + doIndexByteArrayOpAs Nothing b32 b8 res args ReadByteArrayOp_Word8AsInt64 -> \args -> opIntoRegs $ \res -> doIndexByteArrayOpAs Nothing b64 b8 res args ReadByteArrayOp_Word8AsWord16 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOpAs (Just (mo_u_16ToWord platform)) b16 b8 res args + doIndexByteArrayOpAs Nothing b16 b8 res args ReadByteArrayOp_Word8AsWord32 -> \args -> opIntoRegs $ \res -> - doIndexByteArrayOpAs (Just (mo_u_32ToWord platform)) b32 b8 res args + doIndexByteArrayOpAs Nothing b32 b8 res args ReadByteArrayOp_Word8AsWord64 -> \args -> opIntoRegs $ \res -> doIndexByteArrayOpAs Nothing b64 b8 res args @@ -659,19 +659,19 @@ emitPrimOp dflags primop = case primop of WriteOffAddrOp_StablePtr -> \args -> opIntoRegs $ \res -> doWriteOffAddrOp Nothing (bWord platform) res args WriteOffAddrOp_Int8 -> \args -> opIntoRegs $ \res -> - doWriteOffAddrOp (Just (mo_WordTo8 platform)) b8 res args + doWriteOffAddrOp Nothing b8 res args WriteOffAddrOp_Int16 -> \args -> opIntoRegs $ \res -> - doWriteOffAddrOp (Just (mo_WordTo16 platform)) b16 res args + doWriteOffAddrOp Nothing b16 res args WriteOffAddrOp_Int32 -> \args -> opIntoRegs $ \res -> - doWriteOffAddrOp (Just (mo_WordTo32 platform)) b32 res args + doWriteOffAddrOp Nothing b32 res args WriteOffAddrOp_Int64 -> \args -> opIntoRegs $ \res -> doWriteOffAddrOp Nothing b64 res args WriteOffAddrOp_Word8 -> \args -> opIntoRegs $ \res -> - doWriteOffAddrOp (Just (mo_WordTo8 platform)) b8 res args + doWriteOffAddrOp Nothing b8 res args WriteOffAddrOp_Word16 -> \args -> opIntoRegs $ \res -> - doWriteOffAddrOp (Just (mo_WordTo16 platform)) b16 res args + doWriteOffAddrOp Nothing b16 res args WriteOffAddrOp_Word32 -> \args -> opIntoRegs $ \res -> - doWriteOffAddrOp (Just (mo_WordTo32 platform)) b32 res args + doWriteOffAddrOp Nothing b32 res args WriteOffAddrOp_Word64 -> \args -> opIntoRegs $ \res -> doWriteOffAddrOp Nothing b64 res args @@ -694,19 +694,19 @@ emitPrimOp dflags primop = case primop of WriteByteArrayOp_StablePtr -> \args -> opIntoRegs $ \res -> doWriteByteArrayOp Nothing (bWord platform) res args WriteByteArrayOp_Int8 -> \args -> opIntoRegs $ \res -> - doWriteByteArrayOp (Just (mo_WordTo8 platform)) b8 res args + doWriteByteArrayOp Nothing b8 res args WriteByteArrayOp_Int16 -> \args -> opIntoRegs $ \res -> - doWriteByteArrayOp (Just (mo_WordTo16 platform)) b16 res args + doWriteByteArrayOp Nothing b16 res args WriteByteArrayOp_Int32 -> \args -> opIntoRegs $ \res -> - doWriteByteArrayOp (Just (mo_WordTo32 platform)) b32 res args + doWriteByteArrayOp Nothing b32 res args WriteByteArrayOp_Int64 -> \args -> opIntoRegs $ \res -> doWriteByteArrayOp Nothing b64 res args WriteByteArrayOp_Word8 -> \args -> opIntoRegs $ \res -> - doWriteByteArrayOp (Just (mo_WordTo8 platform)) b8 res args + doWriteByteArrayOp Nothing b8 res args WriteByteArrayOp_Word16 -> \args -> opIntoRegs $ \res -> - doWriteByteArrayOp (Just (mo_WordTo16 platform)) b16 res args + doWriteByteArrayOp Nothing b16 res args WriteByteArrayOp_Word32 -> \args -> opIntoRegs $ \res -> - doWriteByteArrayOp (Just (mo_WordTo32 platform)) b32 res args + doWriteByteArrayOp Nothing b32 res args WriteByteArrayOp_Word64 -> \args -> opIntoRegs $ \res -> doWriteByteArrayOp Nothing b64 res args @@ -729,15 +729,15 @@ emitPrimOp dflags primop = case primop of WriteByteArrayOp_Word8AsStablePtr -> \args -> opIntoRegs $ \res -> doWriteByteArrayOp Nothing b8 res args WriteByteArrayOp_Word8AsInt16 -> \args -> opIntoRegs $ \res -> - doWriteByteArrayOp (Just (mo_WordTo16 platform)) b8 res args + doWriteByteArrayOp Nothing b8 res args WriteByteArrayOp_Word8AsInt32 -> \args -> opIntoRegs $ \res -> - doWriteByteArrayOp (Just (mo_WordTo32 platform)) b8 res args + doWriteByteArrayOp Nothing b8 res args WriteByteArrayOp_Word8AsInt64 -> \args -> opIntoRegs $ \res -> doWriteByteArrayOp Nothing b8 res args WriteByteArrayOp_Word8AsWord16 -> \args -> opIntoRegs $ \res -> - doWriteByteArrayOp (Just (mo_WordTo16 platform)) b8 res args + doWriteByteArrayOp Nothing b8 res args WriteByteArrayOp_Word8AsWord32 -> \args -> opIntoRegs $ \res -> - doWriteByteArrayOp (Just (mo_WordTo32 platform)) b8 res args + doWriteByteArrayOp Nothing b8 res args WriteByteArrayOp_Word8AsWord64 -> \args -> opIntoRegs $ \res -> doWriteByteArrayOp Nothing b8 res args diff --git a/compiler/GHC/Tc/Deriv/Generate.hs b/compiler/GHC/Tc/Deriv/Generate.hs index 0f374700dd..7b97d7bf22 100644 --- a/compiler/GHC/Tc/Deriv/Generate.hs +++ b/compiler/GHC/Tc/Deriv/Generate.hs @@ -1496,9 +1496,9 @@ gfoldl_RDR, gunfold_RDR, toConstr_RDR, dataTypeOf_RDR, mkConstrTag_RDR, eqAddr_RDR , ltAddr_RDR , geAddr_RDR , gtAddr_RDR , leAddr_RDR , eqFloat_RDR , ltFloat_RDR , geFloat_RDR , gtFloat_RDR , leFloat_RDR , eqDouble_RDR, ltDouble_RDR, geDouble_RDR, gtDouble_RDR, leDouble_RDR, - extendWord8_RDR, extendInt8_RDR, - extendWord16_RDR, extendInt16_RDR, - extendWord32_RDR, extendInt32_RDR + word8ToWord_RDR , int8ToInt_RDR , + word16ToWord_RDR, int16ToInt_RDR, + word32ToWord_RDR, int32ToInt_RDR :: RdrName gfoldl_RDR = varQual_RDR gENERICS (fsLit "gfoldl") gunfold_RDR = varQual_RDR gENERICS (fsLit "gunfold") @@ -1588,14 +1588,15 @@ leDouble_RDR = varQual_RDR gHC_PRIM (fsLit "<=##") gtDouble_RDR = varQual_RDR gHC_PRIM (fsLit ">##" ) geDouble_RDR = varQual_RDR gHC_PRIM (fsLit ">=##") -extendWord8_RDR = varQual_RDR gHC_PRIM (fsLit "extendWord8#") -extendInt8_RDR = varQual_RDR gHC_PRIM (fsLit "extendInt8#") +word8ToWord_RDR = varQual_RDR gHC_PRIM (fsLit "word8ToWord#") +int8ToInt_RDR = varQual_RDR gHC_PRIM (fsLit "int8ToInt#") -extendWord16_RDR = varQual_RDR gHC_PRIM (fsLit "extendWord16#") -extendInt16_RDR = varQual_RDR gHC_PRIM (fsLit "extendInt16#") +word16ToWord_RDR = varQual_RDR gHC_PRIM (fsLit "word16ToWord#") +int16ToInt_RDR = varQual_RDR gHC_PRIM (fsLit "int16ToInt#") + +word32ToWord_RDR = varQual_RDR gHC_PRIM (fsLit "word32ToWord#") +int32ToInt_RDR = varQual_RDR gHC_PRIM (fsLit "int32ToInt#") -extendWord32_RDR = varQual_RDR gHC_PRIM (fsLit "extendWord32#") -extendInt32_RDR = varQual_RDR gHC_PRIM (fsLit "extendInt32#") {- ************************************************************************ @@ -2364,22 +2365,22 @@ boxConTbl = , (doublePrimTy, nlHsApp (nlHsVar $ getRdrName doubleDataCon)) , (int8PrimTy, nlHsApp (nlHsVar $ getRdrName intDataCon) - . nlHsApp (nlHsVar extendInt8_RDR)) + . nlHsApp (nlHsVar int8ToInt_RDR)) , (word8PrimTy, nlHsApp (nlHsVar $ getRdrName wordDataCon) - . nlHsApp (nlHsVar extendWord8_RDR)) + . nlHsApp (nlHsVar word8ToWord_RDR)) , (int16PrimTy, nlHsApp (nlHsVar $ getRdrName intDataCon) - . nlHsApp (nlHsVar extendInt16_RDR)) + . nlHsApp (nlHsVar int16ToInt_RDR)) , (word16PrimTy, nlHsApp (nlHsVar $ getRdrName wordDataCon) - . nlHsApp (nlHsVar extendWord16_RDR)) + . nlHsApp (nlHsVar word16ToWord_RDR)) , (int32PrimTy, nlHsApp (nlHsVar $ getRdrName intDataCon) - . nlHsApp (nlHsVar extendInt32_RDR)) + . nlHsApp (nlHsVar int32ToInt_RDR)) , (word32PrimTy, nlHsApp (nlHsVar $ getRdrName wordDataCon) - . nlHsApp (nlHsVar extendWord32_RDR)) + . nlHsApp (nlHsVar word32ToWord_RDR)) ] @@ -2401,12 +2402,12 @@ postfixModTbl primConvTbl :: [(Type, String)] primConvTbl = - [ (int8PrimTy, "narrowInt8#") - , (word8PrimTy, "narrowWord8#") - , (int16PrimTy, "narrowInt16#") - , (word16PrimTy, "narrowWord16#") - , (int32PrimTy, "narrowInt32#") - , (word32PrimTy, "narrowWord32#") + [ (int8PrimTy, "intToInt8#") + , (word8PrimTy, "wordToWord8#") + , (int16PrimTy, "intToInt16#") + , (word16PrimTy, "wordToWord16#") + , (int32PrimTy, "intToInt32#") + , (word32PrimTy, "wordToWord32#") ] litConTbl :: [(Type, LHsExpr GhcPs -> LHsExpr GhcPs)] |