mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-04 05:50:26 +02:00
ARM: Do not limit to 24 bit displacement jump to unknown address
* lib/jit_arm-cpu.c, lib/jit_arm.c: Only limit to 24 bit displacement non conditional jump in the same jit_state_t.
This commit is contained in:
parent
894a02412c
commit
6db38b75e9
3 changed files with 46 additions and 28 deletions
|
@ -1555,7 +1555,8 @@ _emit_code(jit_state_t *_jit)
|
|||
if (temp->flag & jit_flag_patch)
|
||||
jmpi(temp->u.w);
|
||||
else {
|
||||
word = jmpi_p(_jit->pc.w);
|
||||
word = jmpi_p(_jit->pc.w,
|
||||
!!(node->flag & jit_flag_node));
|
||||
patch(word, node);
|
||||
}
|
||||
}
|
||||
|
@ -2002,7 +2003,8 @@ _patch(jit_state_t *_jit, jit_word_t instr, jit_node_t *node)
|
|||
}
|
||||
else {
|
||||
flag = node->u.n->flag;
|
||||
if (node->code == jit_code_calli)
|
||||
if (node->code == jit_code_calli ||
|
||||
(node->code == jit_code_jmpi && !(node->flag & jit_flag_node)))
|
||||
kind = arm_patch_word;
|
||||
else
|
||||
kind = arm_patch_jump;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue