summaryrefslogtreecommitdiffstatshomepage
path: root/py/emitx64.c
diff options
context:
space:
mode:
authorDamien <damien.p.george@gmail.com>2013-10-05 14:17:09 +0100
committerDamien <damien.p.george@gmail.com>2013-10-05 14:17:09 +0100
commit4b03e77d4a0ec46467fe501636e6eeeb79e03ab9 (patch)
tree063284dc5a1295976fc22a715771db5199cfaea1 /py/emitx64.c
parent054848a1b8aa7e52f3c70e86cc4dc56b565ea830 (diff)
downloadmicropython-4b03e77d4a0ec46467fe501636e6eeeb79e03ab9.tar.gz
micropython-4b03e77d4a0ec46467fe501636e6eeeb79e03ab9.zip
Factorise EMIT_COMMON calls, mostly into emit_pass1.
Diffstat (limited to 'py/emitx64.c')
-rw-r--r--py/emitx64.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/py/emitx64.c b/py/emitx64.c
index 72a0852938..cde98fe457 100644
--- a/py/emitx64.c
+++ b/py/emitx64.c
@@ -53,6 +53,9 @@ struct _emit_t {
bool do_native_types;
};
+// forward declaration
+static const emit_method_table_t emit_x64_method_table;
+
static void emit_x64_set_native_types(emit_t *emit, bool do_native_types) {
emit->do_native_types = do_native_types;
}
@@ -123,6 +126,18 @@ static void emit_x64_set_stack_size(emit_t *emit, int size) {
emit->stack_size = size;
}
+static void emit_x64_load_id(emit_t *emit, qstr qstr) {
+ emit_common_load_id(emit, &emit_x64_method_table, emit->scope, qstr);
+}
+
+static void emit_x64_store_id(emit_t *emit, qstr qstr) {
+ emit_common_store_id(emit, &emit_x64_method_table, emit->scope, qstr);
+}
+
+static void emit_x64_delete_id(emit_t *emit, qstr qstr) {
+ emit_common_delete_id(emit, &emit_x64_method_table, emit->scope, qstr);
+}
+
static void adjust_stack(emit_t *emit, int stack_size_delta) {
emit->stack_size += stack_size_delta;
assert(emit->stack_size >= 0);
@@ -671,6 +686,10 @@ static const emit_method_table_t emit_x64_method_table = {
emit_x64_get_stack_size,
emit_x64_set_stack_size,
+ emit_x64_load_id,
+ emit_x64_store_id,
+ emit_x64_delete_id,
+
emit_x64_label_assign,
emit_x64_import_name,
emit_x64_import_from,