Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Tobias Decking
GHC
Commits
41bfdf71
Commit
41bfdf71
authored
Sep 24, 2010
by
Simon Marlow
Browse files
remove unnecessary stg_noForceIO (#3508)
parent
92a5f4ab
Changes
4
Hide whitespace changes
Inline
Side-by-side
rts/Exception.cmm
View file @
41bfdf71
...
...
@@ -494,10 +494,9 @@ retry_pop_stack:
// be per-thread.
CInt
[
rts_stop_on_exception
]
=
0
;
(
"
ptr
"
ioAction
)
=
foreign
"
C
"
deRefStablePtr
(
W_
[
rts_breakpoint_io_action
]
"
ptr
"
)
[];
Sp
=
Sp
-
WDS
(
7
);
Sp
(
6
)
=
exception
;
Sp
(
5
)
=
stg_raise_ret_info
;
Sp
(
4
)
=
stg_noforceIO_info
;
// required for unregisterised
Sp
=
Sp
-
WDS
(
6
);
Sp
(
5
)
=
exception
;
Sp
(
4
)
=
stg_raise_ret_info
;
Sp
(
3
)
=
exception
;
// the AP_STACK
Sp
(
2
)
=
ghczmprim_GHCziBool_True_closure
;
// dummy breakpoint info
Sp
(
1
)
=
ghczmprim_GHCziBool_True_closure
;
// True <=> a breakpoint
...
...
rts/Interpreter.c
View file @
41bfdf71
...
...
@@ -884,21 +884,15 @@ run_BCO:
// in a reasonable state for the GC and so that
// execution of this BCO can continue when we resume
ioAction
=
(
StgClosure
*
)
deRefStablePtr
(
rts_breakpoint_io_action
);
Sp
-=
9
;
Sp
[
8
]
=
(
W_
)
obj
;
Sp
[
7
]
=
(
W_
)
&
stg_apply_interp_info
;
Sp
[
6
]
=
(
W_
)
&
stg_noforceIO_info
;
// see [unreg] below
Sp
-=
8
;
Sp
[
7
]
=
(
W_
)
obj
;
Sp
[
6
]
=
(
W_
)
&
stg_apply_interp_info
;
Sp
[
5
]
=
(
W_
)
new_aps
;
// the AP_STACK
Sp
[
4
]
=
(
W_
)
BCO_PTR
(
arg3_freeVars
);
// the info about local vars of the breakpoint
Sp
[
3
]
=
(
W_
)
False_closure
;
// True <=> a breakpoint
Sp
[
2
]
=
(
W_
)
&
stg_ap_pppv_info
;
Sp
[
1
]
=
(
W_
)
ioAction
;
// apply the IO action to its two arguments above
Sp
[
0
]
=
(
W_
)
&
stg_enter_info
;
// get ready to run the IO action
// Note [unreg]: in unregisterised mode, the return
// convention for IO is different. The
// stg_noForceIO_info stack frame is necessary to
// account for this difference.
// set the flag in the TSO to say that we are now
// stopping at a breakpoint so that when we resume
// we don't stop on the same breakpoint that we
...
...
rts/RtsAPI.c
View file @
41bfdf71
...
...
@@ -394,7 +394,6 @@ createIOThread (Capability *cap, nat stack_size, StgClosure *closure)
{
StgTSO
*
t
;
t
=
createThread
(
cap
,
stack_size
);
pushClosure
(
t
,
(
W_
)
&
stg_noforceIO_info
);
pushClosure
(
t
,
(
W_
)
&
stg_ap_v_info
);
pushClosure
(
t
,
(
W_
)
closure
);
pushClosure
(
t
,
(
W_
)
&
stg_enter_info
);
...
...
rts/StgStartup.cmm
View file @
41bfdf71
...
...
@@ -150,22 +150,6 @@ INFO_TABLE_RET( stg_forceIO, RET_SMALL)
ENTER
();
}
/* -----------------------------------------------------------------------------
Non-strict IO application.
This stack frame works like stg_forceIO_info except that it
doesn't evaluate the return value. We need the layer because the
return convention for an IO action differs depending on whether R1
is a register or not.
------------------------------------------------------------------------- */
INFO_TABLE_RET
(
stg_noforceIO
,
RET_SMALL
)
{
Sp_adj
(
1
);
jump
%ENTRY_CODE
(
Sp
(
0
));
}
/* -----------------------------------------------------------------------------
Special STG entry points for module registration.
-------------------------------------------------------------------------- */
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment