Eliminate tmp.

This commit is contained in:
Brad Nelson
2021-01-04 23:48:23 -08:00
parent b2d1b5d418
commit 11409ce318
2 changed files with 8 additions and 8 deletions

View File

@ -82,8 +82,8 @@ static cell_t parse(cell_t sep, cell_t *ret) {
return len;
}
static cell_t *evaluate1(cell_t *sp, cell_t *call) {
*call = 0;
static cell_t *evaluate1(cell_t *sp) {
cell_t call = 0;
cell_t name;
cell_t len = parse(' ', &name);
cell_t xt = find((const char *) name, len);
@ -91,7 +91,7 @@ static cell_t *evaluate1(cell_t *sp, cell_t *call) {
if (g_sys.state && !(((cell_t *) xt)[-1] & 1)) { // bit 0 of flags is immediate
*g_sys.heap++ = xt;
} else {
*call = xt;
call = xt;
}
} else {
cell_t n;
@ -110,9 +110,10 @@ static cell_t *evaluate1(cell_t *sp, cell_t *call) {
*++sp = name;
*++sp = len;
*++sp = -1;
*call = g_sys.notfound;
call = g_sys.notfound;
}
}
*++sp = call;
return sp;
}
@ -124,7 +125,6 @@ static void ueforth(int argc, char *argv[], void *heap,
register cell_t tos = 0, *ip, w;
dcell_t d;
udcell_t ud;
cell_t tmp;
#define X(name, op, code) create(name, sizeof(name) - 1, name[0] == ';', && op);
PLATFORM_OPCODE_LIST
OPCODE_LIST

View File

@ -72,9 +72,9 @@ typedef uint64_t udcell_t;
X(":", OP_COLON, DUP; DUP; tos = parse(32, sp); \
create((const char *) *sp, tos, 0, && OP_DOCOL); \
g_sys.state = -1; --sp; DROP) \
X("EVALUATE1", OP_EVALUATE1, DUP; sp = evaluate1(sp, &tmp); \
DROP; if (tmp) (w = tmp); \
if (tmp) goto **(void **) w) \
X("EVALUATE1", OP_EVALUATE1, DUP; sp = evaluate1(sp); \
w = *sp; --sp; DROP; \
if (w) goto **(void **) w) \
X("EXIT", OP_EXIT, ip = (void *) *rp; --rp) \
X(";", OP_SEMICOLON, COMMA(g_sys.DOEXIT_XT); g_sys.state = 0) \