summaryrefslogtreecommitdiffstatshomepage
path: root/py/emitbc.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/emitbc.c')
-rw-r--r--py/emitbc.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/py/emitbc.c b/py/emitbc.c
index eeeb2b749d..4cfd88ed4f 100644
--- a/py/emitbc.c
+++ b/py/emitbc.c
@@ -32,6 +32,9 @@ struct _emit_t {
byte dummy_data[8];
};
+// forward declaration
+static const emit_method_table_t emit_bc_method_table;
+
uint emit_bc_get_code_size(emit_t* emit) {
return emit->code_size;
}
@@ -150,6 +153,18 @@ static void emit_bc_set_stack_size(emit_t *emit, int size) {
emit->stack_size = size;
}
+static void emit_bc_load_id(emit_t *emit, qstr qstr) {
+ emit_common_load_id(emit, &emit_bc_method_table, emit->scope, qstr);
+}
+
+static void emit_bc_store_id(emit_t *emit, qstr qstr) {
+ emit_common_store_id(emit, &emit_bc_method_table, emit->scope, qstr);
+}
+
+static void emit_bc_delete_id(emit_t *emit, qstr qstr) {
+ emit_common_delete_id(emit, &emit_bc_method_table, emit->scope, qstr);
+}
+
static void emit_pre(emit_t *emit, int stack_size_delta) {
emit->stack_size += stack_size_delta;
if (emit->stack_size > emit->scope->stack_size) {
@@ -665,6 +680,10 @@ static const emit_method_table_t emit_bc_method_table = {
emit_bc_get_stack_size,
emit_bc_set_stack_size,
+ emit_bc_load_id,
+ emit_bc_store_id,
+ emit_bc_delete_id,
+
emit_bc_label_assign,
emit_bc_import_name,
emit_bc_import_from,