summaryrefslogtreecommitdiff
path: root/py/emitnative.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-10-22 23:45:37 +0100
committerDamien George <damien.p.george@gmail.com>2015-11-13 12:49:18 +0000
commit3a3db4dcf0400cffef860f61a84979cb1f7a7541 (patch)
treecfdcb6931cb120f2f993e10e7db6dc14f40b1ded /py/emitnative.c
parent9b7f583b0ca37ee87e5fb82e2d65fcd96a609b2f (diff)
py: Put all bytecode state (arg count, etc) in bytecode.
Diffstat (limited to 'py/emitnative.c')
-rw-r--r--py/emitnative.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/py/emitnative.c b/py/emitnative.c
index 1fcc84338..99eac7925 100644
--- a/py/emitnative.c
+++ b/py/emitnative.c
@@ -824,6 +824,10 @@ STATIC void emit_native_end_pass(emit_t *emit) {
if (!emit->do_viper_types) {
emit->prelude_offset = ASM_GET_CODE_POS(emit->as);
+ ASM_DATA(emit->as, 1, emit->scope->scope_flags);
+ ASM_DATA(emit->as, 1, emit->scope->num_pos_args);
+ ASM_DATA(emit->as, 1, emit->scope->num_kwonly_args);
+ ASM_DATA(emit->as, 1, emit->scope->num_def_pos_args);
ASM_ALIGN(emit->as, ASM_WORD_SIZE);
// write argument names as qstr objects
@@ -874,8 +878,7 @@ STATIC void emit_native_end_pass(emit_t *emit) {
mp_emit_glue_assign_native(emit->scope->raw_code,
emit->do_viper_types ? MP_CODE_NATIVE_VIPER : MP_CODE_NATIVE_PY,
- f, f_len, emit->scope->num_pos_args, emit->scope->num_kwonly_args,
- emit->scope->scope_flags, type_sig);
+ f, f_len, emit->scope->num_pos_args, emit->scope->scope_flags, type_sig);
}
}