summaryrefslogtreecommitdiffstatshomepage
path: root/py/compile.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2018-05-19 00:30:42 +1000
committerDamien George <damien.p.george@gmail.com>2018-05-23 00:22:35 +1000
commite686c940525c5b87d02e3dd7bfcdec23cfa996dd (patch)
tree53782e9b79e3a26eb4ec2c5cd1348b0cea351e25 /py/compile.c
parent0a25fff9562e3051d85db9ca773f203620004742 (diff)
downloadmicropython-e686c940525c5b87d02e3dd7bfcdec23cfa996dd.tar.gz
micropython-e686c940525c5b87d02e3dd7bfcdec23cfa996dd.zip
py/emit: Combine yield value and yield-from emit funcs into one.
Reduces code size by: bare-arm: -24 minimal x86: -72 unix x64: -200 unix nanbox: -72 stm32: -52 cc3200: -32 esp8266: -84 esp32: -24
Diffstat (limited to 'py/compile.c')
-rw-r--r--py/compile.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/py/compile.c b/py/compile.c
index 4d985a07fc..743034e57c 100644
--- a/py/compile.c
+++ b/py/compile.c
@@ -1699,7 +1699,7 @@ STATIC void compile_with_stmt(compiler_t *comp, mp_parse_node_struct_t *pns) {
STATIC void compile_yield_from(compiler_t *comp) {
EMIT_ARG(get_iter, false);
EMIT_ARG(load_const_tok, MP_TOKEN_KW_NONE);
- EMIT(yield_from);
+ EMIT_ARG(yield, MP_EMIT_YIELD_FROM);
}
#if MICROPY_PY_ASYNC_AWAIT
@@ -2621,14 +2621,14 @@ STATIC void compile_yield_expr(compiler_t *comp, mp_parse_node_struct_t *pns) {
}
if (MP_PARSE_NODE_IS_NULL(pns->nodes[0])) {
EMIT_ARG(load_const_tok, MP_TOKEN_KW_NONE);
- EMIT(yield_value);
+ EMIT_ARG(yield, MP_EMIT_YIELD_VALUE);
} else if (MP_PARSE_NODE_IS_STRUCT_KIND(pns->nodes[0], PN_yield_arg_from)) {
pns = (mp_parse_node_struct_t*)pns->nodes[0];
compile_node(comp, pns->nodes[0]);
compile_yield_from(comp);
} else {
compile_node(comp, pns->nodes[0]);
- EMIT(yield_value);
+ EMIT_ARG(yield, MP_EMIT_YIELD_VALUE);
}
}
@@ -2862,7 +2862,7 @@ STATIC void compile_scope_comp_iter(compiler_t *comp, mp_parse_node_struct_t *pn
// no more nested if/for; compile inner expression
compile_node(comp, pn_inner_expr);
if (comp->scope_cur->kind == SCOPE_GEN_EXPR) {
- EMIT(yield_value);
+ EMIT_ARG(yield, MP_EMIT_YIELD_VALUE);
EMIT(pop_top);
} else {
EMIT_ARG(store_comp, comp->scope_cur->kind, 4 * for_depth + 5);