1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 11:50:28 +02:00

Merge remote-tracking branch 'lightening/master'

This commit is contained in:
Andy Wingo 2019-05-21 16:06:11 +02:00
commit 9b4870cad3
2 changed files with 7 additions and 5 deletions

View file

@ -994,10 +994,11 @@ static void
emit_veneer(jit_state_t *_jit, jit_pointer_t target)
{
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;
emit_u32(_jit, inst);
BR(_jit, jit_gpr_regno(tmp));
emit_u32(_jit, ldr);
emit_u32(_jit, br);
unget_temp_gpr(_jit);
if (_jit->overflow)
return;

View file

@ -1331,8 +1331,6 @@ emit_literal_pool(jit_state_t *_jit, enum guard_pool guard)
if (_jit->overflow)
return;
_jit->pool->deadline = -1;
if (!_jit->pool->size)
return;
@ -1368,6 +1366,9 @@ emit_literal_pool(jit_state_t *_jit, enum guard_pool guard)
}
}
if (_jit->overflow)
return;
if (guard == GUARD_NEEDED)
patch_jmp_without_veneer(_jit, patch_loc);