/* -----------------------------------------------------------------------------
- * $Id: PrimOps.hc,v 1.63 2000/12/12 12:19:57 simonmar Exp $
+ * $Id: PrimOps.hc,v 1.66 2000/12/20 15:17:55 rrt Exp $
*
* (c) The GHC Team, 1998-2000
*
Bytecode object primitives
------------------------------------------------------------------------- */
+#ifdef GHCI
FN_(newBCOzh_fast)
{
/* R1.p = instrs
R2.p = literals
R3.p = ptrs
+ R4.p = itbls
*/
StgBCO *bco;
FB_
- HP_CHK_GEN_TICKY(sizeofW(StgBCO),R1_PTR|R2_PTR|R3_PTR, newBCOzh_fast,);
+ HP_CHK_GEN_TICKY(sizeofW(StgBCO),R1_PTR|R2_PTR|R3_PTR|R4_PTR, newBCOzh_fast,);
TICK_ALLOC_PRIM(sizeofW(StgHeader), sizeofW(StgBCO)-sizeofW(StgHeader), 0);
CCS_ALLOC(CCCS,sizeofW(StgBCO)); /* ccs prof */
-
- bco = (StgBCO *) (Hp + 1 - sizeof(StgBCO));
+ bco = (StgBCO *) (Hp + 1 - sizeofW(StgBCO));
SET_HDR(bco, &stg_BCO_info, CCCS);
- bco->instrs = R1.cl;
- bco->literals = R2.cl;
- bco->ptrs = R3.cl;
+ bco->instrs = (StgArrWords*)R1.cl;
+ bco->literals = (StgArrWords*)R2.cl;
+ bco->ptrs = (StgMutArrPtrs*)R3.cl;
+ bco->itbls = (StgArrWords*)R4.cl;
TICK_RET_UNBOXED_TUP(1);
RET_P(bco);
FE_
}
+#endif
/* -----------------------------------------------------------------------------
Thread I/O blocking primitives