diff options
| author | Damien <damien.p.george@gmail.com> | 2013-10-05 14:17:09 +0100 |
|---|---|---|
| committer | Damien <damien.p.george@gmail.com> | 2013-10-05 14:17:09 +0100 |
| commit | 4b03e77d4a0ec46467fe501636e6eeeb79e03ab9 (patch) | |
| tree | 063284dc5a1295976fc22a715771db5199cfaea1 /py/emitcpy.c | |
| parent | 054848a1b8aa7e52f3c70e86cc4dc56b565ea830 (diff) | |
Factorise EMIT_COMMON calls, mostly into emit_pass1.
Diffstat (limited to 'py/emitcpy.c')
| -rw-r--r-- | py/emitcpy.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/py/emitcpy.c b/py/emitcpy.c index c3dc20496..0a3149fcd 100644 --- a/py/emitcpy.c +++ b/py/emitcpy.c @@ -29,6 +29,10 @@ struct _emit_t { int *label_offsets; }; +// forward declarations +static const emit_method_table_t emit_cpy_method_table; +static void emit_cpy_load_const_verbatim_quoted_str(emit_t *emit, qstr qstr, bool bytes); + static void emit_cpy_set_native_types(emit_t *emit, bool do_native_types) { } @@ -63,6 +67,18 @@ static void emit_cpy_set_stack_size(emit_t *emit, int size) { emit->stack_size = size; } +static void emit_cpy_load_id(emit_t *emit, qstr qstr) { + emit_common_load_id(emit, &emit_cpy_method_table, emit->scope, qstr); +} + +static void emit_cpy_store_id(emit_t *emit, qstr qstr) { + emit_common_store_id(emit, &emit_cpy_method_table, emit->scope, qstr); +} + +static void emit_cpy_delete_id(emit_t *emit, qstr qstr) { + emit_common_delete_id(emit, &emit_cpy_method_table, emit->scope, qstr); +} + static void emit_pre(emit_t *emit, int stack_size_delta, int byte_code_size) { emit->stack_size += stack_size_delta; if (emit->stack_size > emit->scope->stack_size) { @@ -156,7 +172,6 @@ static void emit_cpy_load_const_id(emit_t *emit, qstr qstr) { } } -static void emit_cpy_load_const_verbatim_quoted_str(emit_t *emit, qstr qstr, bool bytes); static void emit_cpy_load_const_str(emit_t *emit, qstr qstr, bool bytes) { emit_pre(emit, 1, 3); if (emit->pass == PASS_3) { @@ -818,6 +833,10 @@ static const emit_method_table_t emit_cpy_method_table = { emit_cpy_get_stack_size, emit_cpy_set_stack_size, + emit_cpy_load_id, + emit_cpy_store_id, + emit_cpy_delete_id, + emit_cpy_label_assign, emit_cpy_import_name, emit_cpy_import_from, |
