* 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
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. */
RTS_FUN(StgReturn);
-extern int rts_stop_next_breakpoint;
-extern int rts_stop_on_exception;
-extern void *rts_breakpoint_io_action;
-
/* -----------------------------------------------------------------------------
PrimOps
-------------------------------------------------------------------------- */
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);
RTS_FUN(newPinnedByteArrayzh_fast);
RTS_FUN(newArrayzh_fast);
-RTS_FUN(decodeFloatzh_fast);
-RTS_FUN(decodeDoublezh_fast);
-
RTS_FUN(newMutVarzh_fast);
RTS_FUN(atomicModifyMutVarzh_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);
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);
// Apply.cmm
// canned bitmap for each arg type
extern StgWord stg_arg_bitmaps[];
+extern StgWord stg_ap_stack_entries[];
+extern StgWord stg_stack_save_entries[];
// Storage.c
extern unsigned int RTS_VAR(alloc_blocks);