summaryrefslogtreecommitdiff
path: root/module/language/tree-il/compile-bytecode.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/language/tree-il/compile-bytecode.scm')
-rw-r--r--module/language/tree-il/compile-bytecode.scm11
1 files changed, 7 insertions, 4 deletions
diff --git a/module/language/tree-il/compile-bytecode.scm b/module/language/tree-il/compile-bytecode.scm
index b6569c7dd..419f5c8d3 100644
--- a/module/language/tree-il/compile-bytecode.scm
+++ b/module/language/tree-il/compile-bytecode.scm
@@ -300,7 +300,7 @@
(and=>
(scm->immediate-bits x)
(lambda (bits)
- (truncate-bits bits 16 x))))
+ (truncate-bits bits 16 #t))))
#:emit/immediate (lambda (asm a b kf)
(emit-eq-immediate? asm a b)
(emit-jne asm kf)))
@@ -326,9 +326,12 @@
#`(lambda (asm a kf)
(#,(id-prepend 'emit- #'pred) asm a)
(emit-jne asm kf))))))
-(define-syntax-rule (define-immediate-type-predicate name pred mask tag)
- (define-primitive pred #:nargs 1 #:predicate? #t
- #:emit (predicate-emitter pred)))
+(define-syntax define-immediate-type-predicate
+ (syntax-rules ()
+ ((_ name #f mask tag) #f)
+ ((_ name pred mask tag)
+ (define-primitive pred #:nargs 1 #:predicate? #t
+ #:emit (predicate-emitter pred)))))
(define-syntax-rule (define-heap-type-predicate name pred mask tag)
(define-primitive pred #:nargs 1 #:predicate? #t
#:emit (lambda (asm a kf)