diff options
Diffstat (limited to 'module/language/tree-il/compile-bytecode.scm')
-rw-r--r-- | module/language/tree-il/compile-bytecode.scm | 11 |
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) |