/* -----------------------------------------------------------------------------
- * $Id: PrimOps.hc,v 1.72 2001/02/14 12:59:34 simonmar Exp $
+ * $Id: PrimOps.hc,v 1.78 2001/03/26 13:43:05 simonmar Exp $
*
* (c) The GHC Team, 1998-2000
*
*
* ---------------------------------------------------------------------------*/
+#include "Stg.h"
#include "Rts.h"
#include "RtsFlags.h"
-------------------------------------------------------------------------- */
-#ifndef PAR
FN_(mkForeignObjzh_fast)
{
/* R1.p = ptr to foreign object,
RET_P(result);
FE_
}
-#endif
/* These two are out-of-line for the benefit of the NCG */
FN_(unsafeThawArrayzh_fast)
Weak Pointer Primitives
-------------------------------------------------------------------------- */
-#ifndef PAR
-
FN_(mkWeakzh_fast)
{
/* R1.p = key
FE_
}
-#endif /* !PAR */
-
/* -----------------------------------------------------------------------------
Arbitrary-precision Integer operations.
-------------------------------------------------------------------------- */
if ( val < 0LL ) {
neg = 1;
val = -val;
- }
+ }
hi = (W_)((LW_)val / 0x100000000ULL);
if ( words_needed == 2 ) {
- s = 2;
+ s = 2;
Hp[-1] = (W_)val;
Hp[0] = hi;
} else if ( val != 0 ) {
mvar->header.info = &stg_FULL_MVAR_info;
#endif
- /* HACK: we need a pointer to pass back, so we abuse NO_FINALIZER_closure */
RET_N(0);
}
/* Is there already a StableName for this heap object? */
if (stable_ptr_table[index].sn_obj == NULL) {
sn_obj = (StgStableName *) (Hp - sizeofW(StgStableName) + 1);
- sn_obj->header.info = &stg_STABLE_NAME_info;
+ SET_HDR(sn_obj,&stg_STABLE_NAME_info,CCCS);
sn_obj->sn = index;
stable_ptr_table[index].sn_obj = (StgClosure *)sn_obj;
} else {