Make it a fatal error to try to enter a PAP
[ghc-hetmet.git] / ghc / includes / StgMiscClosures.h
index ef39a8e..62a7ed3 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 */
-RTS_ENTRY(stg_interp_constr_entry);
-RTS_ENTRY(stg_interp_constr1_entry);
-RTS_ENTRY(stg_interp_constr2_entry);
-RTS_ENTRY(stg_interp_constr3_entry);
-RTS_ENTRY(stg_interp_constr4_entry);
-RTS_ENTRY(stg_interp_constr5_entry);
-RTS_ENTRY(stg_interp_constr6_entry);
-RTS_ENTRY(stg_interp_constr7_entry);
-RTS_ENTRY(stg_interp_constr8_entry);
+RTS_FUN(stg_interp_constr_entry);
+RTS_FUN(stg_interp_constr1_entry);
+RTS_FUN(stg_interp_constr2_entry);
+RTS_FUN(stg_interp_constr3_entry);
+RTS_FUN(stg_interp_constr4_entry);
+RTS_FUN(stg_interp_constr5_entry);
+RTS_FUN(stg_interp_constr6_entry);
+RTS_FUN(stg_interp_constr7_entry);
+RTS_FUN(stg_interp_constr8_entry);
 
 /* Magic glue code for when compiled code returns a value in R1/F1/D1
    or a VoidRep to the interpreter. */
@@ -92,9 +98,9 @@ RTS_INFO(stg_IND_OLDGEN_info);
 RTS_INFO(stg_IND_OLDGEN_PERM_info);
 RTS_INFO(stg_CAF_UNENTERED_info);
 RTS_INFO(stg_CAF_ENTERED_info);
+RTS_INFO(stg_WHITEHOLE_info);
 RTS_INFO(stg_BLACKHOLE_info);
 RTS_INFO(stg_CAF_BLACKHOLE_info);
-RTS_INFO(stg_BLACKHOLE_BQ_info);
 #ifdef TICKY_TICKY
 RTS_INFO(stg_SE_BLACKHOLE_info);
 RTS_INFO(stg_SE_CAF_BLACKHOLE_info);
@@ -108,7 +114,6 @@ RTS_INFO(stg_FETCH_ME_BQ_info);
 #endif
 RTS_FUN_INFO(stg_BCO_info);
 RTS_INFO(stg_EVACUATED_info);
-RTS_INFO(stg_FOREIGN_info);
 RTS_INFO(stg_WEAK_info);
 RTS_INFO(stg_DEAD_WEAK_info);
 RTS_INFO(stg_STABLE_NAME_info);
@@ -117,18 +122,27 @@ 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_VAR_info);
+RTS_INFO(stg_MUT_ARR_PTRS_FROZEN0_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_END_MUT_LIST_info);
 RTS_INFO(stg_catch_info);
 RTS_INFO(stg_PAP_info);
 RTS_INFO(stg_AP_info);
 RTS_INFO(stg_AP_STACK_info);
 RTS_INFO(stg_dummy_ret_info);
 RTS_INFO(stg_raise_info);
+RTS_INFO(stg_TVAR_WAIT_QUEUE_info);
+RTS_INFO(stg_TVAR_info);
+RTS_INFO(stg_TREC_CHUNK_info);
+RTS_INFO(stg_TREC_HEADER_info);
+RTS_INFO(stg_END_STM_WAIT_QUEUE_info);
+RTS_INFO(stg_END_STM_CHUNK_LIST_info);
+RTS_INFO(stg_NO_TREC_info);
 
 RTS_ENTRY(stg_IND_entry);
 RTS_ENTRY(stg_IND_direct_entry);
@@ -146,9 +160,9 @@ RTS_ENTRY(stg_IND_OLDGEN_entry);
 RTS_ENTRY(stg_IND_OLDGEN_PERM_entry);
 RTS_ENTRY(stg_CAF_UNENTERED_entry);
 RTS_ENTRY(stg_CAF_ENTERED_entry);
+RTS_ENTRY(stg_WHITEHOLE_entry);
 RTS_ENTRY(stg_BLACKHOLE_entry);
 RTS_ENTRY(stg_CAF_BLACKHOLE_entry);
-RTS_ENTRY(stg_BLACKHOLE_BQ_entry);
 #ifdef TICKY_TICKY
 RTS_ENTRY(stg_SE_BLACKHOLE_entry);
 RTS_ENTRY(stg_SE_CAF_BLACKHOLE_entry);
@@ -161,7 +175,6 @@ RTS_ENTRY(stg_FETCH_ME_BQ_entry);
 #endif
 RTS_ENTRY(stg_BCO_entry);
 RTS_ENTRY(stg_EVACUATED_entry);
-RTS_ENTRY(stg_FOREIGN_entry);
 RTS_ENTRY(stg_WEAK_entry);
 RTS_ENTRY(stg_DEAD_WEAK_entry);
 RTS_ENTRY(stg_STABLE_NAME_entry);
@@ -170,34 +183,51 @@ 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_VAR_entry);
+RTS_ENTRY(stg_MUT_ARR_PTRS_FROZEN0_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_END_MUT_LIST_entry);
 RTS_ENTRY(stg_catch_entry);
 RTS_ENTRY(stg_PAP_entry);
 RTS_ENTRY(stg_AP_entry);
 RTS_ENTRY(stg_AP_STACK_entry);
 RTS_ENTRY(stg_dummy_ret_entry);
 RTS_ENTRY(stg_raise_entry);
+RTS_ENTRY(stg_END_STM_WAIT_QUEUE_entry);
+RTS_ENTRY(stg_END_STM_CHUNK_LIST_entry);
+RTS_ENTRY(stg_NO_TREC_entry);
+RTS_ENTRY(stg_TVAR_entry);
+RTS_ENTRY(stg_TVAR_WAIT_QUEUE_entry);
+RTS_ENTRY(stg_TREC_CHUNK_entry);
+RTS_ENTRY(stg_TREC_HEADER_entry);
 
 
 RTS_ENTRY(stg_unblockAsyncExceptionszh_ret_ret);
 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);
 RTS_ENTRY(stg_raise_entry);
 
 /* closures */
 
 RTS_CLOSURE(stg_END_TSO_QUEUE_closure);
-RTS_CLOSURE(stg_END_MUT_LIST_closure);
 RTS_CLOSURE(stg_NO_FINALIZER_closure);
 RTS_CLOSURE(stg_dummy_ret_closure);
 RTS_CLOSURE(stg_forceIO_closure);
 
+RTS_CLOSURE(stg_END_STM_WAIT_QUEUE_closure);
+RTS_CLOSURE(stg_END_STM_CHUNK_LIST_closure);
+RTS_CLOSURE(stg_NO_TREC_closure);
+
 RTS_ENTRY(stg_NO_FINALIZER_entry);
 RTS_ENTRY(stg_END_EXCEPTION_LIST_entry);
 RTS_ENTRY(stg_EXCEPTION_CONS_entry);
@@ -349,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);
@@ -365,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);
@@ -381,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);
@@ -432,13 +477,19 @@ 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);
 RTS_ENTRY(stg_block_putmvar_ret);
-#ifdef mingw32_TARGET_OS
+#ifdef mingw32_HOST_OS
 RTS_FUN(stg_block_async);
+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 */
 
@@ -446,7 +497,9 @@ RTS_RET_INFO(stg_stop_thread_info);
 RTS_ENTRY(stg_stop_thread_ret);
 
 RTS_FUN(stg_returnToStackTop);
-RTS_FUN(stg_enterStackTop);
+RTS_FUN(stg_returnToSched);
+RTS_FUN(stg_returnToSchedNotPaused);
+RTS_FUN(stg_returnToSchedButFirst);
 
 RTS_FUN(stg_init_finish);
 RTS_FUN(stg_init);
@@ -511,7 +564,7 @@ RTS_FUN(tryPutMVarzh_fast);
 RTS_FUN(waitReadzh_fast);
 RTS_FUN(waitWritezh_fast);
 RTS_FUN(delayzh_fast);
-#ifdef mingw32_TARGET_OS
+#ifdef mingw32_HOST_OS
 RTS_FUN(asyncReadzh_fast);
 RTS_FUN(asyncWritezh_fast);
 RTS_FUN(asyncDoProczh_fast);
@@ -538,9 +591,15 @@ RTS_FUN(mkWeakzh_fast);
 RTS_FUN(finalizzeWeakzh_fast);
 RTS_FUN(deRefWeakzh_fast);
 
-RTS_FUN(mkForeignObjzh_fast);
-
 RTS_FUN(newBCOzh_fast);
 RTS_FUN(mkApUpd0zh_fast);
 
+RTS_FUN(retryzh_fast);
+RTS_FUN(catchRetryzh_fast);
+RTS_FUN(catchSTMzh_fast);
+RTS_FUN(atomicallyzh_fast);
+RTS_FUN(newTVarzh_fast);
+RTS_FUN(readTVarzh_fast);
+RTS_FUN(writeTVarzh_fast);
+
 #endif /* STGMISCCLOSURES_H */