summaryrefslogtreecommitdiff
path: root/assembly.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'assembly.lisp')
-rw-r--r--assembly.lisp10
1 files changed, 10 insertions, 0 deletions
diff --git a/assembly.lisp b/assembly.lisp
index 81b0ca1..1ddd326 100644
--- a/assembly.lisp
+++ b/assembly.lisp
@@ -34,15 +34,23 @@
,(normalize-op-list body))
(replace-write out-stream indent (car body))))))))
+;;; TODO: Turn stack operation comments to DEFOP option,
+;;; which then can be used by the user as a documentation
+;;; TODO: Better yet, generate the asm code directly from
+;;; the stack op documentation (this seems easily doable)
+
+;; ( -- a)
(defop (push a) ()
("push ~d" a))
+;; (rbx rax -- (rbx + rax))
(defop + ()
"pop rax"
"pop rbx"
"add rax, rbx"
"push rax")
+;; (rbx rax -- (rbx - rax))
(defop - ()
"pop rax"
"pop rbx"
@@ -82,11 +90,13 @@
(:write (" jmp et_~a" döngü-num)
("et_~a:" label-num))))
+;; (rax -- rax rax)
(defop eş ()
"pop rax"
"push rax"
"push rax")
+;; (rax -- )
(defop düş ()
"pop rax")