diff options
Diffstat (limited to 'assembly.lisp')
-rw-r--r-- | assembly.lisp | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/assembly.lisp b/assembly.lisp index 13623c7..e872ee8 100644 --- a/assembly.lisp +++ b/assembly.lisp @@ -112,18 +112,17 @@ (with-gensyms (out-stream) (destructuring-bind (op-name . args) (mklist op-name+args) `(progn - ,@(append - (unless (null lex) - `((push ',op-name *identifiers*))) - `((setf (gethash ,(string op-name) *operations*) - (lambda (,out-stream ,@args) - ,@(mapcar #'(lambda (group) (expand-group group out-stream - :indent indent)) - (group-by-syntax body)))))))))) + ,@(unless (null lex) + `((push ',op-name *identifiers*))) + (setf (gethash ,(string op-name) *operations*) + (lambda (,out-stream ,@args) + ,@(mapcar #'(lambda (group) (expand-group group out-stream + :indent indent)) + (group-by-syntax 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 +;;; DONE: Better yet, generate the asm code directly from ;;; the stack op documentation (this seems easily doable) ;;; Hopefully these two are done, need testing... @@ -193,10 +192,10 @@ (rbx rcx -- (:shr rbx cl))) (defop "|" () - (rbx rcx -- (:or rbx cl))) + (rbx rax -- (:or rbx rax))) (defop & () - (rbx rcx -- (:and rbx cl))) + (rbx rax -- (:and rbx rax))) (defop dump () "pop rdi" |