Added ?DUP.
This commit is contained in:
@ -122,3 +122,10 @@ e: test-empty-string
|
|||||||
: test s" " ;
|
: test s" " ;
|
||||||
test 0 =assert drop
|
test 0 =assert drop
|
||||||
;e
|
;e
|
||||||
|
|
||||||
|
e: test-?dup
|
||||||
|
123 ?dup 123 =assert 123 =assert
|
||||||
|
depth 0 =assert
|
||||||
|
0 ?dup 0 =assert
|
||||||
|
depth 0 =assert
|
||||||
|
;e
|
||||||
|
|||||||
@ -25,6 +25,7 @@
|
|||||||
X("-", MINUS, tos = (*sp--) - tos) \
|
X("-", MINUS, tos = (*sp--) - tos) \
|
||||||
Y(rot, w = sp[-1]; sp[-1] = *sp; *sp = tos; tos = w) \
|
Y(rot, w = sp[-1]; sp[-1] = *sp; *sp = tos; tos = w) \
|
||||||
X("-rot", MROT, w = tos; tos = *sp; *sp = sp[-1]; sp[-1] = w) \
|
X("-rot", MROT, w = tos; tos = *sp; *sp = sp[-1]; sp[-1] = w) \
|
||||||
|
X("?dup", QDUP, if (tos) DUP) \
|
||||||
X("<", LESS, tos = (*sp--) < tos ? -1 : 0) \
|
X("<", LESS, tos = (*sp--) < tos ? -1 : 0) \
|
||||||
X(">", GREATER, tos = (*sp--) > tos ? -1 : 0) \
|
X(">", GREATER, tos = (*sp--) > tos ? -1 : 0) \
|
||||||
X("<=", LESSEQ, tos = (*sp--) <= tos ? -1 : 0) \
|
X("<=", LESSEQ, tos = (*sp--) <= tos ? -1 : 0) \
|
||||||
|
|||||||
@ -152,6 +152,7 @@ e: check-extra-opcodes
|
|||||||
out: -
|
out: -
|
||||||
out: rot
|
out: rot
|
||||||
out: -rot
|
out: -rot
|
||||||
|
out: ?dup
|
||||||
out: <
|
out: <
|
||||||
out: >
|
out: >
|
||||||
out: <=
|
out: <=
|
||||||
|
|||||||
Reference in New Issue
Block a user