Restructure more to allow tiers.

This commit is contained in:
Brad Nelson
2022-07-13 21:31:01 -07:00
parent cef6074851
commit 09fb5b9bb9
18 changed files with 151 additions and 87 deletions

View File

@ -19,8 +19,9 @@
enum {
#define Z(flags, name, op, code) OP_ ## op,
PLATFORM_OPCODE_LIST
EXTRA_OPCODE_LIST
OPCODE_LIST
TIER2_OPCODE_LIST
TIER1_OPCODE_LIST
TIER0_OPCODE_LIST
#undef Z
};
@ -30,8 +31,9 @@ static cell_t *forth_run(cell_t *init_rp) {
name, ((VOC_ ## flags >> 8) & 0xff) | BUILTIN_MARK, sizeof(name) - 1, \
(VOC_ ## flags & 0xff), (void *) OP_ ## op,
PLATFORM_OPCODE_LIST
EXTRA_OPCODE_LIST
OPCODE_LIST
TIER2_OPCODE_LIST
TIER1_OPCODE_LIST
TIER0_OPCODE_LIST
#undef Z
0, 0, 0,
};
@ -51,8 +53,9 @@ work:
switch (*(cell_t *) w & 0xff) {
#define Z(flags, name, op, code) case OP_ ## op: { code; } NEXT;
PLATFORM_OPCODE_LIST
EXTRA_OPCODE_LIST
OPCODE_LIST
TIER2_OPCODE_LIST
TIER1_OPCODE_LIST
TIER0_OPCODE_LIST
#undef Z
}
}

View File

@ -27,8 +27,9 @@
if (*sp < 0) { *sp += tos; tos = b - 1; } else { tos = b; }
#endif
#include "common/opcodes.h"
#include "common/extra_opcodes.h"
#include "common/tier0_opcodes.h"
#include "common/tier1_opcodes.h"
#include "common/tier2_opcodes.h"
#include "common/floats.h"
#include "common/calling.h"
#include "common/calls.h"