/* -----------------------------------------------------------------------------
- * $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), \
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), \
, i_intToAddr
, i_addrToInt
+ /* Stable# operations */
+ , i_intToStable
+ , i_stableToInt
+
/* Stateless Addr operations */
, i_indexCharOffAddr
, i_indexIntOffAddr
, i_indexAddrOffAddr
, i_indexFloatOffAddr
, i_indexDoubleOffAddr
-#ifdef PROVIDE_STABLE
, i_indexStableOffAddr
-#endif
, i_readCharOffAddr
, i_readIntOffAddr
, i_readAddrOffAddr
, i_readFloatOffAddr
, i_readDoubleOffAddr
-#ifdef PROVIDE_STABLE
, i_readStableOffAddr
-#endif
, i_writeCharOffAddr
, i_writeIntOffAddr
, i_writeAddrOffAddr
, i_writeFloatOffAddr
, i_writeDoubleOffAddr
-#ifdef PROVIDE_STABLE
, i_writeStableOffAddr
-#endif
/* Integer operations */
, i_compareInteger
, i_readDoubleArray
, i_indexDoubleArray
+#if 0
#ifdef PROVIDE_STABLE
, i_writeStableArray
, i_readStableArray
, i_indexStableArray
#endif
+#endif
/* {write,read,index}ForeignObjArray not provided */
, 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 */