[project @ 2001-07-13 11:39:48 by rrt]
authorrrt <unknown>
Fri, 13 Jul 2001 11:39:48 +0000 (11:39 +0000)
committerrrt <unknown>
Fri, 13 Jul 2001 11:39:48 +0000 (11:39 +0000)
Make eqForeignObj a primop; N.B. Not implemented for the NCG

ghc/compiler/prelude/primops.txt
ghc/includes/PrimOps.h
ghc/lib/std/PrelGHC.hi-boot

index 4722f5b..58ee3e1 100644 (file)
@@ -1,5 +1,5 @@
 -----------------------------------------------------------------------
--- $Id: primops.txt,v 1.20 2001/05/04 14:43:49 simonmar Exp $
+-- $Id: primops.txt,v 1.21 2001/07/13 11:39:48 rrt Exp $
 --
 -- Primitive Operations
 --
@@ -739,6 +739,10 @@ primop IndexOffAddrOp_Word64 "indexWord64OffAddr#" GenPrimOp
    Addr# -> Int# -> Word64#
 
 
+primop EqForeignObj "eqForeignObj#" GenPrimOp
+   ForeignObj# -> ForeignObj# -> Bool
+   with commutable = True
+
 primop IndexOffForeignObjOp_Char "indexCharOffForeignObj#" GenPrimOp
    ForeignObj# -> Int# -> Char#
 
@@ -1296,10 +1300,7 @@ primop  ParAtForNowOp  "parAtForNow#" GenPrimOp
    usage            = { mangle ParAtForNowOp [mkO, mkZ, mkP, mkP, mkP, mkP, mkM] mkM }
    has_side_effects = True
 
--- copyable# and noFollow# have no corresponding entry in
--- PrelGHC.hi-boot, so I don't know whether they should still
--- be here or not.  JRS, 15 Jan 01
--- not implemented; please, keep the comment as reminder -- HWL 12/3/01
+-- copyable# and noFollow# are yet to be implemented (for GpH)
 --
 --primop  CopyableOp  "copyable#" GenPrimOp
 --   a -> Int#
index f49253a..e648ef0 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: PrimOps.h,v 1.76 2001/03/22 03:51:09 hwloidl Exp $
+ * $Id: PrimOps.h,v 1.77 2001/07/13 11:39:48 rrt Exp $
  *
  * (c) The GHC Team, 1998-2000
  *
@@ -912,8 +912,7 @@ EXTFUN_RTS(mkForeignObjzh_fast);
 #define writeForeignObjzh(res,datum) \
    (ForeignObj_CLOSURE_DATA(res) = (P_)(datum))
 
-#define eqForeignObj(f1,f2)  ((f1)==(f2))
-
+#define eqForeignObjzh(f1,f2)                   ((f1)==(f2))
 #define indexCharOffForeignObjzh(r,fo,i)       indexCharOffAddrzh(r,ForeignObj_CLOSURE_DATA(fo),i)
 #define indexWideCharOffForeignObjzh(r,fo,i)   indexWideCharOffAddrzh(r,ForeignObj_CLOSURE_DATA(fo),i)
 #define indexIntOffForeignObjzh(r,fo,i)                indexIntOffAddrzh(r,ForeignObj_CLOSURE_DATA(fo),i)
index b829d31..ace6e25 100644 (file)
@@ -336,6 +336,7 @@ __export PrelGHC
   writeWord32OffAddrzh
   writeWord64OffAddrzh
 
+  eqForeignObjzh
   indexCharOffForeignObjzh
   indexWideCharOffForeignObjzh
   indexIntOffForeignObjzh