mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Merge remote-tracking branch 'lightening/master'
This commit is contained in:
commit
9b4870cad3
2 changed files with 7 additions and 5 deletions
|
@ -994,10 +994,11 @@ static void
|
||||||
emit_veneer(jit_state_t *_jit, jit_pointer_t target)
|
emit_veneer(jit_state_t *_jit, jit_pointer_t target)
|
||||||
{
|
{
|
||||||
jit_gpr_t tmp = get_temp_gpr(_jit);
|
jit_gpr_t tmp = get_temp_gpr(_jit);
|
||||||
uint32_t inst = encode_ox19(A64_LDRI_LITERAL, jit_gpr_regno(tmp));
|
uint32_t ldr = encode_ox19(A64_LDRI_LITERAL, jit_gpr_regno(tmp));
|
||||||
|
uint32_t br = write_Rn_bitfield(A64_BR, jit_gpr_regno(tmp));
|
||||||
uint32_t *loc = _jit->pc.ui;
|
uint32_t *loc = _jit->pc.ui;
|
||||||
emit_u32(_jit, inst);
|
emit_u32(_jit, ldr);
|
||||||
BR(_jit, jit_gpr_regno(tmp));
|
emit_u32(_jit, br);
|
||||||
unget_temp_gpr(_jit);
|
unget_temp_gpr(_jit);
|
||||||
if (_jit->overflow)
|
if (_jit->overflow)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1331,8 +1331,6 @@ emit_literal_pool(jit_state_t *_jit, enum guard_pool guard)
|
||||||
if (_jit->overflow)
|
if (_jit->overflow)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_jit->pool->deadline = -1;
|
|
||||||
|
|
||||||
if (!_jit->pool->size)
|
if (!_jit->pool->size)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -1368,6 +1366,9 @@ emit_literal_pool(jit_state_t *_jit, enum guard_pool guard)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_jit->overflow)
|
||||||
|
return;
|
||||||
|
|
||||||
if (guard == GUARD_NEEDED)
|
if (guard == GUARD_NEEDED)
|
||||||
patch_jmp_without_veneer(_jit, patch_loc);
|
patch_jmp_without_veneer(_jit, patch_loc);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue