summaryrefslogtreecommitdiff
path: root/py/objfun.c
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2024-02-16 17:09:41 +1100
committerDamien George <damien@micropython.org>2024-02-20 10:50:03 +1100
commit648a7578da21cc7ddb4046fc59891144e797b983 (patch)
tree86563f21548b989781ae63a7345717d5c551c66e /py/objfun.c
parent971617196644775905fd821c39c6a7771b63dbaf (diff)
py/objfun: Make mp_obj_new_fun_native/mp_obj_new_fun_asm static-inline.
To reduce code size, since they are only used once by py/emitglue.c. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'py/objfun.c')
-rw-r--r--py/objfun.c29
1 files changed, 2 insertions, 27 deletions
diff --git a/py/objfun.c b/py/objfun.c
index 930d0ccdf..ba0ba3706 100644
--- a/py/objfun.c
+++ b/py/objfun.c
@@ -137,10 +137,6 @@ STATIC qstr mp_obj_code_get_name(const mp_obj_fun_bc_t *fun, const byte *code_in
return name;
}
-#if MICROPY_EMIT_NATIVE
-STATIC const mp_obj_type_t mp_type_fun_native;
-#endif
-
qstr mp_obj_fun_get_name(mp_const_obj_t fun_in) {
const mp_obj_fun_bc_t *fun = MP_OBJ_TO_PTR(fun_in);
#if MICROPY_EMIT_NATIVE
@@ -420,7 +416,7 @@ STATIC mp_obj_t fun_native_call(mp_obj_t self_in, size_t n_args, size_t n_kw, co
#define FUN_BC_TYPE_ATTR
#endif
-STATIC MP_DEFINE_CONST_OBJ_TYPE(
+MP_DEFINE_CONST_OBJ_TYPE(
mp_type_fun_native,
MP_QSTR_function,
MP_TYPE_FLAG_BINDS_SELF,
@@ -429,12 +425,6 @@ STATIC MP_DEFINE_CONST_OBJ_TYPE(
call, fun_native_call
);
-mp_obj_t mp_obj_new_fun_native(const mp_obj_t *def_args, const void *fun_data, const mp_module_context_t *mc, struct _mp_raw_code_t *const *child_table) {
- mp_obj_fun_bc_t *o = MP_OBJ_TO_PTR(mp_obj_new_fun_bc(def_args, (const byte *)fun_data, mc, child_table));
- o->base.type = &mp_type_fun_native;
- return MP_OBJ_FROM_PTR(o);
-}
-
#endif // MICROPY_EMIT_NATIVE
/******************************************************************************/
@@ -442,13 +432,6 @@ mp_obj_t mp_obj_new_fun_native(const mp_obj_t *def_args, const void *fun_data, c
#if MICROPY_EMIT_INLINE_ASM
-typedef struct _mp_obj_fun_asm_t {
- mp_obj_base_t base;
- size_t n_args;
- const void *fun_data; // GC must be able to trace this pointer
- mp_uint_t type_sig;
-} mp_obj_fun_asm_t;
-
typedef mp_uint_t (*inline_asm_fun_0_t)(void);
typedef mp_uint_t (*inline_asm_fun_1_t)(mp_uint_t);
typedef mp_uint_t (*inline_asm_fun_2_t)(mp_uint_t, mp_uint_t);
@@ -529,19 +512,11 @@ STATIC mp_obj_t fun_asm_call(mp_obj_t self_in, size_t n_args, size_t n_kw, const
return mp_native_to_obj(ret, self->type_sig);
}
-STATIC MP_DEFINE_CONST_OBJ_TYPE(
+MP_DEFINE_CONST_OBJ_TYPE(
mp_type_fun_asm,
MP_QSTR_function,
MP_TYPE_FLAG_BINDS_SELF,
call, fun_asm_call
);
-mp_obj_t mp_obj_new_fun_asm(size_t n_args, const void *fun_data, mp_uint_t type_sig) {
- mp_obj_fun_asm_t *o = mp_obj_malloc(mp_obj_fun_asm_t, &mp_type_fun_asm);
- o->n_args = n_args;
- o->fun_data = fun_data;
- o->type_sig = type_sig;
- return MP_OBJ_FROM_PTR(o);
-}
-
#endif // MICROPY_EMIT_INLINE_ASM