diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-01-24 16:20:11 +0200 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-01-24 16:31:20 +0200 |
commit | f46d87a30d09bfa904c2b9769ea52271abb86b0c (patch) | |
tree | f5fb8aa053f3e3e00843b990e0d49da56d1f2dbc /py/emitnative.c | |
parent | 2b2cb7b7f4f467b67082f79053118df78f48e66e (diff) | |
download | micropython-f46d87a30d09bfa904c2b9769ea52271abb86b0c.tar.gz micropython-f46d87a30d09bfa904c2b9769ea52271abb86b0c.zip |
Add support for freeing code emitter objects at the end of compilation.
Diffstat (limited to 'py/emitnative.c')
-rw-r--r-- | py/emitnative.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/py/emitnative.c b/py/emitnative.c index 6fc1742489..ddda90659e 100644 --- a/py/emitnative.c +++ b/py/emitnative.c @@ -146,6 +146,15 @@ emit_t *EXPORT_FUN(new)(uint max_num_labels) { return emit; } +static void emit_native_free(emit_t *emit) { +#if N_X64 + asm_x64_free(emit->as, false); +#elif N_THUMB + asm_thumb_free(emit->as, false); +#endif + m_del_obj(emit_t, emit); +} + static void emit_native_set_viper_types(emit_t *emit, bool do_viper_types) { emit->do_viper_types = do_viper_types; } @@ -1226,6 +1235,8 @@ static void emit_native_yield_from(emit_t *emit) { } const emit_method_table_t EXPORT_FUN(method_table) = { + emit_native_free, + emit_native_set_viper_types, emit_native_start_pass, emit_native_end_pass, |