added .TEMP value rendering
[rrq/rrqforth.git] / machine.asm
index 6a133a170503eef5ea54178e484d115d39904ae2..31db9ce305a77eec54ffc77f7834ac780cd838db 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
 }
 
@@ -229,6 +233,8 @@ dataend:
 macro BRANCH zero,label {
        if zero in <0>
            dq p_zero_branch
+       else if zero in <1>
+           dq p_true_branch
        else
            dq p_branch
        end if