projects
/
rrq
/
rrqforth.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bug fix ALLOT
[rrq/rrqforth.git]
/
logic.asm
diff --git
a/logic.asm
b/logic.asm
index 26963322797442ab1ddbb5a0afd485401b247301..56dd2db88254b8fbf190d3a69ddab35d64d8df28 100644
(file)
--- a/
logic.asm
+++ b/
logic.asm
@@
-27,17
+27,15
@@
not qword [rsp]
next
not qword [rsp]
next
- WORD p_false, 'FALSE',
fasm
+ WORD p_false, 'FALSE',
dovalue
;; ( -- 0 )
;; Push a false flag, 0.
;; ( -- 0 )
;; Push a false flag, 0.
- push qword 0
- next
+ dq 0
- WORD p_true, 'TRUE',
fasm
+ WORD p_true, 'TRUE',
dovalue
;; ( -- true )
;; Return a true flag, -1. (non-zero)
;; ( -- true )
;; Return a true flag, -1. (non-zero)
- push qword -1
- next
+ dq -1
pop_false_next:
mov qword [rsp],0
pop_false_next:
mov qword [rsp],0
@@
-54,18
+52,15
@@
pop_true_next:
pop rax
pop rbx
cmp qword [rsp],rbx
pop rax
pop rbx
cmp qword [rsp],rbx
- jl p
_within_no
t
+ jl p
op_false_nex
t
cmp qword [rsp],rax
cmp qword [rsp],rax
- jge p_within_not
- not rcx
-p_within_not:
- next
-
+ jge pop_false_next
+ jmp pop_true_next
+
WORD p_0less, '0<',fasm
;; ( n -- flag )
;; flag is true (non-zero) if and only if n is less than zero.
WORD p_0less, '0<',fasm
;; ( n -- flag )
;; flag is true (non-zero) if and only if n is less than zero.
- pop rax
- cmp rax,qword [rsp]
+ cmp qword [rsp],0
jl pop_true_next
jmp pop_false_next
jl pop_true_next
jmp pop_false_next
@@
-80,7
+75,7
@@
p_within_not:
;; ( n1 n2 -- flag )
;; flag is true if and only if n1 is less than n2.
pop rax
;; ( n1 n2 -- flag )
;; flag is true if and only if n1 is less than n2.
pop rax
- cmp
rax,qword [rsp]
+ cmp
qword [rsp],rax
jl pop_true_next
jmp pop_false_next
jl pop_true_next
jmp pop_false_next
@@
-88,7
+83,7
@@
p_within_not:
;; ( n1 n2 -- flag )
;; flag is true if and only if n1 is less than n2.
pop rax
;; ( n1 n2 -- flag )
;; flag is true if and only if n1 is less than n2.
pop rax
- cmp
rax,qword [rsp]
+ cmp
qword [rsp],rax
jle pop_true_next
jmp pop_false_next
jle pop_true_next
jmp pop_false_next
@@
-97,7
+92,7
@@
p_within_not:
;; flag is true if and only if x1 is bit-for-bit the same as
;; x2.
pop rax
;; flag is true if and only if x1 is bit-for-bit the same as
;; x2.
pop rax
- cmp
rax,qword [rsp]
+ cmp
qword [rsp],rax
je pop_true_next
jmp pop_false_next
je pop_true_next
jmp pop_false_next
@@
-106,7
+101,7
@@
p_within_not:
;; flag is true if and only if x1 is bit-for-bit the same as
;; x2.
pop rax
;; flag is true if and only if x1 is bit-for-bit the same as
;; x2.
pop rax
- cmp qword [rsp],
rax
+ cmp qword [rsp],rax
jne pop_true_next
jmp pop_false_next
jne pop_true_next
jmp pop_false_next
@@
-114,7
+109,7
@@
p_within_not:
;; ( n1 n2 -- flag )
;; flag is true if and only if n1 is greater than n2.
pop rax
;; ( n1 n2 -- flag )
;; flag is true if and only if n1 is greater than n2.
pop rax
- cmp
rax,qword [rsp]
+ cmp
qword [rsp],rax
jg pop_true_next
jmp pop_false_next
jg pop_true_next
jmp pop_false_next
@@
-122,6
+117,6
@@
p_within_not:
;; ( n1 n2 -- flag )
;; flag is true if and only if n1 is greater than n2.
pop rax
;; ( n1 n2 -- flag )
;; flag is true if and only if n1 is greater than n2.
pop rax
- cmp
rax,qword [rsp]
+ cmp
qword [rsp],rax
jge pop_true_next
jmp pop_false_next
jge pop_true_next
jmp pop_false_next