summaryrefslogtreecommitdiff
path: root/jefs.s
diff options
context:
space:
mode:
Diffstat (limited to 'jefs.s')
-rw-r--r--jefs.s32
1 files changed, 7 insertions, 25 deletions
diff --git a/jefs.s b/jefs.s
index 0da6e44..ed8030d 100644
--- a/jefs.s
+++ b/jefs.s
@@ -244,11 +244,16 @@ defword "parse", parse, 0
defword "find", find, 0
pspop r10 ; u
pspop r11 ; c-addr
- mov r12, latest
- mov r13, qword [r12]
+ mov r13, qword [latest]
mov r12, r13
.check_smudge:
+ ; TODO fix whatever is going on with PNO and this
+ pspush r12
+ pspush r13
+ pspop r13
+ pspop r12
+
add r13, 8
mov r9b, byte [r13]
test r9b, smudge_mask
@@ -311,26 +316,21 @@ defword "interpret", interpret, 0
ret
.compile:
- ; call dots
pspop r11
cmp r11, false
je .comp_n
; handle immediates
- ; call dots
pspop r15
call twodrop
pspush r15
call dup
- ; call dots
call immediate_q
- ; call dots
pspop r13
cmp r13, true
je .immed_comp
call to_cfa
- ; call dots
call compile_comma
jmp .loop
ret ; unreachable safety RET
@@ -357,7 +357,6 @@ defword "immediate?", immediate_q, 0 ; ( lfa -- flag )
pspush r12
mov r13b, immediate_mask
pspush r13
- ; call dots
call twodrop
pspop r11
test r12b, immediate_mask
@@ -368,7 +367,6 @@ defword "immediate?", immediate_q, 0 ; ( lfa -- flag )
ret
.imm:
- ; call dots
mov r11, true
pspush r11
ret
@@ -1029,22 +1027,6 @@ defword ".s", dots, 0
.space: resq 1
.dmsg: db "DONEDONEYIPPEEEE"
-defword "TESTSTR", teststr, 0
- mov r11, .msg
- pspush r11
- mov r11, 11
- pspush r11
- ret
-.msg: db "test string"
-
-defword "TESTSTR2", teststr2, 0
- mov r11, .msg
- pspush r11
- mov r11, 12
- pspush r11
- ret
-.msg: db "other string"
-
defword "HEREDUMP", heredump, 0
mov rdx, [here]
mov r11, [h0]