From: sof Date: Thu, 30 Apr 1998 19:24:21 +0000 (+0000) Subject: [project @ 1998-04-30 19:24:21 by sof] X-Git-Tag: Approx_2487_patches~753 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=042cded121eadc62bfb4d925ce655ed010fcba69;p=ghc-hetmet.git [project @ 1998-04-30 19:24:21 by sof] NCG support sizeof(Mutable)ByteArray# primops --- diff --git a/ghc/compiler/nativeGen/StixPrim.lhs b/ghc/compiler/nativeGen/StixPrim.lhs index 6b992e3..2b28c64 100644 --- a/ghc/compiler/nativeGen/StixPrim.lhs +++ b/ghc/compiler/nativeGen/StixPrim.lhs @@ -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}