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))