guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 02/04: Adapt to lightening changes


From: Andy Wingo
Subject: [Guile-commits] 02/04: Adapt to lightening changes
Date: Sun, 28 Apr 2019 07:57:00 -0400 (EDT)

wingo pushed a commit to branch lightening
in repository guile.

commit 334d0ba860ae74fb7467cd87d7003190d710be53
Author: Andy Wingo <address@hidden>
Date:   Sun Apr 28 12:41:46 2019 +0200

    Adapt to lightening changes
    
    * libguile/jit.c (emit_entry_trampoline): Use
      jit_{enter,leave}_jit_abi.
      (compile_allocate_words_immediate): Use JIT_OPERAND_ABI_WORD.
---
 libguile/jit.c | 29 +++--------------------------
 1 file changed, 3 insertions(+), 26 deletions(-)

diff --git a/libguile/jit.c b/libguile/jit.c
index 726f75b..f6d984b 100644
--- a/libguile/jit.c
+++ b/libguile/jit.c
@@ -1268,19 +1268,7 @@ emit_branch_if_heap_object_not_tc7 (scm_jit_state *j, 
jit_gpr_t r, jit_gpr_t t,
 static void
 emit_entry_trampoline (scm_jit_state *j)
 {
-  const jit_gpr_t gprs[] = { JIT_R0, JIT_R1, JIT_R2, JIT_V0, JIT_V1, JIT_V2 };
-  size_t gpr_count = sizeof(gprs) / sizeof(gprs[0]);
-  const jit_fpr_t fprs[] = { JIT_F0, JIT_F1, JIT_F2 };
-  size_t fpr_count = sizeof(fprs) / sizeof(fprs[0]);
-
-  /* Save values of callee-save registers.  */
-  for (size_t i = 0; i < gpr_count; i++)
-    if (jit_gpr_is_callee_save (gprs[i]))
-      jit_pushr (j->jit, gprs[i]);
-
-  for (size_t i = 0; i < fpr_count; i++)
-    if (jit_fpr_is_callee_save (fprs[i]))
-      jit_pushr_d (j->jit, fprs[i]);
+  size_t align = jit_enter_jit_abi(j->jit, 3, 0, 0);
 
   size_t alignment = jit_align_stack (j->jit, 0);
 
@@ -1293,24 +1281,13 @@ emit_entry_trampoline (scm_jit_state *j)
   /* Load FP, set during call sequences.  */
   emit_reload_fp (j);
 
-  size_t alignment = jit_align_stack (j->jit, 0);
-
   /* Jump to the mcode!  */
   jit_jmpr (j->jit, T0);
 
   /* Initialize global exit_mcode to point here.  */
   exit_mcode = jit_address (j->jit);
 
-  jit_shrink_stack (j->jit, alignment);
-
-  /* Restore callee-save registers.  */
-  for (size_t i = 0; i < fpr_count; i++)
-    if (jit_fpr_is_callee_save (fprs[fpr_count - i - 1]))
-      jit_popr_d (j->jit, fprs[fpr_count - i - 1]);
-
-  for (size_t i = 0; i < gpr_count; i++)
-    if (jit_gpr_is_callee_save (gprs[gpr_count - i - 1]))
-      jit_popr (j->jit, gprs[gpr_count - i - 1]);
+  jit_leave_jit_abi(j->jit, 3, 0, align);
 
   /* When mcode finishes, interpreter will continue with vp->ip.  */
   jit_ret (j->jit);
@@ -2057,7 +2034,7 @@ compile_allocate_words_immediate (scm_jit_state *j, 
uint16_t dst, uint16_t nword
 
   emit_store_current_ip (j, t);
   emit_call_2 (j, scm_vm_intrinsics.allocate_words, thread_operand (),
-               jit_operand_imm (JIT_OPERAND_ABI_INTMAX, nwords));
+               jit_operand_imm (JIT_OPERAND_ABI_WORD, nwords));
   emit_retval (j, t);
   emit_reload_sp (j);
   emit_sp_set_scm (j, dst, t);



reply via email to

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