[project @ 2000-10-27 16:43:24 by simonpj]
[ghc-hetmet.git] / ghc / compiler / prelude / primops.txt
index 91d2f0d..5eff2f5 100644 (file)
@@ -1,5 +1,5 @@
 -----------------------------------------------------------------------
--- $Id: primops.txt,v 1.3 2000/09/11 11:17:09 sewardj Exp $
+-- $Id: primops.txt,v 1.5 2000/09/26 16:45:34 simonpj Exp $
 --
 -- Primitive Operations
 --
@@ -65,10 +65,6 @@ primop   AddrLeOp  "leAddr#"   Compare   Addr# -> Addr# -> Bool
 
 primop   Addr2IntOp  "addr2Int#"     GenPrimOp   Addr# -> Int#
 
-primop   Addr2IntegerOp  "addr2Integer#" GenPrimOp   
-   Addr# -> (# Int#, ByteArr# #)
-   with out_of_line = True
-
 
 ------------------------------------------------------------------------
 --- Char#                                                            ---
@@ -982,12 +978,17 @@ primop  NewBCOOp "newBCO#" GenPrimOp
    Int# -> Int# -> Int# -> a -> State# RealWorld -> (# State# RealWorld, BCO# #)
    with
    has_side_effects = True
-   out_of_line    = True
+   out_of_line      = True
+   strictness       = { \ arity -> StrictnessInfo 
+                                   [wwPrim, wwPrim, wwPrim, wwLazy, wwPrim] False }
+   usage            = { mangle NewBCOOp [mkP, mkP, mkP, mkM, mkP] mkR }
 
 primop  WriteBCOPtrOp "writeBCOPtr#" GenPrimOp
    BCO# -> Int# -> o -> State# RealWorld -> State# RealWorld
    with
-   usage            = { mangle WriteBCOPtrOp [mkP, mkP, mkM] mkR }
+   usage            = { mangle WriteBCOPtrOp [mkP, mkP, mkM, mkP] mkR }
+   strictness       = { \ arity -> StrictnessInfo 
+                                   [wwPrim, wwPrim, wwLazy, wwPrim] False }
    has_side_effects = True
 
 primop  WriteBCONonPtrOp "writeBCONonPtr#" GenPrimOp
@@ -1011,6 +1012,13 @@ primop  ReadBCONonPtrOp "readBCONonPtr#"  GenPrimOp
 primop  ReadBCOInstrOp "readBCOInstr#" GenPrimOp
    BCO# -> Int# -> State# RealWorld -> (# State# RealWorld, Word# #)
 
+primop  SameBCOOp "sameBCO#" GenPrimOp
+   BCO# -> BCO# -> Bool
+   with
+   -- is this usage right?
+   usage = { mangle SameMutableArrayOp [mkP, mkP] mkM }
+
+
 ------------------------------------------------------------------------
 --- Weak pointers                                                    ---
 ------------------------------------------------------------------------