diff --git a/common/cbits/GhcDebug.cmm b/common/cbits/GhcDebug.cmm deleted file mode 100644 index ffdc34b41e09f4b92fc8475d04df52b0472620e6..0000000000000000000000000000000000000000 --- a/common/cbits/GhcDebug.cmm +++ /dev/null @@ -1,69 +0,0 @@ -#include "Cmm.h" - - -closureSizezh ( P_ closure ) -{ - W_ clos; - clos = UNTAG(closure); - - W_ len; - (len) = foreign "C" heap_view_closureSize(clos "ptr"); - return (len); -} - -unpackClosureDatzh ( P_ closure ) -{ - W_ p, ptrs_arr, dat_arr; - - W_ clos; - clos = UNTAG(closure); - - W_ len; - (len) = foreign "C" heap_view_closureSize(clos "ptr"); - foreign "C" printf("unpack %p %d\n", clos, len); - - W_ dat_arr_sz; - dat_arr_sz = SIZEOF_StgArrBytes + WDS(len); - - ALLOC_PRIM_N (dat_arr_sz, unpackClosureDatzh, closure); - foreign "C" printf("unpack(2) %p %d\n", clos, len); - - dat_arr = Hp - dat_arr_sz + WDS(1); - - SET_HDR(dat_arr, stg_ARR_WORDS_info, CCCS); - StgArrBytes_bytes(dat_arr) = WDS(len); - foreign "C" printf("unpack(3) %p %d\n", clos, len); - p = 0; -for: - if(p < len) { - foreign "C" printf("unpack(3a) %p %d/%d %p\n", clos,p, len, clos + WDS(p)); - W_[BYTE_ARR_CTS(dat_arr) + WDS(p)] = W_[clos + WDS(p)]; - p = p + 1; - - goto for; - } - foreign "C" printf("unpack(4) %p %d\n", clos, len); - - - return (dat_arr); -} - -unpackClosureInfozh ( P_ closure ) -{ - W_ info; - info = %GET_STD_INFO(UNTAG(closure)); - - return (info); -} - -unpackClosurePtrzh ( P_ closure ) -{ - W_ clos; - clos = UNTAG(closure); - - W_ ptrArray; - - ("ptr" ptrArray) = foreign "C" heap_view_closurePtrsAsWords(MyCapability() "ptr", clos "ptr"); - - return (ptrArray); -} diff --git a/common/cbits/Heap.c b/common/cbits/Heap.c deleted file mode 100644 index c1c15c2c57ac1fdfff3a0df90c21a51877164ac8..0000000000000000000000000000000000000000 --- a/common/cbits/Heap.c +++ /dev/null @@ -1,26 +0,0 @@ -#include <Rts.h> -#include "rts/storage/Heap.h" - -StgArrBytes *heap_view_closurePtrsAsWords(Capability *cap, StgClosure *closure) { - ASSERT(LOOKS_LIKE_CLOSURE_PTR(closure)); - - StgWord size = heap_view_closureSize(closure); - - // First collect all pointers here, with the comfortable memory bound - // of the whole closure. Afterwards we know how many pointers are in - // the closure and then we can allocate space on the heap and copy them - // there - StgClosure *ptrs[size]; - StgWord nptrs = collect_pointers(closure, ptrs); - StgArrBytes *arr = - (StgArrBytes *)allocate(cap, sizeofW(StgArrBytes) + nptrs); - TICK_ALLOC_PRIM(sizeofW(StgArrBytes), nptrs, 0); - SET_HDR(arr, &stg_ARR_WORDS_info, ((CapabilityPublic *)cap)->r.rCCCS); - arr->bytes = sizeof(StgWord) * nptrs; - - for (StgWord i = 0; i<nptrs; i++) { - arr->payload[i] = (StgWord)ptrs[i]; - } - - return arr; -} diff --git a/common/ghc-debug-common.cabal b/common/ghc-debug-common.cabal index c59a8ac0625025dfb712d54761271d088376834c..82d68eedd2438290570460caf2539c8f045968f0 100644 --- a/common/ghc-debug-common.cabal +++ b/common/ghc-debug-common.cabal @@ -40,8 +40,6 @@ library deepseq >= 1.4 hs-source-dirs: src - cmm-sources: cbits/GhcDebug.cmm - c-sources: cbits/Heap.c ghc-options: -Wall default-language: Haskell2010 default-extensions: ApplicativeDo