summaryrefslogtreecommitdiff
path: root/jefs.s
diff options
context:
space:
mode:
Diffstat (limited to 'jefs.s')
-rw-r--r--jefs.s7
1 files changed, 7 insertions, 0 deletions
diff --git a/jefs.s b/jefs.s
index 7684069..5f27236 100644
--- a/jefs.s
+++ b/jefs.s
@@ -83,6 +83,7 @@ global _start
_start:
; init
mov r14, wstack ; point SP to top
+ mov qword [rs0], rsp
call interpret
mov rdi, 0
@@ -215,6 +216,10 @@ defword "sp", _sp, 0
pspush r14
ret
+defword "rp", _rp, 0 ; would be called 'rsp' but that is literally just the name of a register
+ pspush rsp
+ ret
+
defword "parse", parse, 0
mov r13, qword [to_in]
add r13, qword [tib]
@@ -1140,6 +1145,7 @@ defword "HEREDUMP", heredump, 0
ret
; }}}
+; maybe some of these should be constants?
defvar "tib", tib, 0, initfile
defvar "#tib", num_tib, 0, initlen
defvar ">in", to_in, 0, 0
@@ -1147,6 +1153,7 @@ defvar "state", state, 0, interpreting
defvar "here", here, 0, umem
defvar "s0", s0, 0, wstack
defvar "h0", h0, 0, umem ; beginning of user memory area
+defvar "rs0", rs0, 0, 0
defvar "hend", hend, 0, umem_e ; ending of user memory area
defvar "base", base, 0, 10
defvar "error", error, 0, 0