mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-29 14:30:34 +02:00
inline FREE_FRAME in halt
* libguile/vm-i-system.c (halt): Inline FREE_FRAME, specialized for the halt case.
This commit is contained in:
parent
f13c269b7f
commit
1dc8f8517c
1 changed files with 13 additions and 2 deletions
|
@ -58,9 +58,20 @@ VM_DEFINE_INSTRUCTION (halt, "halt", 0, 0, 0)
|
|||
vp->time += scm_c_get_internal_run_time () - start_time;
|
||||
HALT_HOOK ();
|
||||
POP (ret);
|
||||
FREE_FRAME ();
|
||||
{
|
||||
#ifdef THE_GOVERNMENT_IS_AFTER_ME
|
||||
if (sp != stack_base)
|
||||
abort ();
|
||||
if (stack_base != SCM_FRAME_UPPER_ADDRESS (fp) - 1)
|
||||
abort ();
|
||||
#endif
|
||||
|
||||
/* Restore registers */
|
||||
sp = SCM_FRAME_LOWER_ADDRESS (fp) - 1;
|
||||
ip = NULL;
|
||||
fp = SCM_FRAME_DYNAMIC_LINK (fp);
|
||||
}
|
||||
SYNC_ALL ();
|
||||
vp->ip = NULL;
|
||||
scm_dynwind_end ();
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue