bug fix for lpar comment
[rrq/rrqforth.git] / machine.asm
index 7f65bbeb130390cd6f96121a65be3046275e5f6f..f1fb51c9015e4dc7533df6596915982f36cbf87d 100644 (file)
@@ -73,6 +73,7 @@ macro popr x {
 ;;; referring to the doer field of the called word.
 
 macro next {
+       call p_calltrace_DFA
        lodsq                   ; mov rax, [rsi] + add rsi,8
        jmp qword [rax]         ; goto code of that FORTH word (64 bit jump)
 }
@@ -97,9 +98,12 @@ macro ENDFORTH {
 ;;; ========================================
 ;;; The DOFORTH lays out a single FORTH call
 
-macro DOFORTH label {
+macro DOFORTH [label] {
+common
        FORTH
+forward
        dq label
+common
        ENDFORTH
 }
 
@@ -234,3 +238,15 @@ macro BRANCH zero,label {
        end if
        dq label - $ - 8
 }
+
+;;; ========================================
+;;; The STREAM macro starts an in-core FORTH STREAM area. See WORD
+;;; STREAM for details.
+       macro STREAM endlabel {
+       local datastart
+       dq $+32
+       dq -1
+       dq endlabel - datastart
+       dq 0
+datastart:
+       }