From 9638e4f169457890effd7f7b8de8d5dad5a0ec49 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 16 May 2019 11:03:49 +0200 Subject: [PATCH] Fix a couple bugs related to aarch64 literal pools --- lightening/aarch64.c | 4 ++-- lightening/lightening.c | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/lightening/aarch64.c b/lightening/aarch64.c index be1d5f7e0..1964cb9bd 100644 --- a/lightening/aarch64.c +++ b/lightening/aarch64.c @@ -115,8 +115,8 @@ DEFINE_ENCODER(size, 2, 22, unsigned, uint32_t) return ret; \ } -DEFINE_PATCHABLE_INSTRUCTION(jmp, simm26, JCC_WITH_VENEER, 2); -DEFINE_PATCHABLE_INSTRUCTION(jcc, simm19, JMP_WITH_VENEER, 2); +DEFINE_PATCHABLE_INSTRUCTION(jmp, simm26, JMP_WITH_VENEER, 2); +DEFINE_PATCHABLE_INSTRUCTION(jcc, simm19, JCC_WITH_VENEER, 2); DEFINE_PATCHABLE_INSTRUCTION(load_from_pool, simm19, LOAD_FROM_POOL, 2); struct veneer diff --git a/lightening/lightening.c b/lightening/lightening.c index c58f577a5..e073103c9 100644 --- a/lightening/lightening.c +++ b/lightening/lightening.c @@ -1281,11 +1281,10 @@ remove_pending_literal(jit_state_t *_jit, jit_reloc_t src) { for (size_t i = _jit->pool->size; i--; ) { if (_jit->pool->entries[i].reloc.offset == src.offset) { - for (size_t j = i + 1; j < _jit->pool->size; j++) { + for (size_t j = i + 1; j < _jit->pool->size; j++) _jit->pool->entries[j-1] = _jit->pool->entries[j]; - _jit->pool->size--; - return; - } + _jit->pool->size--; + return; } } abort();