aboutsummaryrefslogtreecommitdiff
path: root/tools/stack_machine_instruction.h
diff options
context:
space:
mode:
authorWojciech Kosior <kwojtus@protonmail.com>2020-10-08 19:18:43 +0200
committerWojciech Kosior <kwojtus@protonmail.com>2020-10-08 19:18:43 +0200
commit5e04a9626e2986fc40825d15cb09a274223381e9 (patch)
treea52a96fa585247145cb521b9c6f7fe7946ba7997 /tools/stack_machine_instruction.h
parent63a2cced4238af7d171e0b8807d887c435b4656b (diff)
downloadAGH-engineering-thesis-5e04a9626e2986fc40825d15cb09a274223381e9.tar.gz
AGH-engineering-thesis-5e04a9626e2986fc40825d15cb09a274223381e9.zip
translate webasm block of instructions + put instruction names as comments in generated code
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 */