guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 01/01: Fix JIT compilation of intrinsics that return dou


From: Andy Wingo
Subject: [Guile-commits] 01/01: Fix JIT compilation of intrinsics that return doubles
Date: Mon, 10 Sep 2018 10:33:17 -0400 (EDT)

wingo pushed a commit to branch lightning
in repository guile.

commit ce5c05ac4aa105a8a7b855c6cb5d811ef672cf5b
Author: Andy Wingo <address@hidden>
Date:   Fri Sep 7 16:08:00 2018 +0200

    Fix JIT compilation of intrinsics that return doubles
    
    * libguile/jit.c (emit_retval_d): New helper.
    (compile_call_f64_from_scm): Take the f64 result from the correct
    registers.
---
 libguile/jit.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/libguile/jit.c b/libguile/jit.c
index 951b415..ca466bb 100644
--- a/libguile/jit.c
+++ b/libguile/jit.c
@@ -426,6 +426,13 @@ emit_retval (scm_jit_state *j, jit_gpr_t r)
   record_gpr_clobber (j, r);
 }
 
+static void
+emit_retval_d (scm_jit_state *j, jit_fpr_t r)
+{
+  jit_retval_d (r);
+  record_fpr_clobber (j, r);
+}
+
 static jit_node_t *
 emit_movi (scm_jit_state *j, jit_gpr_t r, jit_word_t i)
 {
@@ -2287,7 +2294,7 @@ compile_call_f64_from_scm (scm_jit_state *j, uint16_t 
dst, uint16_t a, uint32_t
   jit_pushargr (T0);
   jit_finishi (intrinsic);
   clear_scratch_register_state (j);
-  emit_retval (j, JIT_F0);
+  emit_retval_d (j, JIT_F0);
   emit_reload_sp (j);
   emit_sp_set_f64 (j, dst, JIT_F0);
 }



reply via email to

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