guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 07/09: Reload FP if needed in bind-rest also


From: Andy Wingo
Subject: [Guile-commits] 07/09: Reload FP if needed in bind-rest also
Date: Mon, 11 May 2020 09:08:29 -0400 (EDT)

wingo pushed a commit to branch master
in repository guile.

commit 35160ade03bea1c5bac54e2f5fa5591068e0a557
Author: Andy Wingo <address@hidden>
AuthorDate: Mon May 11 14:41:44 2020 +0200

    Reload FP if needed in bind-rest also
    
    * libguile/jit.c (compile_bind_rest): Reload FP if needed
---
 libguile/jit.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libguile/jit.c b/libguile/jit.c
index 1e34b4f..e32b859 100644
--- a/libguile/jit.c
+++ b/libguile/jit.c
@@ -2173,6 +2173,12 @@ compile_bind_rest (scm_jit_state *j, uint32_t dst)
   jit_reloc_t k, cons;
   jit_gpr_t t = T1;
   
+  /* As with receive-values, although bind-rest is usually used after a
+     call returns, the baseline compiler will sometimes emit it
+     elsewhere.  In that case ensure that FP is in a register for the
+     frame-locals-count branches.  */
+  restore_reloadable_register_state (j, FP_IN_REGISTER);
+
   cons = emit_branch_if_frame_locals_count_greater_than (j, t, dst);
 
   emit_alloc_frame (j, t, dst + 1);



reply via email to

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