/* -----------------------------------------------------------------------------
- * $Id: Assembler.h,v 1.9 1999/10/19 11:41:35 sewardj Exp $
+ * $Id: Assembler.h,v 1.12 1999/11/29 18:59:23 sewardj Exp $
*
* (c) The GHC Team 1994-1998.
*
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'
AsmNat8 opcode; /* should be Primop1 or Primop2 */
} AsmPrim;
-extern const AsmPrim asmPrimOps[]; /* null terminated list */
+extern AsmPrim asmPrimOps[]; /* null terminated list */
-extern const AsmPrim* asmFindPrim ( char* s );
-extern const AsmPrim* asmFindPrimop ( AsmInstr prefix, AsmInstr op );
-extern AsmSp asmBeginPrim ( AsmBCO bco );
-extern void asmEndPrim ( AsmBCO bco, const AsmPrim* prim, AsmSp base );
+extern AsmPrim* asmFindPrim ( char* s );
+extern AsmPrim* asmFindPrimop ( AsmInstr prefix, AsmInstr op );
+extern AsmSp asmBeginPrim ( AsmBCO bco );
+extern void asmEndPrim ( AsmBCO bco, const AsmPrim* prim,
+ AsmSp base );
+extern char* asmGetPrimopName ( AsmPrim* p );
-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 AsmPrim ccall_ccall_Id;
+extern AsmPrim ccall_ccall_IO;
+extern AsmPrim ccall_stdcall_Id;
+extern AsmPrim ccall_stdcall_IO;
typedef struct {
unsigned int num_args;