Found a cool idea for DEFOP

This commit is contained in:
2024-07-30 20:17:43 +03:00
parent 4091b0e81f
commit 7562c4b30b

View File

@@ -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 ()
"pop rax"
"push rax"
"push rax")
;; (rax -- )
(defop düş ()
"pop rax")