[project @ 2000-08-07 16:06:38 by rrt]
[ghc-hetmet.git] / ghc / rts / Bytecodes.h
index f277d59..07e717a 100644 (file)
@@ -1,6 +1,6 @@
 
 /* -----------------------------------------------------------------------------
- * $Id: Bytecodes.h,v 1.7 1999/10/15 11:02:59 sewardj Exp $
+ * $Id: Bytecodes.h,v 1.16 2000/06/15 13:23:51 daan Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
     Ins(i_INTERNAL_ERROR),    \
     Ins(i_PANIC),             \
     Ins(i_STK_CHECK),         \
+    Ins(i_STK_CHECK_big),     \
     Ins(i_ARG_CHECK),         \
     Ins(i_ALLOC_AP),          \
     Ins(i_ALLOC_PAP),         \
     Ins(i_ALLOC_CONSTR),      \
+    Ins(i_ALLOC_CONSTR_big),  \
+    Ins(i_ALLOC_ROW),         \
+    Ins(i_ALLOC_ROW_big),     \
     Ins(i_MKAP),              \
     Ins(i_MKAP_big),          \
     Ins(i_MKPAP),             \
     Ins(i_PACK),              \
     Ins(i_PACK_big),          \
+    Ins(i_PACK_ROW),          \
+    Ins(i_PACK_ROW_big),      \
+    Ins(i_PACK_INJ),          \
+    Ins(i_PACK_INJ_big),      \
+    Ins(i_PACK_INJ_CONST),    \
     Ins(i_SLIDE),             \
     Ins(i_SLIDE_big),         \
     Ins(i_TEST),              \
+    Ins(i_TEST_INJ),          \
+    Ins(i_TEST_INJ_big),      \
+    Ins(i_TEST_INJ_CONST),    \
     Ins(i_UNPACK),            \
+    Ins(i_UNPACK_ROW),        \
+    Ins(i_UNPACK_INJ),        \
     Ins(i_VAR),               \
     Ins(i_VAR_big),           \
     Ins(i_CONST),             \
@@ -324,6 +338,12 @@ typedef enum
 
     , i_raise       
 
+#ifdef XMLAMBDA
+    /* row primitives. */
+    , i_rowInsertAt
+    , i_rowRemoveAt
+#endif
+
     /* Ref operations */
     , i_newRef
     , i_writeRef
@@ -388,7 +408,7 @@ typedef enum
 
 #ifdef PROVIDE_FOREIGN
     /* ForeignObj# operations */
-    , i_makeForeignObj
+    , i_mkForeignObj
 
     , indexCharOffForeignObj
     , indexIntOffForeignObj
@@ -412,28 +432,39 @@ typedef enum
     /* foreign export dynamic support */
     , i_createAdjThunkARCH
 
+    /* misc handy hacks */
+    , i_getArgc
+    , i_getArgv
+
 #ifdef PROVIDE_CONCURRENT
     /* Concurrency operations */
-    , i_fork
+    , i_forkIO
     , i_killThread
-    , i_sameMVar
-    , i_newMVar
-    , i_takeMVar
-    , i_putMVar
+    , i_raiseInThread
     , i_delay
     , i_waitRead
     , i_waitWrite
+    , i_yield
+    , i_getThreadId
+    , i_cmpThreadIds
 #endif
+    , i_sameMVar
+    , i_newMVar
+    , i_takeMVar
+    , i_putMVar
+
 
     /* CCall! */
-    , i_ccall_Id
-    , i_ccall_IO
+    , i_ccall_ccall_Id
+    , i_ccall_ccall_IO
+    , i_ccall_stdcall_Id
+    , i_ccall_stdcall_IO
 
     /* If you add a new primop to this table, check you don't
      * overflow the 256 limit.  That is MAX_Primop2 <= 255.
-     * Current value (30/10/98) = 0x42
+     * Current value (6/10/2000) = 0x44
      */
-    , MAX_Primop2 = i_ccall_IO
+    , MAX_Primop2 = i_ccall_stdcall_IO
 } Primop2;
 
 typedef unsigned int InstrPtr; /* offset of instruction within BCO */