added bit shifts (<< >>), bitand (&), bitor (|), rot, over, swap ops
This commit is contained in:
@@ -147,6 +147,58 @@
|
||||
(:write ("pop ~a" (aref call-regs i)))
|
||||
(finally (:write "syscall"))))
|
||||
|
||||
;;; (rbx rax -- rbx rax rbx)
|
||||
(defop üst ()
|
||||
"pop rax"
|
||||
"pop rbx"
|
||||
"push rbx"
|
||||
"push rax"
|
||||
"push rbx")
|
||||
|
||||
;;; (rcx rbx rax -- rbx rax rcx)
|
||||
(defop rot ()
|
||||
"pop rax"
|
||||
"pop rbx"
|
||||
"pop rcx"
|
||||
"push rbx"
|
||||
"push rax"
|
||||
"push rcx")
|
||||
|
||||
;;; (rbx rax -- rax rbx)
|
||||
(defop değiş ()
|
||||
"pop rax"
|
||||
"pop rbx"
|
||||
"push rax"
|
||||
"push rbx")
|
||||
|
||||
;;; (rbx rcx -- (:shl rbx cl))
|
||||
(defop << ()
|
||||
"pop rcx"
|
||||
"pop rbx"
|
||||
"shl rbx, cl"
|
||||
"push rbx")
|
||||
|
||||
;;; (rbx rcx -- (:shr rbx cl))
|
||||
(defop >> ()
|
||||
"pop rcx"
|
||||
"pop rbx"
|
||||
"shr rbx, cl"
|
||||
"push rbx")
|
||||
|
||||
;;; (rbx rcx -- (:or rbx cl))
|
||||
(defop "|" ()
|
||||
"pop rax"
|
||||
"pop rbx"
|
||||
"or rbx, rax"
|
||||
"push rbx")
|
||||
|
||||
;;; (rbx rcx -- (:and rbx cl))
|
||||
(defop & ()
|
||||
"pop rax"
|
||||
"pop rbx"
|
||||
"and rbx, rax"
|
||||
"push rbx")
|
||||
|
||||
(defun gen-header (op str)
|
||||
(format str " ;; -- ~s --~%" op))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user