summaryrefslogtreecommitdiff
path: root/rts/Updates.cmm
diff options
context:
space:
mode:
authorDavid Terei <davidterei@gmail.com>2012-01-07 02:53:31 -0800
committerDavid Terei <davidterei@gmail.com>2012-01-09 17:01:45 -0800
commita63c4237469307c425456c6acf1578f47c86f3a4 (patch)
tree1c130e30d6bffb449530857dcb167ebe7f1eda3e /rts/Updates.cmm
parent4384e146640230399b38cd62e8e5df391f72c3a7 (diff)
downloadhaskell-a63c4237469307c425456c6acf1578f47c86f3a4.tar.gz
Add live stg info to Updates.cmm (fixes #4308)
Diffstat (limited to 'rts/Updates.cmm')
-rw-r--r--rts/Updates.cmm11
1 files changed, 6 insertions, 5 deletions
diff --git a/rts/Updates.cmm b/rts/Updates.cmm
index 0b43b9cdf1..44fbc0e194 100644
--- a/rts/Updates.cmm
+++ b/rts/Updates.cmm
@@ -50,7 +50,7 @@ INFO_TABLE_RET( stg_upd_frame, UPDATE_FRAME, UPD_FRAME_PARAMS)
updateWithIndirection(updatee,
R1,
- jump %ENTRY_CODE(Sp(0)));
+ jump %ENTRY_CODE(Sp(0)) [R1]);
}
@@ -72,21 +72,21 @@ INFO_TABLE_RET( stg_marked_upd_frame, UPDATE_FRAME, UPD_FRAME_PARAMS)
R1 = v;
foreign "C" checkBlockingQueues(MyCapability() "ptr",
CurrentTSO "ptr") [R1];
- jump %ENTRY_CODE(Sp(0));
+ jump %ENTRY_CODE(Sp(0)) [R1];
}
// common case: it is still our BLACKHOLE
if (v == CurrentTSO) {
updateWithIndirection(updatee,
R1,
- jump %ENTRY_CODE(Sp(0)));
+ jump %ENTRY_CODE(Sp(0)) [R1]);
}
// The other cases are all handled by the generic code
foreign "C" updateThunk (MyCapability() "ptr", CurrentTSO "ptr",
updatee "ptr", R1 "ptr") [R1];
- jump %ENTRY_CODE(Sp(0));
+ jump %ENTRY_CODE(Sp(0)) [R1];
}
// Special update frame code for CAFs and eager-blackholed thunks: it
@@ -95,5 +95,6 @@ INFO_TABLE_RET( stg_marked_upd_frame, UPDATE_FRAME, UPD_FRAME_PARAMS)
// high watermark.
INFO_TABLE_RET (stg_bh_upd_frame, UPDATE_FRAME, UPD_FRAME_PARAMS)
{
- jump RET_LBL(stg_marked_upd_frame);
+ jump RET_LBL(stg_marked_upd_frame) [R1];
}
+