summaryrefslogtreecommitdiff
path: root/utils/genapply
diff options
context:
space:
mode:
authorGeoffrey Mainland <gmainlan@microsoft.com>2013-09-15 17:20:09 -0400
committerGeoffrey Mainland <gmainlan@microsoft.com>2013-09-22 22:34:00 -0400
commit26a960c662cdfdfb24ec8ed3e013c686dfdca4cd (patch)
treef99cd0e0fddc6d44f18c4d69841b41697e618408 /utils/genapply
parent49f4c12e0ad53f9d10c74c4a04c485f89293c4b6 (diff)
downloadhaskell-26a960c662cdfdfb24ec8ed3e013c686dfdca4cd.tar.gz
Add support for 512-bit-wide vectors.
Diffstat (limited to 'utils/genapply')
-rw-r--r--utils/genapply/GenApply.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/utils/genapply/GenApply.hs b/utils/genapply/GenApply.hs
index 036a8479a4..188211df81 100644
--- a/utils/genapply/GenApply.hs
+++ b/utils/genapply/GenApply.hs
@@ -34,6 +34,7 @@ data ArgRep
| L -- long (64-bit)
| V16 -- 16-byte (128-bit) vectors
| V32 -- 32-byte (256-bit) vectors
+ | V64 -- 64-byte (512-bit) vectors
-- size of a value in *words*
argSize :: ArgRep -> Int
@@ -45,6 +46,7 @@ argSize D = (SIZEOF_DOUBLE `quot` SIZEOF_VOID_P :: Int)
argSize L = (8 `quot` SIZEOF_VOID_P :: Int)
argSize V16 = (16 `quot` SIZEOF_VOID_P :: Int)
argSize V32 = (32 `quot` SIZEOF_VOID_P :: Int)
+argSize V64 = (64 `quot` SIZEOF_VOID_P :: Int)
showArg :: ArgRep -> String
showArg N = "n"
@@ -55,6 +57,7 @@ showArg D = "d"
showArg L = "l"
showArg V16 = "v16"
showArg V32 = "v32"
+showArg V64 = "v64"
-- is a value a pointer?
isPtr :: ArgRep -> Bool
@@ -508,6 +511,7 @@ argRep L = text "L_"
argRep P = text "gcptr"
argRep V16 = text "V16_"
argRep V32 = text "V32_"
+argRep V64 = text "V64_"
argRep _ = text "W_"
genApply regstatus args =
@@ -859,6 +863,7 @@ applyTypes = [
[L],
[V16],
[V32],
+ [V64],
[N],
[P],
[P,V],
@@ -888,6 +893,7 @@ stackApplyTypes = [
[L],
[V16],
[V32],
+ [V64],
[N,N],
[N,P],
[P,N],