1 /* -----------------------------------------------------------------------------
3 * (c) The GHC Team 2021
5 * Implementation of closure_sizeW_
7 * ---------------------------------------------------------------------------*/
12 closure_sizeW_ (const StgClosure
*p
, const StgInfoTable
*info
)
17 return sizeofW(StgThunk
) + 1;
22 return sizeofW(StgHeader
) + 1;
26 return sizeofW(StgThunk
) + 2;
33 return sizeofW(StgHeader
) + 2;
35 return thunk_sizeW_fromITBL(info
);
37 return THUNK_SELECTOR_sizeW();
39 return ap_stack_sizeW((StgAP_STACK
*)p
);
41 return ap_sizeW((StgAP
*)p
);
43 return pap_sizeW((StgPAP
*)p
);
45 return sizeofW(StgInd
);
47 return arr_words_sizeW((StgArrBytes
*)p
);
48 case MUT_ARR_PTRS_CLEAN
:
49 case MUT_ARR_PTRS_DIRTY
:
50 case MUT_ARR_PTRS_FROZEN_CLEAN
:
51 case MUT_ARR_PTRS_FROZEN_DIRTY
:
52 return mut_arr_ptrs_sizeW((StgMutArrPtrs
*)p
);
53 case SMALL_MUT_ARR_PTRS_CLEAN
:
54 case SMALL_MUT_ARR_PTRS_DIRTY
:
55 case SMALL_MUT_ARR_PTRS_FROZEN_CLEAN
:
56 case SMALL_MUT_ARR_PTRS_FROZEN_DIRTY
:
57 return small_mut_arr_ptrs_sizeW((StgSmallMutArrPtrs
*)p
);
59 return sizeofW(StgTSO
);
61 return stack_sizeW((StgStack
*)p
);
63 return bco_sizeW((StgBCO
*)p
);
65 return sizeofW(StgTRecChunk
);
67 return continuation_sizeW((StgContinuation
*)p
);
69 return sizeW_fromITBL(info
);