[project @ 2000-03-14 01:31:38 by sof]
[ghc-hetmet.git] / ghc / rts / Bytecodes.h
index d93f86e..b66fcc7 100644 (file)
@@ -1,6 +1,6 @@
 
 /* -----------------------------------------------------------------------------
- * $Id: Bytecodes.h,v 1.6 1999/04/27 10:07:20 sewardj Exp $
+ * $Id: Bytecodes.h,v 1.13 1999/12/07 11:49:10 sewardj 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_MKAP),              \
     Ins(i_MKAP_big),          \
     Ins(i_MKPAP),             \
@@ -87,6 +89,7 @@
     Ins(i_PACK_DOUBLE),       \
     Ins(i_UNPACK_DOUBLE),     \
     Ins(i_VAR_STABLE),        \
+    Ins(i_VAR_STABLE_big),    \
     Ins(i_PACK_STABLE),       \
     Ins(i_UNPACK_STABLE),     \
     Ins(i_PRIMOP1),           \
@@ -180,6 +183,10 @@ typedef enum
     , i_intToAddr
     , i_addrToInt
 
+    /* Stable# operations */
+    , i_intToStable
+    , i_stableToInt
+
     /* Stateless Addr operations */
     , i_indexCharOffAddr
     , i_indexIntOffAddr
@@ -187,9 +194,7 @@ typedef enum
     , i_indexAddrOffAddr
     , i_indexFloatOffAddr
     , i_indexDoubleOffAddr
-#ifdef PROVIDE_STABLE
     , i_indexStableOffAddr
-#endif
 
     , i_readCharOffAddr
     , i_readIntOffAddr
@@ -197,9 +202,7 @@ typedef enum
     , i_readAddrOffAddr
     , i_readFloatOffAddr
     , i_readDoubleOffAddr
-#ifdef PROVIDE_STABLE
     , i_readStableOffAddr
-#endif
 
     , i_writeCharOffAddr
     , i_writeIntOffAddr
@@ -207,9 +210,7 @@ typedef enum
     , i_writeAddrOffAddr
     , i_writeFloatOffAddr
     , i_writeDoubleOffAddr
-#ifdef PROVIDE_STABLE
     , i_writeStableOffAddr
-#endif
 
     /* Integer operations */
     , i_compareInteger
@@ -370,11 +371,13 @@ typedef enum
     , i_readDoubleArray
     , i_indexDoubleArray
 
+#if 0
 #ifdef PROVIDE_STABLE
     , i_writeStableArray
     , i_readStableArray
     , i_indexStableArray
 #endif
+#endif
 
     /* {write,read,index}ForeignObjArray not provided */
 
@@ -403,35 +406,45 @@ typedef enum
     , i_makeWeak
     , i_deRefWeak
 #endif 
-#ifdef PROVIDE_STABLE
     /* StablePtr# operations */
     , i_makeStablePtr
     , i_deRefStablePtr
     , i_freeStablePtr
-#endif
+
+    /* foreign export dynamic support */
+    , i_createAdjThunkARCH
+
+    /* misc handy hacks */
+    , i_getArgc
+    , i_getArgv
 
 #ifdef PROVIDE_CONCURRENT
     /* Concurrency operations */
     , i_fork
     , i_killThread
-    , i_sameMVar
-    , i_newMVar
-    , i_takeMVar
-    , i_putMVar
     , i_delay
     , i_waitRead
     , i_waitWrite
 #endif
+    , i_sameMVar
+    , i_newMVar
+    , i_takeMVar
+    , i_putMVar
+    , i_getThreadId
+    , i_cmpThreadIds
+    , i_forkIO
 
     /* 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
      */
-    , MAX_Primop2 = i_ccall_IO
+    , MAX_Primop2 = i_ccall_stdcall_IO
 } Primop2;
 
 typedef unsigned int InstrPtr; /* offset of instruction within BCO */