diff options
| author | Damien George | 2015-09-23 11:47:01 +0100 |
|---|---|---|
| committer | Damien George | 2015-09-23 11:47:01 +0100 |
| commit | fbcaf0ea18d647adc445dc1029392c2a908cf540 (patch) | |
| tree | a58fc009888d9cfdcb2dd5c07499e848228329fb /py/emitnative.c | |
| parent | e6978a4e26a17ef473e2aad78662d3bf29638578 (diff) | |
py: Slightly simplify compile and emit of star/double-star arguments.
Saves a few bytes of code space and eliminates need for rot_two
bytecode (hence saving RAM and execution time, by a tiny bit).
Diffstat (limited to 'py/emitnative.c')
| -rw-r--r-- | py/emitnative.c | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/py/emitnative.c b/py/emitnative.c index af7fbc551..43dbcf06c 100644 --- a/py/emitnative.c +++ b/py/emitnative.c @@ -2316,14 +2316,6 @@ STATIC void emit_native_call_function(emit_t *emit, mp_uint_t n_positional, mp_u } else { assert(vtype_fun == VTYPE_PYOBJ); if (star_flags) { - if (!(star_flags & MP_EMIT_STAR_FLAG_SINGLE)) { - // load dummy entry for non-existent pos_seq - emit_native_load_null(emit); - emit_native_rot_two(emit); - } else if (!(star_flags & MP_EMIT_STAR_FLAG_DOUBLE)) { - // load dummy entry for non-existent kw_dict - emit_native_load_null(emit); - } emit_get_stack_pointer_to_reg_for_pop(emit, REG_ARG_3, n_positional + 2 * n_keyword + 3); // pointer to args emit_call_with_2_imm_args(emit, MP_F_CALL_METHOD_N_KW_VAR, 0, REG_ARG_1, n_positional | (n_keyword << 8), REG_ARG_2); emit_post_push_reg(emit, VTYPE_PYOBJ, REG_RET); @@ -2340,14 +2332,6 @@ STATIC void emit_native_call_function(emit_t *emit, mp_uint_t n_positional, mp_u STATIC void emit_native_call_method(emit_t *emit, mp_uint_t n_positional, mp_uint_t n_keyword, mp_uint_t star_flags) { if (star_flags) { - if (!(star_flags & MP_EMIT_STAR_FLAG_SINGLE)) { - // load dummy entry for non-existent pos_seq - emit_native_load_null(emit); - emit_native_rot_two(emit); - } else if (!(star_flags & MP_EMIT_STAR_FLAG_DOUBLE)) { - // load dummy entry for non-existent kw_dict - emit_native_load_null(emit); - } emit_get_stack_pointer_to_reg_for_pop(emit, REG_ARG_3, n_positional + 2 * n_keyword + 4); // pointer to args emit_call_with_2_imm_args(emit, MP_F_CALL_METHOD_N_KW_VAR, 1, REG_ARG_1, n_positional | (n_keyword << 8), REG_ARG_2); emit_post_push_reg(emit, VTYPE_PYOBJ, REG_RET); |
