From ed96e5e915c5380f0a073ed49d6786b07db68439 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Tue, 9 Nov 2021 17:42:59 +0100 Subject: Add display functionality for lambda objects --- src/x86_64/prelude.asm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/x86_64') diff --git a/src/x86_64/prelude.asm b/src/x86_64/prelude.asm index abb069b..81a2633 100644 --- a/src/x86_64/prelude.asm +++ b/src/x86_64/prelude.asm @@ -82,6 +82,15 @@ printstring: syscall ret +printlambda: + mov rsi, lambda_str + mov rdx, [rsi] + add rsi, 8 + mov rax, 1 + mov rdi, 1 + syscall + ret + display: ;; is nil? mov rax, rdi @@ -106,6 +115,15 @@ not_bool: ret not_string: + ;; is lambda? + mov rax, rdi + and rax, LAMBDA_MASK + cmp rax, LAMBDA_TAG + jne not_lambda + call printlambda + ret +not_lambda: + ;; is fixnum? mov rax, rdi and rax, FIXNUM_MASK -- cgit v1.2.1