X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FUpdates.cmm;h=e0fd7c30d5e13a58ce6068e4cfc4a7328e535836;hb=adf339b2f7fefe396ab5e78206c263830c9702f7;hp=a9f25b76fbd7a6f5a84dd07f005d3ae14f8d7384;hpb=9ff76535edb25ab7434284adddb5c64708ecb547;p=ghc-hetmet.git diff --git a/rts/Updates.cmm b/rts/Updates.cmm index a9f25b7..e0fd7c3 100644 --- a/rts/Updates.cmm +++ b/rts/Updates.cmm @@ -12,8 +12,9 @@ #include "Cmm.h" +#include "rts/prof/LDV.h" + #include "Updates.h" -#include "StgLdvProf.h" /* on entry to the update code (1) R1 points to the closure being returned @@ -41,15 +42,16 @@ /* ToDo: it might be a PAP, so we should check... */ \ TICK_UPD_CON_IN_NEW(sizeW_fromITBL(%GET_STD_INFO(updatee))); \ \ - UPD_SPEC_IND(updatee, stg_IND_direct_info, R1, jump %ENTRY_CODE(Sp(0))); \ + updateWithIndirection(stg_IND_direct_info, \ + updatee, \ + R1, \ + jump %ENTRY_CODE(Sp(0))); \ } #if defined(PROFILING) -#define UPD_FRAME_BITMAP 3 -#define UPD_FRAME_WORDS 3 +#define UPD_FRAME_PARAMS W_ unused1, W_ unused2, P_ unused3 #else -#define UPD_FRAME_BITMAP 0 -#define UPD_FRAME_WORDS 1 +#define UPD_FRAME_PARAMS P_ unused1 #endif /* this bitmap indicates that the first word of an update frame is a @@ -57,11 +59,9 @@ * there's a cost-centre-stack in there too). */ -INFO_TABLE_RET( stg_upd_frame, - UPD_FRAME_WORDS, UPD_FRAME_BITMAP, UPDATE_FRAME) +INFO_TABLE_RET( stg_upd_frame, UPDATE_FRAME, UPD_FRAME_PARAMS) UPD_FRAME_ENTRY_TEMPLATE -INFO_TABLE_RET( stg_marked_upd_frame, - UPD_FRAME_WORDS, UPD_FRAME_BITMAP, UPDATE_FRAME) +INFO_TABLE_RET( stg_marked_upd_frame, UPDATE_FRAME, UPD_FRAME_PARAMS) UPD_FRAME_ENTRY_TEMPLATE