X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FStgMiscClosures.h;h=9158682047d58ae25134fc2396f48867e6fd9d19;hb=2b16fa4791b08b02df8461f3b79d0e44d72d0960;hp=f11588324c773f9c26529a0a8b9f88ff14ce3a72;hpb=92986843271f2f400ebc0759b30eb11d47eaa193;p=ghc-hetmet.git diff --git a/includes/StgMiscClosures.h b/includes/StgMiscClosures.h index f115883..9158682 100644 --- a/includes/StgMiscClosures.h +++ b/includes/StgMiscClosures.h @@ -8,6 +8,8 @@ * our Cmm code generator doesn't know how to generate local symbols * for the RTS bits (it assumes all RTS symbols are external). * + * See wiki:Commentary/Compiler/Backends/PprC#Prototypes + * * --------------------------------------------------------------------------*/ #ifndef STGMISCCLOSURES_H @@ -44,12 +46,17 @@ RTS_RET_INFO(stg_catch_retry_frame_info); RTS_RET_INFO(stg_atomically_frame_info); RTS_RET_INFO(stg_atomically_waiting_frame_info); RTS_RET_INFO(stg_catch_stm_frame_info); +RTS_RET_INFO(stg_unblockAsyncExceptionszh_ret_info); RTS_ENTRY(stg_upd_frame_ret); RTS_ENTRY(stg_marked_upd_frame_ret); -/* Entry code for constructors created by the bytecode interpreter */ -RTS_FUN(stg_interp_constr_entry); +// RTS_FUN(stg_interp_constr_entry); +// +// This is referenced using the FFI in the compiler (ByteCodeItbls), +// so we can't give it the correct type here because the prototypes +// would clash (FFI references are always declared with type StgWord[] +// in the generated C code). /* Magic glue code for when compiled code returns a value in R1/F1/D1 or a VoidRep to the interpreter. */ @@ -495,10 +502,6 @@ RTS_FUN(stg_init); RTS_FUN(StgReturn); -extern int rts_stop_next_breakpoint; -extern int rts_stop_on_exception; -extern void *rts_breakpoint_io_action; - /* ----------------------------------------------------------------------------- PrimOps -------------------------------------------------------------------------- */ @@ -524,7 +527,9 @@ RTS_FUN(int2Integerzh_fast); RTS_FUN(word2Integerzh_fast); RTS_FUN(decodeFloatzh_fast); +RTS_FUN(decodeFloatzuIntzh_fast); RTS_FUN(decodeDoublezh_fast); +RTS_FUN(decodeDoublezu2Intzh_fast); RTS_FUN(andIntegerzh_fast); RTS_FUN(orIntegerzh_fast); @@ -543,9 +548,6 @@ RTS_FUN(newByteArrayzh_fast); RTS_FUN(newPinnedByteArrayzh_fast); RTS_FUN(newArrayzh_fast); -RTS_FUN(decodeFloatzh_fast); -RTS_FUN(decodeDoublezh_fast); - RTS_FUN(newMutVarzh_fast); RTS_FUN(atomicModifyMutVarzh_fast); @@ -577,11 +579,13 @@ RTS_FUN(forkzh_fast); RTS_FUN(forkOnzh_fast); RTS_FUN(yieldzh_fast); RTS_FUN(killThreadzh_fast); +RTS_FUN(asyncExceptionsBlockedzh_fast); RTS_FUN(blockAsyncExceptionszh_fast); RTS_FUN(unblockAsyncExceptionszh_fast); RTS_FUN(myThreadIdzh_fast); RTS_FUN(labelThreadzh_fast); RTS_FUN(isCurrentThreadBoundzh_fast); +RTS_FUN(threadStatuszh_fast); RTS_FUN(mkWeakzh_fast); RTS_FUN(finalizzeWeakzh_fast); @@ -596,20 +600,27 @@ RTS_FUN(catchSTMzh_fast); RTS_FUN(atomicallyzh_fast); RTS_FUN(newTVarzh_fast); RTS_FUN(readTVarzh_fast); +RTS_FUN(readTVarIOzh_fast); RTS_FUN(writeTVarzh_fast); RTS_FUN(checkzh_fast); RTS_FUN(unpackClosurezh_fast); RTS_FUN(getApStackValzh_fast); +RTS_FUN(getSparkzh_fast); RTS_FUN(noDuplicatezh_fast); /* Other misc stuff */ +// See wiki:Commentary/Compiler/Backends/PprC#Prototypes #if IN_STG_CODE && !IN_STGCRUN +// Interpreter.c +extern StgWord rts_stop_next_breakpoint[]; +extern StgWord rts_stop_on_exception[]; +extern StgWord rts_breakpoint_io_action[]; + // Schedule.c -extern int RTS_VAR(context_switch); extern StgWord RTS_VAR(blocked_queue_hd), RTS_VAR(blocked_queue_tl); extern StgWord RTS_VAR(sleeping_queue); extern StgWord RTS_VAR(blackhole_queue);