diff options
Diffstat (limited to 'ghc/rts/StgStdThunks.hc')
-rw-r--r-- | ghc/rts/StgStdThunks.hc | 43 |
1 files changed, 11 insertions, 32 deletions
diff --git a/ghc/rts/StgStdThunks.hc b/ghc/rts/StgStdThunks.hc index b54148f469..42c06a3dc7 100644 --- a/ghc/rts/StgStdThunks.hc +++ b/ghc/rts/StgStdThunks.hc @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: StgStdThunks.hc,v 1.8 1999/10/21 09:18:02 simonmar Exp $ + * $Id: StgStdThunks.hc,v 1.9 1999/11/02 15:06:04 simonmar Exp $ * * (c) The GHC Team, 1998-1999 * @@ -46,7 +46,6 @@ R1.p=(P_)R1.cl->payload[offset]; \ GET_SAVED_CCCS; \ Sp=Sp+sizeofW(StgHeader); \ - TICK_ENT_VIA_NODE(); \ JMP_(ENTRY_CODE(*R1.p)); \ FE_ \ } \ @@ -55,16 +54,14 @@ INFO_TABLE_SELECTOR(__sel_##offset##_upd_info, __sel_##offset##_upd_entry, offset,, EF_, 0,0);\ EF_(__sel_##offset##_upd_entry) { \ FB_ \ - TICK_ENT_THK(); \ STK_CHK_NP(UPD_FRAME_SIZE,1,); \ - UPD_BH_UPDATABLE(R1.p); \ + UPD_BH_UPDATABLE(&__sel_##offset##_upd_info); \ PUSH_UPD_FRAME(R1.p,0); \ ENTER_CCS(R1.p); \ SAVE_CCCS(UPD_FRAME_SIZE); \ Sp[-UPD_FRAME_SIZE]=(W_)&__sel_ret_##offset##_upd_info; \ R1.p = (P_)R1.cl->payload[0]; \ Sp=Sp-UPD_FRAME_SIZE; \ - TICK_ENT_VIA_NODE(); \ JMP_(ENTRY_CODE(*R1.p)); \ FE_ \ } @@ -93,7 +90,6 @@ SELECTOR_CODE_UPD(15); R1.p=(P_)R1.cl->payload[offset]; \ GET_SAVED_CCCS; \ Sp=Sp+sizeofW(StgHeader); \ - TICK_ENT_VIA_NODE(); \ JMP_(ENTRY_CODE(*R1.p)); \ FE_ \ } \ @@ -102,14 +98,13 @@ SELECTOR_CODE_UPD(15); INFO_TABLE_SELECTOR(__sel_##offset##_noupd_info, __sel_##offset##_noupd_entry, offset,, EF_, 0,0);\ EF_(__sel_##offset##_noupd_entry) { \ FB_ \ - TICK_ENT_THK(); \ STK_CHK_NP(NOUPD_FRAME_SIZE,1,) \ + UPD_BH_SINGLE_ENTRY(&__sel_##offset##_noupd_info); \ ENTER_CCS(R1.p); \ SAVE_CCCS(NOUPD_FRAME_SIZE); \ Sp[-NOUPD_FRAME_SIZE]=(W_)&__sel_ret_##offset##_noupd_info; \ R1.p = (P_)R1.cl->payload[0]; \ Sp=Sp-NOUPD_FRAME_SIZE; \ - TICK_ENT_VIA_NODE(); \ JMP_(ENTRY_CODE(*R1.p)); \ FE_ \ } @@ -163,14 +158,12 @@ FN_(__ap_8_upd_entry); INFO_TABLE_SRT(__ap_1_upd_info,__ap_1_upd_entry,1,0,0,0,0,THUNK,,EF_,0,0); FN_(__ap_1_upd_entry) { FB_ - TICK_ENT_THK(); STK_CHK_NP(sizeofW(StgUpdateFrame),1,); - UPD_BH_UPDATABLE(R1.p); + UPD_BH_UPDATABLE(&__ap_1_upd_info); ENTER_CCS(R1.p); PUSH_UPD_FRAME(R1.p,0); R1.p=(P_)(R1.cl->payload[0]); Sp = Sp - sizeofW(StgUpdateFrame); - TICK_ENT_VIA_NODE(); JMP_(ENTRY_CODE(*R1.p)); FE_ } @@ -178,15 +171,13 @@ FN_(__ap_1_upd_entry) { INFO_TABLE_SRT(__ap_2_upd_info,__ap_2_upd_entry,2,0,0,0,0,THUNK,,EF_,0,0); FN_(__ap_2_upd_entry) { FB_ - TICK_ENT_THK(); STK_CHK_NP(sizeofW(StgUpdateFrame)+1,1,); - UPD_BH_UPDATABLE(R1.p); + UPD_BH_UPDATABLE(&__ap_2_upd_info); ENTER_CCS(R1.p); PUSH_UPD_FRAME(R1.p,0); Sp[-UF_SIZE-1]=(W_)(R1.cl->payload[1]); R1.p=(P_)(R1.cl->payload[0]); Sp = Sp - (sizeofW(StgUpdateFrame)+1); - TICK_ENT_VIA_NODE(); JMP_(ENTRY_CODE(*R1.p)); FE_ } @@ -194,16 +185,14 @@ FN_(__ap_2_upd_entry) { INFO_TABLE_SRT(__ap_3_upd_info,__ap_3_upd_entry,3,0,0,0,0,THUNK,,EF_,0,0); FN_(__ap_3_upd_entry) { FB_ - TICK_ENT_THK(); STK_CHK_NP(sizeofW(StgUpdateFrame)+2,1,); - UPD_BH_UPDATABLE(R1.p); + UPD_BH_UPDATABLE(&__ap_3_upd_info); ENTER_CCS(R1.p); PUSH_UPD_FRAME(R1.p,0); Sp[-UF_SIZE-1]=(W_)(R1.cl->payload[2]); Sp[-UF_SIZE-2]=(W_)(R1.cl->payload[1]); R1.p=(P_)(R1.cl->payload[0]); Sp = Sp - (sizeofW(StgUpdateFrame)+2); - TICK_ENT_VIA_NODE(); JMP_(ENTRY_CODE(*R1.p)); FE_ } @@ -211,9 +200,8 @@ FN_(__ap_3_upd_entry) { INFO_TABLE_SRT(__ap_4_upd_info,__ap_4_upd_entry,4,0,0,0,0,THUNK,,EF_,0,0); FN_(__ap_4_upd_entry) { FB_ - TICK_ENT_THK(); STK_CHK_NP(sizeofW(StgUpdateFrame)+3,1,); - UPD_BH_UPDATABLE(R1.p); + UPD_BH_UPDATABLE(&__ap_4_upd_info); ENTER_CCS(R1.p); PUSH_UPD_FRAME(R1.p,0); Sp[-UF_SIZE-1]=(W_)(R1.cl->payload[3]); @@ -221,7 +209,6 @@ FN_(__ap_4_upd_entry) { Sp[-UF_SIZE-3]=(W_)(R1.cl->payload[1]); R1.p=(P_)(R1.cl->payload[0]); Sp = Sp - (sizeofW(StgUpdateFrame)+3); - TICK_ENT_VIA_NODE(); JMP_(ENTRY_CODE(*R1.p)); FE_ } @@ -229,9 +216,8 @@ FN_(__ap_4_upd_entry) { INFO_TABLE_SRT(__ap_5_upd_info,__ap_5_upd_entry,5,0,0,0,0,THUNK,,EF_,0,0); FN_(__ap_5_upd_entry) { FB_ - TICK_ENT_THK(); STK_CHK_NP(sizeofW(StgUpdateFrame)+4,1,); - UPD_BH_UPDATABLE(R1.p); + UPD_BH_UPDATABLE(&__ap_5_upd_info); ENTER_CCS(R1.p); PUSH_UPD_FRAME(R1.p,0); Sp[-UF_SIZE-1]=(W_)(R1.cl->payload[4]); @@ -240,7 +226,6 @@ FN_(__ap_5_upd_entry) { Sp[-UF_SIZE-4]=(W_)(R1.cl->payload[1]); R1.p=(P_)(R1.cl->payload[0]); Sp = Sp - (sizeofW(StgUpdateFrame)+4); - TICK_ENT_VIA_NODE(); JMP_(ENTRY_CODE(*R1.p)); FE_ } @@ -248,9 +233,8 @@ FN_(__ap_5_upd_entry) { INFO_TABLE_SRT(__ap_6_upd_info,__ap_6_upd_entry,6,0,0,0,0,THUNK,,EF_,0,0); FN_(__ap_6_upd_entry) { FB_ - TICK_ENT_THK(); STK_CHK_NP(sizeofW(StgUpdateFrame)+5,1,); - UPD_BH_UPDATABLE(R1.p); + UPD_BH_UPDATABLE(&__ap_6_upd_info); ENTER_CCS(R1.p); PUSH_UPD_FRAME(R1.p,0); Sp[-UF_SIZE-1]=(W_)(R1.cl->payload[5]); @@ -260,7 +244,6 @@ FN_(__ap_6_upd_entry) { Sp[-UF_SIZE-5]=(W_)(R1.cl->payload[1]); R1.p=(P_)(R1.cl->payload[0]); Sp = Sp - (sizeofW(StgUpdateFrame)+5); - TICK_ENT_VIA_NODE(); JMP_(ENTRY_CODE(*R1.p)); FE_ } @@ -268,9 +251,8 @@ FN_(__ap_6_upd_entry) { INFO_TABLE_SRT(__ap_7_upd_info,__ap_7_upd_entry,7,0,0,0,0,THUNK,,EF_,0,0); FN_(__ap_7_upd_entry) { FB_ - TICK_ENT_THK(); STK_CHK_NP(sizeofW(StgUpdateFrame)+6,1,); - UPD_BH_UPDATABLE(R1.p); + UPD_BH_UPDATABLE(&__ap_7_upd_info); ENTER_CCS(R1.p); PUSH_UPD_FRAME(R1.p,0); Sp[-UF_SIZE-1]=(W_)(R1.cl->payload[6]); @@ -281,7 +263,6 @@ FN_(__ap_7_upd_entry) { Sp[-UF_SIZE-6]=(W_)(R1.cl->payload[1]); R1.p=(P_)(R1.cl->payload[0]); Sp = Sp - (sizeofW(StgUpdateFrame)+6); - TICK_ENT_VIA_NODE(); JMP_(ENTRY_CODE(*R1.p)); FE_ } @@ -289,9 +270,8 @@ FN_(__ap_7_upd_entry) { INFO_TABLE_SRT(__ap_8_upd_info,__ap_8_upd_entry,8,0,0,0,0,THUNK,,EF_,0,0); FN_(__ap_8_upd_entry) { FB_ - TICK_ENT_THK(); STK_CHK_NP(sizeofW(StgUpdateFrame)+7,1,); - UPD_BH_UPDATABLE(R1.p); + UPD_BH_UPDATABLE(&__ap_8_upd_info); ENTER_CCS(R1.p); PUSH_UPD_FRAME(R1.p,0); Sp[-UF_SIZE-1]=(W_)(R1.cl->payload[7]); @@ -303,7 +283,6 @@ FN_(__ap_8_upd_entry) { Sp[-UF_SIZE-7]=(W_)(R1.cl->payload[1]); R1.p=(P_)(R1.cl->payload[0]); Sp=Sp-10; - TICK_ENT_VIA_NODE(); JMP_(ENTRY_CODE(*R1.p)); FE_ } |