aboutsummaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
authorDamien George2018-02-14 18:41:17 +1100
committerDamien George2018-02-14 18:41:17 +1100
commit5604b710c2490e2a7cfd1bac6cd60fc2c8527a37 (patch)
treed5c5aaa6ccc48dbf9bce22c6a66d369fd9b61c2c /py
parente98ff40604170eb231225a4285d9ef740b8b9501 (diff)
py/emitglue: When assigning bytecode only pass bytecode len if needed.
Most embedded targets will have this bit of the code disabled, saving a small amount of code space.
Diffstat (limited to 'py')
-rw-r--r--py/emitbc.c2
-rw-r--r--py/emitglue.c5
-rw-r--r--py/emitglue.h5
-rw-r--r--py/persistentcode.c6
4 files changed, 15 insertions, 3 deletions
diff --git a/py/emitbc.c b/py/emitbc.c
index 5e7fa623a..32e833000 100644
--- a/py/emitbc.c
+++ b/py/emitbc.c
@@ -437,7 +437,9 @@ void mp_emit_bc_end_pass(emit_t *emit) {
} else if (emit->pass == MP_PASS_EMIT) {
mp_emit_glue_assign_bytecode(emit->scope->raw_code, emit->code_base,
+ #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS
emit->code_info_size + emit->bytecode_size,
+ #endif
emit->const_table,
#if MICROPY_PERSISTENT_CODE_SAVE
emit->ct_cur_obj, emit->ct_cur_raw_code,
diff --git a/py/emitglue.c b/py/emitglue.c
index d2add988f..74bf8ddca 100644
--- a/py/emitglue.c
+++ b/py/emitglue.c
@@ -55,7 +55,10 @@ mp_raw_code_t *mp_emit_glue_new_raw_code(void) {
return rc;
}
-void mp_emit_glue_assign_bytecode(mp_raw_code_t *rc, const byte *code, mp_uint_t len,
+void mp_emit_glue_assign_bytecode(mp_raw_code_t *rc, const byte *code,
+ #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS
+ size_t len,
+ #endif
const mp_uint_t *const_table,
#if MICROPY_PERSISTENT_CODE_SAVE
uint16_t n_obj, uint16_t n_raw_code,
diff --git a/py/emitglue.h b/py/emitglue.h
index f2a48c5e5..0830a0d5c 100644
--- a/py/emitglue.h
+++ b/py/emitglue.h
@@ -63,7 +63,10 @@ typedef struct _mp_raw_code_t {
mp_raw_code_t *mp_emit_glue_new_raw_code(void);
-void mp_emit_glue_assign_bytecode(mp_raw_code_t *rc, const byte *code, mp_uint_t len,
+void mp_emit_glue_assign_bytecode(mp_raw_code_t *rc, const byte *code,
+ #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS
+ size_t len,
+ #endif
const mp_uint_t *const_table,
#if MICROPY_PERSISTENT_CODE_SAVE
uint16_t n_obj, uint16_t n_raw_code,
diff --git a/py/persistentcode.c b/py/persistentcode.c
index e0bb8f1d6..7113b0dc2 100644
--- a/py/persistentcode.c
+++ b/py/persistentcode.c
@@ -200,7 +200,11 @@ STATIC mp_raw_code_t *load_raw_code(mp_reader_t *reader) {
// create raw_code and return it
mp_raw_code_t *rc = mp_emit_glue_new_raw_code();
- mp_emit_glue_assign_bytecode(rc, bytecode, bc_len, const_table,
+ mp_emit_glue_assign_bytecode(rc, bytecode,
+ #if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS
+ bc_len,
+ #endif
+ const_table,
#if MICROPY_PERSISTENT_CODE_SAVE
n_obj, n_raw_code,
#endif