aboutsummaryrefslogtreecommitdiff
path: root/tools/stack_machine_instruction.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/stack_machine_instruction.h')
-rw-r--r--tools/stack_machine_instruction.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/tools/stack_machine_instruction.h b/tools/stack_machine_instruction.h
index 1f47c40..15c870b 100644
--- a/tools/stack_machine_instruction.h
+++ b/tools/stack_machine_instruction.h
@@ -23,6 +23,7 @@ struct instruction {
bool address_assigned;
uint16_t encoding;
struct instruction_data data;
+ const char *name;
};
#define NO_DATA ((struct instruction_data) { \
@@ -76,21 +77,21 @@ inline static struct instruction_data ptr_after(struct instruction **val) {
}
int add_instruction(struct instruction **expr, uint16_t encoding,
- struct instruction_data data);
+ struct instruction_data data, const char *name);
/* Define stack machine instructions, that take immediate operands */
#define X(instr, encoding) \
inline static int i_##instr(struct instruction_data data, \
struct instruction **expr) \
{ \
- return add_instruction(expr, encoding, data); \
+ return add_instruction(expr, encoding, data, #instr); \
}
/* Define stack machine instructions, that *don't* take immediate operands */
#define Y(instr, encoding) \
inline static int i_##instr(struct instruction **expr) \
{ \
- return add_instruction(expr, encoding, NO_DATA); \
+ return add_instruction(expr, encoding, NO_DATA, #instr); \
}
X(store, 0x7E00) /* 0111_1110_0xxx_xxxx */