mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-13 15:10:34 +02:00
push/pop of link register does not affect stack size on x86
* lightening/x86-cpu.c (pop_link_register, push_link_register): Don't record stack size changes here.
This commit is contained in:
parent
62183fb098
commit
1c36f036f6
1 changed files with 9 additions and 0 deletions
|
@ -2561,13 +2561,22 @@ jmpi_with_link(jit_state_t *_jit, jit_word_t i0)
|
||||||
static void
|
static void
|
||||||
pop_link_register(jit_state_t *_jit)
|
pop_link_register(jit_state_t *_jit)
|
||||||
{
|
{
|
||||||
|
/* Treat this instruction as having no effect on the stack size; its
|
||||||
|
* effect is non-local (across functions) and handled manually. */
|
||||||
|
|
||||||
|
int saved_frame_size = _jit->frame_size;
|
||||||
popr(_jit, jit_gpr_regno (JIT_LR));
|
popr(_jit, jit_gpr_regno (JIT_LR));
|
||||||
|
_jit->frame_size = saved_frame_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
push_link_register(jit_state_t *_jit)
|
push_link_register(jit_state_t *_jit)
|
||||||
{
|
{
|
||||||
|
/* See comment in pop_link_register. */
|
||||||
|
|
||||||
|
int saved_frame_size = _jit->frame_size;
|
||||||
pushr(_jit, jit_gpr_regno (JIT_LR));
|
pushr(_jit, jit_gpr_regno (JIT_LR));
|
||||||
|
_jit->frame_size = saved_frame_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue