[project @ 1998-04-30 19:24:21 by sof]
[ghc-hetmet.git] / 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}