from now, code being fed to assemble are appended with the :code-end label, so one can branch to it if one wishes
Sat Oct 27 12:24:12 PDT 2007 Ties Stuij <ties@stuij.se>
* from now, code being fed to assemble are appended with the :code-end label, so one can branch to it if one wishes
diff -rN -u old-armish/README new-armish/README
--- old-armish/README 2014-07-28 01:23:46.000000000 -0700
+++ new-armish/README 2014-07-28 01:23:46.000000000 -0700
@@ -204,6 +204,10 @@
:label - an unadulterated keyword will be treated as a label
+For convenience the to be compiled forms are appended with the :code-end label,
+for if one wants to jump to code which might be placed directly after the compiled
+code.
+
* pseudo-instructions
(ldr register literal) - loads the value of literal in register. Encodes in two's
diff -rN -u old-armish/src/assembler.lisp new-armish/src/assembler.lisp
--- old-armish/src/assembler.lisp 2014-07-28 01:23:46.000000000 -0700
+++ new-armish/src/assembler.lisp 2014-07-28 01:23:46.000000000 -0700
@@ -163,7 +163,9 @@
(defun %assemble (forms &key washed chip mode)
"Two pass assembler for all given forms and labels."
(let* ( ;; internalize symbols so we can compare them
- (pure-forms (if washed forms (clean-form (append forms '(align pool)))))
+ (pure-forms (if washed
+ forms
+ (clean-form (append forms '(align pool :code-end)))))
;; setup initial specials
(*labels* (make-hash-table))
(*pool* '())