;;; Words for stack manipulations
+ WORD p_dsp,'D[n]',fasm
+ ;; ( n -- a )
+ ;; Push the address of the n:th cell below n onto the stack
+ pop rax
+ shl rax,3
+ add rax,rsp
+ push rax
+ next
+
WORD p_depth,'DEPTH',fasm
;; ( -- v )
;; Push stack depth (before push)
;;; ========================================
;;; Return stack operations
- WORD p_ltR, '>R',fasm
+ WORD p_gtR, '>R',fasm
;; ( x -- ) ( R: -- x )
;; Move x to the return stack.
pop rax
;; Copy x from the return stack to the data stack.
push qword [rbp]
next
+
+ WORD p_rbp,'RSP',fasm
+ ;; Push the return stack pointer to the data stack
+ push rbp
+ next
+
+ WORD p_rbpn,'R[n]',fasm
+ ;; ( n -- a )
+ ;; push the address of the n:th cell on the return stack
+ mov rax,qword [rsp]
+ shl rax,3
+ add rax,rbp
+ mov qword [rsp],rax
+ next