[project @ 1999-11-16 17:38:54 by sewardj]
[ghc-hetmet.git] / ghc / includes / Assembler.h
index b708712..ce553f4 100644 (file)
@@ -1,6 +1,6 @@
 
 /* -----------------------------------------------------------------------------
- * $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.
  *
@@ -89,9 +89,7 @@ typedef enum {
   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
@@ -106,6 +104,7 @@ typedef enum {
   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       */
@@ -113,10 +112,8 @@ typedef enum {
   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'      
@@ -213,9 +210,10 @@ extern const AsmPrim* asmFindPrimop  ( AsmInstr prefix, AsmInstr op );
 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 );
 
 
 /* --------------------------------------------------------------------------
@@ -245,21 +243,18 @@ extern void   asmEndMkPAP      ( AsmBCO bco, AsmVar v, AsmSp start );
  * 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 );
 
 /*-------------------------------------------------------------------------*/