on master help sign in
Support for serializing SIMD data
commitba190ad112e3c60d5aebb7f1efabc33d8bcb061e authorBenjamin Saunders <besaunde@sfu.ca> dateFri 21 Jun 2013, 15:50 (13 years ago) parent8016c5c
2 files changed+12−1
idris.cabal+1−1 src/Idris/IBC.hs+11
idris.cabal+1−1
@@ -273,7 +273,7 @@ Executable idris
273273 containers, process, transformers, filepath,
274274 directory, binary, bytestring, text, pretty,
275275 language-java>=0.2.2, libffi, llvm-general>=3.3.0.6 && <3.4,
276− vector
276+ vector, vector-binary-instances
277277
278278 Extensions: MultiParamTypeClasses, FunctionalDependencies,
279279 FlexibleInstances, TemplateHaskell
src/Idris/IBC.hs+11
@@ -11,6 +11,7 @@ import Idris.Imports
1111import Idris.Error
1212
1313import Data.Binary
14+import Data.Vector.Binary
1415import Data.List
1516import Data.ByteString.Lazy as B hiding (length, elem)
1617import Control.Monad
@@ -395,6 +396,11 @@ instance Binary Const where
395396 putWord8 20
396397 putWord8 (fromIntegral . fromEnum $ ity)
397398 putWord8 (fromIntegral count)
399+
400+ B8V x1 -> putWord8 21 >> put x1
401+ B16V x1 -> putWord8 22 >> put x1
402+ B32V x1 -> putWord8 23 >> put x1
403+ B64V x1 -> putWord8 24 >> put x1
398404 get
399405 = do i <- getWord8
400406 case i of
@@ -431,6 +437,11 @@ instance Binary Const where
431437 c <- getWord8
432438 return (AType (ATInt (ITVec (toEnum . fromIntegral $ e) (fromIntegral c))))
433439
440+ 21 -> fmap B8V get
441+ 22 -> fmap B16V get
442+ 23 -> fmap B32V get
443+ 24 -> fmap B64V get
444+
434445 _ -> error "Corrupted binary data for Const"
435446
436447