diff options
Diffstat (limited to 'tools/stack_machine_instruction.h')
-rw-r--r-- | tools/stack_machine_instruction.h | 7 |
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 */ |