guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 01/02: Avoid recursive pool emit for aarch64; add anothe


From: Andy Wingo
Subject: [Guile-commits] 01/02: Avoid recursive pool emit for aarch64; add another overflow check
Date: Tue, 21 May 2019 10:07:39 -0400 (EDT)

wingo pushed a commit to branch master
in repository guile.

commit b67c4ed1e1d42610e82d1bdbba3a9df44995449d
Author: Andy Wingo <address@hidden>
Date:   Tue May 21 16:05:03 2019 +0200

    Avoid recursive pool emit for aarch64; add another overflow check
---
 lightening/aarch64-cpu.c | 7 ++++---
 lightening/lightening.c  | 5 +++--
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/lightening/aarch64-cpu.c b/lightening/aarch64-cpu.c
index 50f2b9d..1e72700 100644
--- a/lightening/aarch64-cpu.c
+++ b/lightening/aarch64-cpu.c
@@ -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;
diff --git a/lightening/lightening.c b/lightening/lightening.c
index 5050a35..bf9d9ed 100644
--- a/lightening/lightening.c
+++ b/lightening/lightening.c
@@ -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);
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]