Fix bug in web +!.

This commit is contained in:
Brad Nelson
2022-07-17 01:19:00 -07:00
parent f0fea679d5
commit 4789a2a3a2
2 changed files with 3 additions and 1 deletions

View File

@ -41,7 +41,7 @@
X("2/", TWOSLASH, tos = tos >> 1) \
X("4*", FOURSTAR, tos = tos << 2) \
X("4/", FOURSLASH, tos = tos >> 2) \
X("+!", PLUSSTORE, *(cell_t *) tos += *sp--; DROP) \
X("+!", PLUSSTORE, *((cell_t *) tos) += *sp--; DROP) \
X("cell+", CELLPLUS, tos += sizeof(cell_t)) \
Y(cells, tos *= sizeof(cell_t)) \
X("cell/", CELLSLASH, DUP; tos = sizeof(cell_t); DUP; *sp = 1; SSMOD_FUNC; NIP) \

View File

@ -43,6 +43,8 @@ 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, '*((cell_t *) tos) += *sp--',
'i32[tos>>2] = ((i32[tos>>2]|0) + (i32[sp>>2]|0))|0; --sp');
cases = ReplaceAll(cases, ' -tos', ' (-tos)|0');
cases = ReplaceAll(cases, '++tos', 'tos = (tos + 1)|0');
cases = ReplaceAll(cases, '--tos', 'tos = (tos - 1)|0');