/* -----------------------------------------------------------------------------
- * $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
*
* (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;