An inaccurate constraint on the inline assembly code for mulIntC#
caused gcc 2.95 to overoptimise around it, leading to bogus multiply
code for Integers.
/* -----------------------------------------------------------------------------
/* -----------------------------------------------------------------------------
- * $Id: PrimOps.h,v 1.33 1999/07/29 10:00:22 simonmar Exp $
+ * $Id: PrimOps.h,v 1.34 1999/08/24 09:33:08 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
*
* (c) The GHC Team, 1998-1999
*
jno 1f\n\t \
movl $1,%1\n\t \
1:" \
jno 1f\n\t \
movl $1,%1\n\t \
1:" \
- : "=r" (r), "=r" (c) : "r" (a), "0" (b)); \
+ : "=r" (r), "=&r" (c) : "r" (a), "0" (b)); \
}
#elif SIZEOF_VOID_P == 4
}
#elif SIZEOF_VOID_P == 4
Delay/Wait PrimOps
-------------------------------------------------------------------------- */
Delay/Wait PrimOps
-------------------------------------------------------------------------- */
-/* Hmm, I'll think about these later. */
+EF_(waitReadzh_fast);
+EF_(waitWritezh_fast);
+EF_(delayzh_fast);
/* -----------------------------------------------------------------------------
Primitive I/O, error-handling PrimOps
/* -----------------------------------------------------------------------------
Primitive I/O, error-handling PrimOps
#define myThreadIdzh(t) (t = CurrentTSO)
#define myThreadIdzh(t) (t = CurrentTSO)
+extern int cmp_thread(const StgTSO *tso1, const StgTSO *tso2);
+
/* Hmm, I'll think about these later. */
/* -----------------------------------------------------------------------------
Pointer equality
/* Hmm, I'll think about these later. */
/* -----------------------------------------------------------------------------
Pointer equality