From f9a69e2da950a9efbdcfcbb32c1599f97ba966a5 Mon Sep 17 00:00:00 2001 From: John Lorentzson Date: Thu, 3 Jul 2025 16:57:33 +0200 Subject: [PATCH] Add macro for iterating over ASM-OBJECTs --- wip-duuqnd/user-side-compiler/backend/code-generator.lisp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/wip-duuqnd/user-side-compiler/backend/code-generator.lisp b/wip-duuqnd/user-side-compiler/backend/code-generator.lisp index 40044b2..4b66b30 100644 --- a/wip-duuqnd/user-side-compiler/backend/code-generator.lisp +++ b/wip-duuqnd/user-side-compiler/backend/code-generator.lisp @@ -214,6 +214,12 @@ (emit-cmp :address (data-reference (second (inputs inst))))) (emit-store-bool (output inst))) +(defmacro do-asm-objects ((asm-obj start-asm-obj) &body body) + `(loop :for ,asm-obj := ,start-asm-obj :then (next ,asm-obj) + :until (null ,asm-obj) + :do (progn + ,@body))) + (defun link-compute-addresses (start-instruction origin-address) "First linking pass, computes the addresses of all labels." (let ((address origin-address))