summaryrefslogtreecommitdiff
path: root/py/compile.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2018-05-22 21:31:56 +1000
committerDamien George <damien.p.george@gmail.com>2018-05-23 00:22:55 +1000
commita4941a8ba49e3503f1a87f318b79b137a70b803b (patch)
treec154376ee020eb2c5c95db1687a0c0cbaad86f87 /py/compile.c
parentd298013939b38fb05961cf05c03ac3aef6a4f00c (diff)
py/emit: Combine load/store/delete subscr into one emit function.
Reduces code size by: bare-arm: -8 minimal x86: -104 unix x64: -312 unix nanbox: -120 stm32: -60 cc3200: -16 esp8266: -92 esp32: -24
Diffstat (limited to 'py/compile.c')
-rw-r--r--py/compile.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/py/compile.c b/py/compile.c
index 3d443c6d8..6aba2b896 100644
--- a/py/compile.c
+++ b/py/compile.c
@@ -366,14 +366,14 @@ STATIC void c_assign_atom_expr(compiler_t *comp, mp_parse_node_struct_t *pns, as
if (MP_PARSE_NODE_STRUCT_KIND(pns1) == PN_trailer_bracket) {
if (assign_kind == ASSIGN_AUG_STORE) {
EMIT(rot_three);
- EMIT(store_subscr);
+ EMIT_ARG(subscr, MP_EMIT_SUBSCR_STORE);
} else {
compile_node(comp, pns1->nodes[0]);
if (assign_kind == ASSIGN_AUG_LOAD) {
EMIT(dup_top_two);
- EMIT(load_subscr);
+ EMIT_ARG(subscr, MP_EMIT_SUBSCR_LOAD);
} else {
- EMIT(store_subscr);
+ EMIT_ARG(subscr, MP_EMIT_SUBSCR_STORE);
}
}
return;
@@ -884,7 +884,7 @@ STATIC void c_del_stmt(compiler_t *comp, mp_parse_node_t pn) {
}
if (MP_PARSE_NODE_STRUCT_KIND(pns1) == PN_trailer_bracket) {
compile_node(comp, pns1->nodes[0]);
- EMIT(delete_subscr);
+ EMIT_ARG(subscr, MP_EMIT_SUBSCR_DELETE);
} else if (MP_PARSE_NODE_STRUCT_KIND(pns1) == PN_trailer_period) {
assert(MP_PARSE_NODE_IS_ID(pns1->nodes[0]));
EMIT_ARG(delete_attr, MP_PARSE_NODE_LEAF_ARG(pns1->nodes[0]));
@@ -2536,7 +2536,7 @@ STATIC void compile_trailer_paren(compiler_t *comp, mp_parse_node_struct_t *pns)
STATIC void compile_trailer_bracket(compiler_t *comp, mp_parse_node_struct_t *pns) {
// object who's index we want is on top of stack
compile_node(comp, pns->nodes[0]); // the index
- EMIT(load_subscr);
+ EMIT_ARG(subscr, MP_EMIT_SUBSCR_LOAD);
}
STATIC void compile_trailer_period(compiler_t *comp, mp_parse_node_struct_t *pns) {