X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FEvaluator.h;h=6c680e1cb3447533e3764aa8ed6eeee3b363d6ed;hb=d2e67f300f0cf4e242b522c69cde4848f272d460;hp=05b4a108d3a21225fd5e7d827ff9df1806fa8bd5;hpb=438596897ebbe25a07e1c82085cfbc5bdb00f09e;p=ghc-hetmet.git diff --git a/ghc/rts/Evaluator.h b/ghc/rts/Evaluator.h index 05b4a10..6c680e1 100644 --- a/ghc/rts/Evaluator.h +++ b/ghc/rts/Evaluator.h @@ -1,5 +1,7 @@ /* ----------------------------------------------------------------------------- - * $Id: Evaluator.h,v 1.2 1998/12/02 13:28:21 simonm Exp $ + * $Id: Evaluator.h,v 1.7 2000/04/25 17:47:43 andy Exp $ + * + * (c) The GHC Team, 1998-1999 * * Prototypes for functions in Evaluator.c * @@ -10,23 +12,44 @@ * (used by Assembler) * ------------------------------------------------------------------------*/ -#define IZh_sizeW CONSTR_sizeW(0,sizeofW(StgInt)) -#define I64Zh_sizeW CONSTR_sizeW(0,sizeofW(StgInt64)) -#define WZh_sizeW CONSTR_sizeW(0,sizeofW(StgWord)) -#define AZh_sizeW CONSTR_sizeW(0,sizeofW(StgAddr)) -#define CZh_sizeW CONSTR_sizeW(0,sizeofW(StgWord)) -#define FZh_sizeW CONSTR_sizeW(0,sizeofW(StgFloat)) -#define DZh_sizeW CONSTR_sizeW(0,sizeofW(StgDouble)) -#define StableZh_sizeW CONSTR_sizeW(0,sizeofW(StgStablePtr)) -#define GenericZh_sizeW CONSTR_sizeW(1,0) +#define Izh_sizeW CONSTR_sizeW(0,sizeofW(StgInt)) +#define I64zh_sizeW CONSTR_sizeW(0,sizeofW(StgInt64)) +#define Wzh_sizeW CONSTR_sizeW(0,sizeofW(StgWord)) +#define Azh_sizeW CONSTR_sizeW(0,sizeofW(StgAddr)) +#define Czh_sizeW CONSTR_sizeW(0,sizeofW(StgWord)) +#define Fzh_sizeW CONSTR_sizeW(0,sizeofW(StgFloat)) +#define Dzh_sizeW CONSTR_sizeW(0,sizeofW(StgDouble)) +#define Stablezh_sizeW CONSTR_sizeW(0,sizeofW(StgStablePtr)) +#define Genericzh_sizeW CONSTR_sizeW(1,0) /* -------------------------------------------------------------------------- * * ------------------------------------------------------------------------*/ -extern StgThreadReturnCode enter ( StgClosurePtr obj ); +extern StgThreadReturnCode enter ( Capability* cap, StgClosurePtr obj ); extern nat marshall ( char arg_ty, void* arg ); extern nat unmarshall ( char res_ty, void* res ); extern nat argSize ( const char* ks ); + +extern StgInt PopTaggedInt ( void ) ; +extern StgWord PopTaggedWord ( void ) ; +extern StgAddr PopTaggedAddr ( void ) ; +extern StgStablePtr PopTaggedStablePtr ( void ) ; +extern StgChar PopTaggedChar ( void ) ; +extern StgFloat PopTaggedFloat ( void ) ; +extern StgDouble PopTaggedDouble ( void ) ; + +extern void PushTaggedInt ( StgInt ); +extern void PushTaggedWord ( StgWord ); +extern void PushTaggedAddr ( StgAddr ); +extern void PushTaggedStablePtr ( StgStablePtr ); +extern void PushTaggedChar ( StgChar ); +extern void PushTaggedFloat ( StgFloat ); +extern void PushTaggedDouble ( StgDouble ); + +extern void PushPtr ( StgPtr ); +extern StgPtr PopPtr ( void ); + +extern int numEnters;