From 056914b55586250ea3b8c3dedc8b0f7a1acdb9a7 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Fri, 27 Oct 2017 15:29:24 +0200 Subject: [PATCH] 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 5dcd6e258..b7e162bfe 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))