projects
/
rrq
/
rrqforth.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
edit
[rrq/rrqforth.git]
/
compile.asm
diff --git
a/compile.asm
b/compile.asm
index 53dbaecdd9ddb233439e5931984a8bc1e8304883..defb1acaa5dcfc25e59eac9acbe315c216b5c450 100644
(file)
--- a/
compile.asm
+++ b/
compile.asm
@@
-18,7
+18,7
@@
mov qword [rbx+24],rcx ; PFA (length)
pop rsi ; chars* (source)
lea rdi,[rbx+32] ; (dest)
mov qword [rbx+24],rcx ; PFA (length)
pop rsi ; chars* (source)
lea rdi,[rbx+32] ; (dest)
- ;; clear DF
+ cld
p_create_COPY:
movsb
dec rcx
p_create_COPY:
movsb
dec rcx
@@
-60,8
+60,8
@@
p_quote_end:
WORD p_comma,','
;; ( v -- )
;; Put cell value onto the heap and advance "HERE"
WORD p_comma,','
;; ( v -- )
;; Put cell value onto the heap and advance "HERE"
- dq p_here, p_
put, p_literal, 8, p_here, p_put_plus
, p_exit
-
+ dq p_here, p_
literal, 8, p_get_n_increment, p_put
, p_exit
+
WORD p_Ccomma,'C,'
;; ( c -- )
;; Put byte value onto the heap and advance "HERE"
WORD p_Ccomma,'C,'
;; ( c -- )
;; Put byte value onto the heap and advance "HERE"
@@
-193,6
+193,8
@@
p_number_ALPHA:
cmp al,'Z'
jg p_number_alpha
sub al,'A'-10
cmp al,'Z'
jg p_number_alpha
sub al,'A'-10
+ cmp rax,qword [p_base_DFA]
+ jge p_number_BAD
jmp p_number_CONSUME
p_number_alpha:
cmp al,'a'
jmp p_number_CONSUME
p_number_alpha:
cmp al,'a'
@@
-200,6
+202,8
@@
p_number_alpha:
cmp al,'z'
jg p_number_BAD
sub al,'a'-10
cmp al,'z'
jg p_number_BAD
sub al,'a'-10
+ cmp rax,qword [p_base_DFA]
+ jge p_number_BAD
jmp p_number_CONSUME
p_number_BAD:
push qword 0
jmp p_number_CONSUME
p_number_BAD:
push qword 0
@@
-316,9
+320,10
@@
p_evaluate_stream_BAD:
dq 15000
WORD p_open_file,'OPEN-FILE',fasm
dq 15000
WORD p_open_file,'OPEN-FILE',fasm
- ;; ( chaz* -- fd )
+ ;; ( chaz*
n
-- fd )
;; Open the nominated file
pushr rsi
;; Open the nominated file
pushr rsi
+ add rsp,8 ; drop n ... assuming NUL-ended string
push qword 0
push qword 0
DOFORTH sys_open
push qword 0
push qword 0
DOFORTH sys_open
@@
-326,7
+331,7
@@
p_evaluate_stream_BAD:
next
WORD p_load_file,'LOAD-FILE'
next
WORD p_load_file,'LOAD-FILE'
- ;; ( chaz* -- )
+ ;; ( chaz*
n
-- )
dq p_open_file
dq p_dup, p_0less
BRANCH 1,p_load_file_badfile
dq p_open_file
dq p_dup, p_0less
BRANCH 1,p_load_file_badfile