[project @ 2002-03-18 15:27:08 by simonpj]
[ghc-hetmet.git] / ghc / includes / PrimOps.h
index f7191da..60a2ac6 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: PrimOps.h,v 1.89 2001/12/14 15:26:16 sewardj Exp $
+ * $Id: PrimOps.h,v 1.91 2002/03/02 17:51:22 sof Exp $
  *
  * (c) The GHC Team, 1998-2000
  *
  * we use a crude approximation, testing whether either operand is
  * larger than 32-bits; if neither is, then we go ahead with the
  * multiplication.
+ *
+ * Return non-zero if there is any possibility that the signed multiply
+ * of a and b might overflow.  Return zero only if you are absolutely sure
+ * that it won't overflow.  If in doubt, return non-zero.
  */
 
 #if SIZEOF_VOID_P == 4
@@ -338,6 +342,18 @@ EXTFUN_RTS(mkForeignObjzh_fast);
 
 
 /* -----------------------------------------------------------------------------
+   Constructor tags
+   -------------------------------------------------------------------------- */
+
+/*
+ * This macro is only used when compiling unregisterised code (see 
+ * AbsCUtils.dsCOpStmt for motivation & the Story).
+ */
+#ifndef TABLES_NEXT_TO_CODE
+# define dataToTagzh(r,a)  r=(GET_TAG(((StgClosure *)a)->header.info))
+#endif
+
+/* -----------------------------------------------------------------------------
    BCOs and BCO linkery
    -------------------------------------------------------------------------- */