summaryrefslogtreecommitdiff
path: root/py/emitnative.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2018-05-22 21:58:25 +1000
committerDamien George <damien.p.george@gmail.com>2018-05-23 00:23:08 +1000
commitd97906ca9a0f1e0728cefb930d458bb8fba3bd17 (patch)
tree136ca8ce2985dbb9d18011054160ccbd112fac50 /py/emitnative.c
parent8a513da5a560e9c6afa5f0a0f8d44c5fb1ed552d (diff)
py/emit: Combine import from/name/star into one emit function.
Change in code size is: bare-arm: +4 minimal x86: -88 unix x64: -456 unix nanbox: -88 stm32: -44 cc3200: +0 esp8266: -104 esp32: +8
Diffstat (limited to 'py/emitnative.c')
-rw-r--r--py/emitnative.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/py/emitnative.c b/py/emitnative.c
index b4a3f987c..e06198bc9 100644
--- a/py/emitnative.c
+++ b/py/emitnative.c
@@ -837,6 +837,16 @@ STATIC void emit_native_import_star(emit_t *emit) {
emit_post(emit);
}
+STATIC void emit_native_import(emit_t *emit, qstr qst, int kind) {
+ if (kind == MP_EMIT_IMPORT_NAME) {
+ emit_native_import_name(emit, qst);
+ } else if (kind == MP_EMIT_IMPORT_FROM) {
+ emit_native_import_from(emit, qst);
+ } else {
+ emit_native_import_star(emit);
+ }
+}
+
STATIC void emit_native_load_const_tok(emit_t *emit, mp_token_kind_t tok) {
DEBUG_printf("load_const_tok(tok=%u)\n", tok);
emit_native_pre(emit);
@@ -2223,9 +2233,7 @@ const emit_method_table_t EXPORT_FUN(method_table) = {
},
emit_native_label_assign,
- emit_native_import_name,
- emit_native_import_from,
- emit_native_import_star,
+ emit_native_import,
emit_native_load_const_tok,
emit_native_load_const_small_int,
emit_native_load_const_str,