[project @ 1998-04-30 19:24:21 by sof]
authorsof <unknown>
Thu, 30 Apr 1998 19:24:21 +0000 (19:24 +0000)
committersof <unknown>
Thu, 30 Apr 1998 19:24:21 +0000 (19:24 +0000)
NCG support sizeof(Mutable)ByteArray# primops

ghc/compiler/nativeGen/StixPrim.lhs

index 6b992e3..2b28c64 100644 (file)
@@ -212,6 +212,30 @@ primCode [lhs] UnsafeFreezeByteArrayOp [rhs]
   = simpleCoercion PtrRep lhs rhs
 \end{code}
 
+Returning the size of (mutable) byte arrays is just
+an indexing operation.
+
+\begin{code}
+primCode [lhs] SizeofByteArrayOp [rhs]
+  = let
+       lhs' = amodeToStix lhs
+       rhs' = amodeToStix rhs
+       sz   = StIndex IntRep rhs' fixedHS
+       assign = StAssign IntRep lhs' (StInd IntRep sz)
+    in
+    returnUs (\xs -> assign : xs)
+
+primCode [lhs] SizeofMutableByteArrayOp [rhs]
+  = let
+       lhs' = amodeToStix lhs
+       rhs' = amodeToStix rhs
+       sz   = StIndex IntRep rhs' fixedHS
+       assign = StAssign IntRep lhs' (StInd IntRep sz)
+    in
+    returnUs (\xs -> assign : xs)
+
+\end{code}
+
 Most other array primitives translate to simple indexing.
 
 \begin{code}