summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorGeoffrey Mainland <gmainlan@microsoft.com>2013-02-14 18:52:00 +0000
committerGeoffrey Mainland <gmainlan@microsoft.com>2013-09-22 22:33:59 -0400
commite074c1c23307649bd2d240d40a73d3829b06a4b4 (patch)
tree487320573dcd2c2b7f9a239b80ff67d6191f8032 /utils
parent9d47e583e14923745380445ee52b16e69e926ebe (diff)
downloadhaskell-e074c1c23307649bd2d240d40a73d3829b06a4b4.tar.gz
Add support for 256-bit-wide vectors.
Diffstat (limited to 'utils')
-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 2baf85896a..036a8479a4 100644
--- a/utils/genapply/GenApply.hs
+++ b/utils/genapply/GenApply.hs
@@ -33,6 +33,7 @@ data ArgRep
| D -- double
| L -- long (64-bit)
| V16 -- 16-byte (128-bit) vectors
+ | V32 -- 32-byte (256-bit) vectors
-- size of a value in *words*
argSize :: ArgRep -> Int
@@ -43,6 +44,7 @@ argSize F = 1
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)
showArg :: ArgRep -> String
showArg N = "n"
@@ -52,6 +54,7 @@ showArg F = "f"
showArg D = "d"
showArg L = "l"
showArg V16 = "v16"
+showArg V32 = "v32"
-- is a value a pointer?
isPtr :: ArgRep -> Bool
@@ -504,6 +507,7 @@ argRep D = text "D_"
argRep L = text "L_"
argRep P = text "gcptr"
argRep V16 = text "V16_"
+argRep V32 = text "V32_"
argRep _ = text "W_"
genApply regstatus args =
@@ -854,6 +858,7 @@ applyTypes = [
[D],
[L],
[V16],
+ [V32],
[N],
[P],
[P,V],
@@ -882,6 +887,7 @@ stackApplyTypes = [
[D],
[L],
[V16],
+ [V32],
[N,N],
[N,P],
[P,N],