Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : simd

http://hackage.haskell.org/trac/ghc/changeset/c6d3cf1ac14d8a34976ac6d33f29ccc601714fc5

>---------------------------------------------------------------

commit c6d3cf1ac14d8a34976ac6d33f29ccc601714fc5
Author: Geoffrey Mainland <[email protected]>
Date:   Wed Nov 2 15:10:57 2011 +0000

    Properly calculate CgRep size for vectors.

>---------------------------------------------------------------

 compiler/codeGen/ClosureInfo.lhs |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/compiler/codeGen/ClosureInfo.lhs b/compiler/codeGen/ClosureInfo.lhs
index 6ed5193..d8b68a1 100644
--- a/compiler/codeGen/ClosureInfo.lhs
+++ b/compiler/codeGen/ClosureInfo.lhs
@@ -339,16 +339,18 @@ separateByPtrFollowness things
 
 \begin{code}
 cgRepSizeB :: CgRep -> ByteOff
-cgRepSizeB DoubleArg = dOUBLE_SIZE
-cgRepSizeB LongArg   = wORD64_SIZE
-cgRepSizeB VoidArg   = 0
-cgRepSizeB _         = wORD_SIZE
+cgRepSizeB DoubleArg         = dOUBLE_SIZE
+cgRepSizeB LongArg           = wORD64_SIZE
+cgRepSizeB (FloatVecArg len) = len*wORD_SIZE
+cgRepSizeB VoidArg           = 0
+cgRepSizeB _                 = wORD_SIZE
 
 cgRepSizeW :: CgRep -> ByteOff
-cgRepSizeW DoubleArg = dOUBLE_SIZE `quot` wORD_SIZE
-cgRepSizeW LongArg   = wORD64_SIZE `quot` wORD_SIZE
-cgRepSizeW VoidArg   = 0
-cgRepSizeW _         = 1
+cgRepSizeW DoubleArg         = dOUBLE_SIZE `quot` wORD_SIZE
+cgRepSizeW LongArg           = wORD64_SIZE `quot` wORD_SIZE
+cgRepSizeW (FloatVecArg len) = len
+cgRepSizeW VoidArg           = 0
+cgRepSizeW _                 = 1
 
 retAddrSizeW :: WordOff
 retAddrSizeW = 1       -- One word



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to