diff options
Diffstat (limited to 'rts/StgStartup.cmm')
-rw-r--r-- | rts/StgStartup.cmm | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/rts/StgStartup.cmm b/rts/StgStartup.cmm index 122eace1f3..6d3d47f54f 100644 --- a/rts/StgStartup.cmm +++ b/rts/StgStartup.cmm @@ -51,13 +51,13 @@ INFO_TABLE_RET(stg_stop_thread, STOP_FRAME, We Leave the stack looking like this: - +----------------+ - | -------------------> return value - +----------------+ - | stg_enter_info | - +----------------+ + +----------------------+ + | -----------------------> return value + +----------------------+ + | stg_dead_thread_info | + +----------------------+ - The stg_enter_info is just a dummy info table so that the + The stg_dead_thread_info is just a dummy info table so that the garbage collector can understand the stack (there must always be an info table on top of the stack). */ @@ -70,9 +70,9 @@ INFO_TABLE_RET(stg_stop_thread, STOP_FRAME, unwind UnwindReturnReg = return; #endif - Sp = Sp + SIZEOF_StgStopFrame - WDS(2); + Sp = Sp + SIZEOF_StgStopFrame - SIZEOF_StgDeadThreadFrame; + Sp(0) = stg_dead_thread_info; Sp(1) = R1; - Sp(0) = stg_enter_info; StgTSO_what_next(CurrentTSO) = ThreadComplete::I16; |