summaryrefslogtreecommitdiffstatshomepage
path: root/py/emitnative.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-03-26 14:42:40 +0000
committerDamien George <damien.p.george@gmail.com>2015-03-26 16:52:45 +0000
commit542bd6b4a1ead90fde42f24d01c82580f9d048de (patch)
tree1dbd32279733ecf77d1ed8c59cc660d65d16fc74 /py/emitnative.c
parent760a6eca9bfb9ca3b3b6c98b79040ac3262bd03f (diff)
downloadmicropython-542bd6b4a1ead90fde42f24d01c82580f9d048de.tar.gz
micropython-542bd6b4a1ead90fde42f24d01c82580f9d048de.zip
py, compiler: Refactor load/store/delete_id logic to reduce code size.
Saves around 230 bytes on Thumb2 and 750 bytes on x86.
Diffstat (limited to 'py/emitnative.c')
-rw-r--r--py/emitnative.c45
1 files changed, 18 insertions, 27 deletions
diff --git a/py/emitnative.c b/py/emitnative.c
index dcf6822ffc..d16b919dc1 100644
--- a/py/emitnative.c
+++ b/py/emitnative.c
@@ -1051,18 +1051,6 @@ STATIC void emit_get_stack_pointer_to_reg_for_push(emit_t *emit, mp_uint_t reg_d
adjust_stack(emit, n_push);
}
-STATIC void emit_native_load_id(emit_t *emit, qstr qst) {
- emit_common_load_id(emit, &EXPORT_FUN(method_table), emit->scope, qst);
-}
-
-STATIC void emit_native_store_id(emit_t *emit, qstr qst) {
- emit_common_store_id(emit, &EXPORT_FUN(method_table), emit->scope, qst);
-}
-
-STATIC void emit_native_delete_id(emit_t *emit, qstr qst) {
- emit_common_delete_id(emit, &EXPORT_FUN(method_table), emit->scope, qst);
-}
-
STATIC void emit_native_label_assign(emit_t *emit, mp_uint_t l) {
DEBUG_printf("label_assign(" UINT_FMT ")\n", l);
emit_native_pre(emit);
@@ -2283,9 +2271,24 @@ const emit_method_table_t EXPORT_FUN(method_table) = {
emit_native_adjust_stack_size,
emit_native_set_source_line,
- emit_native_load_id,
- emit_native_store_id,
- emit_native_delete_id,
+ {
+ emit_native_load_fast,
+ emit_native_load_deref,
+ emit_native_load_name,
+ emit_native_load_global,
+ },
+ {
+ emit_native_store_fast,
+ emit_native_store_deref,
+ emit_native_store_name,
+ emit_native_store_global,
+ },
+ {
+ emit_native_delete_fast,
+ emit_native_delete_deref,
+ emit_native_delete_name,
+ emit_native_delete_global,
+ },
emit_native_label_assign,
emit_native_import_name,
@@ -2296,24 +2299,12 @@ const emit_method_table_t EXPORT_FUN(method_table) = {
emit_native_load_const_str,
emit_native_load_const_obj,
emit_native_load_null,
- emit_native_load_fast,
- emit_native_load_deref,
- emit_native_load_name,
- emit_native_load_global,
emit_native_load_attr,
emit_native_load_method,
emit_native_load_build_class,
emit_native_load_subscr,
- emit_native_store_fast,
- emit_native_store_deref,
- emit_native_store_name,
- emit_native_store_global,
emit_native_store_attr,
emit_native_store_subscr,
- emit_native_delete_fast,
- emit_native_delete_deref,
- emit_native_delete_name,
- emit_native_delete_global,
emit_native_delete_attr,
emit_native_delete_subscr,
emit_native_dup_top,