consolidatation
[rrq/rrqforth.git] / stack.asm
index 32db5aef859f3734a55e32bd854ee68722a27cfd..5b6910b5cb3bef019f7e10336ca62a4e05194042 100644 (file)
--- a/stack.asm
+++ b/stack.asm
@@ -119,9 +119,9 @@ p_roll_eq:
        push qword [rsp+rax]
        next
 
-       WORD w6.2.2300, 'TUCK',fasm
+       WORD p_tuck, 'TUCK',fasm
        ;; ( x1 x2 -- x2 x1 x2 )
-       ;; insert the top stack value into below second stack value.
+       ;; copy the top stack value into below second stack value.
        pop rax
        pop rbx
        push rax
@@ -132,7 +132,7 @@ p_roll_eq:
 ;;; ========================================
 ;;; Return stack operations
 
-       WORD p_ltR, '>R',fasm
+       WORD p_gtR, '>R',fasm
        ;; ( x -- ) ( R: -- x )
        ;; Move x to the return stack.
        pop rax
@@ -151,3 +151,12 @@ p_roll_eq:
        ;; Copy x from the return stack to the data stack.
        push qword [rbp]
        next
+
+       WORD p_rsp,'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