summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Tennie <sven.tennie@gmail.com>2023-01-21 14:33:23 +0000
committerSven Tennie <sven.tennie@gmail.com>2023-01-21 14:33:23 +0000
commitbc141e9b3e8bbfebc745d0b7d2c69dc34473df9f (patch)
tree3063acd49d0de5bcc2c468d8650c27868f0f3600
parentba1872a3f951a914916d7d7a8a3187320ff75900 (diff)
downloadhaskell-bc141e9b3e8bbfebc745d0b7d2c69dc34473df9f.tar.gz
Reduce duplication
-rw-r--r--libraries/ghc-heap/cbits/Stack.cmm25
1 files changed, 9 insertions, 16 deletions
diff --git a/libraries/ghc-heap/cbits/Stack.cmm b/libraries/ghc-heap/cbits/Stack.cmm
index 22e43176bd..192a80e44c 100644
--- a/libraries/ghc-heap/cbits/Stack.cmm
+++ b/libraries/ghc-heap/cbits/Stack.cmm
@@ -141,14 +141,16 @@ getRetFunLargeBitmapzh(P_ stack, W_ offsetWords){
return (stgArrBytes, size);
}
-// TODO: Use generalized version unpackClosureReferencedByFramezh with offset=0
unpackClosureFromStackFramezh(P_ stack, W_ offsetWords){
- P_ closurePtr, closurePtrPrime;
- // TODO: Rename closurePtr -> closurePtrAddr
- closurePtr = (StgStack_sp(stack) + WDS(offsetWords));
- closurePtrPrime = P_[closurePtr];
- ASSERT(LOOKS_LIKE_CLOSURE_PTR(closurePtrPrime));
- jump stg_unpackClosurezh(closurePtrPrime);
+ jump unpackClosureReferencedByFramezh(0, stack, offsetWords);
+}
+
+unpackClosureReferencedByFramezh(W_ offsetBytes, P_ stack, W_ offsetWords){
+ P_ closurePtrAddr, closurePtr;
+ closurePtrAddr = (StgStack_sp(stack) + WDS(offsetWords) + offsetBytes);
+ closurePtr = P_[closurePtrAddr];
+ ASSERT(LOOKS_LIKE_CLOSURE_PTR(closurePtr));
+ jump stg_unpackClosurezh(closurePtr);
}
getUpdateFrameTypezh(P_ stack, W_ offsetWords){
@@ -161,15 +163,6 @@ getUpdateFrameTypezh(P_ stack, W_ offsetWords){
return (type);
}
-unpackClosureReferencedByFramezh(W_ offsetBytes, P_ stack, W_ offsetWords){
- P_ closurePtr, closurePtrPrime;
- // TODO: Rename closurePtr -> closurePtrAddr
- closurePtr = (StgStack_sp(stack) + WDS(offsetWords) + offsetBytes);
- closurePtrPrime = P_[closurePtr];
- ASSERT(LOOKS_LIKE_CLOSURE_PTR(closurePtrPrime));
- jump stg_unpackClosurezh(closurePtrPrime);
-}
-
getCatchFrameExceptionsBlockedzh(P_ stack, W_ offsetWords){
P_ closurePtr;
closurePtr = (StgStack_sp(stack) + WDS(offsetWords));