Adding U<.
This commit is contained in:
@ -217,3 +217,12 @@ e: test-/cell
|
||||
-10 cells cell/ -10 =assert
|
||||
-10 cells 1- cell/ -11 =assert
|
||||
;e
|
||||
|
||||
e: test-u<
|
||||
1 3 u< assert
|
||||
3 1 u< 0= assert
|
||||
0 -1 u< assert
|
||||
-1 0 u< 0= assert
|
||||
0 0 u< 0= assert
|
||||
-1 -1 u< 0= assert
|
||||
;e
|
||||
|
||||
@ -227,6 +227,7 @@ e: check-tier0-opcodes
|
||||
out: literal
|
||||
out: 0=
|
||||
out: 0<
|
||||
out: U<
|
||||
out: +
|
||||
out: U/MOD
|
||||
out: */MOD
|
||||
|
||||
@ -106,6 +106,7 @@ typedef struct {
|
||||
YV(internals, NOP, ) \
|
||||
X("0=", ZEQUAL, tos = !tos ? -1 : 0) \
|
||||
X("0<", ZLESS, tos = (tos|0) < 0 ? -1 : 0) \
|
||||
X("U<", ULESS, tos = ((ucell_t) *sp) < ((ucell_t) tos) ? -1 : 0; --sp) \
|
||||
X("+", PLUS, tos += *sp--) \
|
||||
X("U/MOD", USMOD, w = *sp; *sp = (ucell_t) w % (ucell_t) tos; \
|
||||
tos = (ucell_t) w / (ucell_t) tos) \
|
||||
|
||||
@ -43,6 +43,7 @@ cases = ReplaceAll(cases, 'tos *= sizeof(cell_t)', 'tos = (tos * 4)|0');
|
||||
cases = ReplaceAll(cases, 'tos += *sp--', 'tos = (tos + *sp)|0; --sp');
|
||||
cases = ReplaceAll(cases, 'tos = (*sp--) - tos', 'tos = (*sp - tos)|0; --sp');
|
||||
cases = ReplaceAll(cases, 'tos *= *sp--', 'tos = imul(tos, *sp); --sp');
|
||||
cases = ReplaceAll(cases, '((ucell_t) *sp)', '(i32[sp>>2]>>>0)');
|
||||
cases = ReplaceAll(cases, '(((ucell_t) *sp) >> tos)', 'i32[sp>>2]>>>tos');
|
||||
cases = ReplaceAll(cases, '*((cell_t *) tos) += *sp--',
|
||||
'i32[tos>>2] = ((i32[tos>>2]|0) + (i32[sp>>2]|0))|0; --sp');
|
||||
|
||||
Reference in New Issue
Block a user