guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 08/11: Emit new eq? instruction


From: Andy Wingo
Subject: [Guile-commits] 08/11: Emit new eq? instruction
Date: Sun, 29 Oct 2017 05:09:40 -0400 (EDT)

wingo pushed a commit to branch master
in repository guile.

commit 056914b55586250ea3b8c3dedc8b0f7a1acdb9a7
Author: Andy Wingo <address@hidden>
Date:   Fri Oct 27 15:29:24 2017 +0200

    Emit new eq? instruction
    
    * module/language/cps/compile-bytecode.scm (compile-function): Emit
      new-style eq? instruction.
---
 module/language/cps/compile-bytecode.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/module/language/cps/compile-bytecode.scm 
b/module/language/cps/compile-bytecode.scm
index 5dcd6e2..b7e162b 100644
--- a/module/language/cps/compile-bytecode.scm
+++ b/module/language/cps/compile-bytecode.scm
@@ -409,6 +409,9 @@
       (define (unary op a)
         (op asm (from-sp (slot a)))
         (emit-branch-for-test))
+      (define (binary-test op a b)
+        (op asm (from-sp (slot a)) (from-sp (slot b)))
+        (emit-branch-for-test))
       (define (binary op a b)
         (cond
          ((eq? kt next-label)
@@ -438,7 +441,7 @@
         ;; Add more TC7 tests here.  Keep in sync with
         ;; *branching-primcall-arities* in (language cps primitives) and
         ;; the set of macro-instructions in assembly.scm.
-        (($ $primcall 'eq? (a b)) (binary emit-br-if-eq a b))
+        (($ $primcall 'eq? (a b)) (binary-test emit-eq? a b))
         (($ $primcall 'eqv? (a b)) (binary emit-br-if-eqv a b))
         (($ $primcall '< (a b)) (binary emit-br-if-< a b))
         (($ $primcall '<= (a b)) (binary emit-br-if-<= a b))



reply via email to

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