Add a new primitive forkOn#, for forking a thread on a specific Capability
[ghc-hetmet.git] / ghc / includes / StgMiscClosures.h
index 148e055..4a6a7c4 100644 (file)
 
 /* Stack frames */
 RTS_RET_INFO(stg_upd_frame_info);
+RTS_RET_INFO(stg_marked_upd_frame_info);
 RTS_RET_INFO(stg_noupd_frame_info);
 RTS_RET_INFO(stg_seq_frame_info);
 RTS_RET_INFO(stg_catch_frame_info);
 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_ENTRY(stg_upd_frame_ret);
+RTS_ENTRY(stg_marked_upd_frame_ret);
 RTS_ENTRY(stg_seq_frame_ret);
 
 /* Entry code for constructors created by the bytecode interpreter */
@@ -119,10 +122,12 @@ RTS_INFO(stg_EMPTY_MVAR_info);
 RTS_INFO(stg_TSO_info);
 RTS_INFO(stg_ARR_WORDS_info);
 RTS_INFO(stg_MUT_ARR_WORDS_info);
-RTS_INFO(stg_MUT_ARR_PTRS_info);
+RTS_INFO(stg_MUT_ARR_PTRS_CLEAN_info);
+RTS_INFO(stg_MUT_ARR_PTRS_DIRTY_info);
 RTS_INFO(stg_MUT_ARR_PTRS_FROZEN_info);
 RTS_INFO(stg_MUT_ARR_PTRS_FROZEN0_info);
-RTS_INFO(stg_MUT_VAR_info);
+RTS_INFO(stg_MUT_VAR_CLEAN_info);
+RTS_INFO(stg_MUT_VAR_DIRTY_info);
 RTS_INFO(stg_END_TSO_QUEUE_info);
 RTS_INFO(stg_MUT_CONS_info);
 RTS_INFO(stg_catch_info);
@@ -178,10 +183,12 @@ RTS_ENTRY(stg_EMPTY_MVAR_entry);
 RTS_ENTRY(stg_TSO_entry);
 RTS_ENTRY(stg_ARR_WORDS_entry);
 RTS_ENTRY(stg_MUT_ARR_WORDS_entry);
-RTS_ENTRY(stg_MUT_ARR_PTRS_entry);
+RTS_ENTRY(stg_MUT_ARR_PTRS_CLEAN_entry);
+RTS_ENTRY(stg_MUT_ARR_PTRS_DIRTY_entry);
 RTS_ENTRY(stg_MUT_ARR_PTRS_FROZEN_entry);
 RTS_ENTRY(stg_MUT_ARR_PTRS_FROZEN0_entry);
-RTS_ENTRY(stg_MUT_VAR_entry);
+RTS_ENTRY(stg_MUT_VAR_CLEAN_entry);
+RTS_ENTRY(stg_MUT_VAR_DIRTY_entry);
 RTS_ENTRY(stg_END_TSO_QUEUE_entry);
 RTS_ENTRY(stg_MUT_CONS_entry);
 RTS_ENTRY(stg_catch_entry);
@@ -204,6 +211,7 @@ RTS_ENTRY(stg_blockAsyncExceptionszh_ret_ret);
 RTS_ENTRY(stg_catch_frame_ret);
 RTS_ENTRY(stg_catch_retry_frame_ret);
 RTS_ENTRY(stg_atomically_frame_ret);
+RTS_ENTRY(stg_atomically_waiting_frame_ret);
 RTS_ENTRY(stg_catch_stm_frame_ret);
 RTS_ENTRY(stg_catch_frame_ret);
 RTS_ENTRY(stg_catch_entry);
@@ -371,7 +379,6 @@ RTS_ENTRY(stg_ap_7_upd_entry);
 /* standard application routines (see also rts/gen_apply.py, 
  * and compiler/codeGen/CgStackery.lhs).
  */
-RTS_RET_INFO(stg_ap_0_info);
 RTS_RET_INFO(stg_ap_v_info);
 RTS_RET_INFO(stg_ap_f_info);
 RTS_RET_INFO(stg_ap_d_info);
@@ -387,7 +394,6 @@ RTS_RET_INFO(stg_ap_pppp_info);
 RTS_RET_INFO(stg_ap_ppppp_info);
 RTS_RET_INFO(stg_ap_pppppp_info);
 
-RTS_ENTRY(stg_ap_0_ret);
 RTS_ENTRY(stg_ap_v_ret);
 RTS_ENTRY(stg_ap_f_ret);
 RTS_ENTRY(stg_ap_d_ret);
@@ -403,6 +409,23 @@ RTS_ENTRY(stg_ap_pppp_ret);
 RTS_ENTRY(stg_ap_ppppp_ret);
 RTS_ENTRY(stg_ap_pppppp_ret);
 
+RTS_FUN(stg_ap_0_fast);
+RTS_FUN(stg_ap_v_fast);
+RTS_FUN(stg_ap_f_fast);
+RTS_FUN(stg_ap_d_fast);
+RTS_FUN(stg_ap_l_fast);
+RTS_FUN(stg_ap_n_fast);
+RTS_FUN(stg_ap_p_fast);
+RTS_FUN(stg_ap_pv_fast);
+RTS_FUN(stg_ap_pp_fast);
+RTS_FUN(stg_ap_ppv_fast);
+RTS_FUN(stg_ap_ppp_fast);
+RTS_FUN(stg_ap_pppv_fast);
+RTS_FUN(stg_ap_pppp_fast);
+RTS_FUN(stg_ap_ppppp_fast);
+RTS_FUN(stg_ap_pppppp_fast);
+RTS_FUN(stg_PAP_apply);
+
 /* standard GC & stack check entry points, all defined in HeapStackCheck.hc */
 
 RTS_RET_INFO(stg_enter_info);
@@ -454,6 +477,8 @@ RTS_FUN(stg_yield_to_interpreter);
 RTS_FUN(stg_gen_block);
 RTS_FUN(stg_block_noregs);
 RTS_FUN(stg_block_1);
+RTS_FUN(stg_block_blackhole);
+RTS_FUN(stg_block_blackhole_finally);
 RTS_FUN(stg_block_takemvar);
 RTS_ENTRY(stg_block_takemvar_ret);
 RTS_FUN(stg_block_putmvar);
@@ -464,6 +489,7 @@ RTS_ENTRY(stg_block_async_ret);
 RTS_FUN(stg_block_async_void);
 RTS_ENTRY(stg_block_async_void_ret);
 #endif
+RTS_FUN(stg_block_stmwait);
 
 /* Entry/exit points from StgStartup.cmm */
 
@@ -553,6 +579,7 @@ RTS_FUN(makeStablePtrzh_fast);
 RTS_FUN(deRefStablePtrzh_fast);
 
 RTS_FUN(forkzh_fast);
+RTS_FUN(forkOnzh_fast);
 RTS_FUN(yieldzh_fast);
 RTS_FUN(killThreadzh_fast);
 RTS_FUN(blockAsyncExceptionszh_fast);