/* -----------------------------------------------------------------------------
- * $Id: Assembler.h,v 1.7 1999/07/06 16:17:39 sewardj Exp $
+ * $Id: Assembler.h,v 1.11 1999/11/16 17:38:54 sewardj Exp $
*
* (c) The GHC Team 1994-1998.
*
ADDR_REP = 'A',
FLOAT_REP = 'F',
DOUBLE_REP = 'D',
-#ifdef PROVIDE_STABLE
STABLE_REP = 's', /* StablePtr a */
-#endif
#ifdef PROVIDE_FOREIGN
FOREIGN_REP = 'f', /* ForeignObj */
#endif
ALPHA_REP = 'a', /* a */
BETA_REP = 'b', /* b */
GAMMA_REP = 'c', /* c */
+ DELTA_REP = 'd', /* d */
BOOL_REP = 'B', /* Bool */
IO_REP = 'i', /* IO a */
HANDLER_REP = 'H', /* Exception -> IO a */
ARR_REP = 'X', /* PrimArray a */
REF_REP = 'R', /* Ref s a */
MUTARR_REP = 'M', /* PrimMutableArray s a */
-#ifdef PROVIDE_CONCURRENT
THREADID_REP = 'T', /* ThreadId */
MVAR_REP = 'r', /* MVar a */
-#endif
/* Allegedly used in the IO monad */
VOID_REP = 'v'
extern AsmSp asmBeginPrim ( AsmBCO bco );
extern void asmEndPrim ( AsmBCO bco, const AsmPrim* prim, AsmSp base );
-extern AsmBCO asm_BCO_catch ( void );
-extern AsmBCO asm_BCO_raise ( void );
-extern AsmBCO asm_BCO_seq ( void );
+extern AsmBCO asm_BCO_catch ( void );
+extern AsmBCO asm_BCO_raise ( void );
+extern AsmBCO asm_BCO_seq ( void );
+extern AsmBCO asm_BCO_takeMVar ( void );
/* --------------------------------------------------------------------------
* C-call and H-call
* ------------------------------------------------------------------------*/
-extern const AsmPrim ccall_Id;
-extern const AsmPrim ccall_IO;
+extern const AsmPrim ccall_ccall_Id;
+extern const AsmPrim ccall_ccall_IO;
+extern const AsmPrim ccall_stdcall_Id;
+extern const AsmPrim ccall_stdcall_IO;
typedef struct {
- char * arg_tys;
- int arg_size;
- char * result_tys;
- int result_size;
+ unsigned int num_args;
+ char* arg_tys;
+ unsigned int num_results;
+ char* result_tys;
} CFunDescriptor;
-typedef struct {
- char * arg_tys;
- char * result_tys;
-} HFunDescriptor;
-
CFunDescriptor* mkDescriptor( char* as, char* rs );
/*-------------------------------------------------------------------------*/