diff options
| author | Damien George <damien@micropython.org> | 2022-03-16 00:33:44 +1100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2022-03-16 00:41:10 +1100 |
| commit | 962ad8622e4c732f76ecbf8d5191ba8216d244d3 (patch) | |
| tree | 069d1d397dc6eb27c23a96272f6a2d0bc0976c7f /py/compile.c | |
| parent | 3c7cab4e98a31649ed1bc2e728d610856382d6f5 (diff) | |
py/parse: Handle check for target small-int size in parser.
This means that all constants for EMIT_ARG(load_const_obj, obj) are created
in the parser (rather than some in the compiler).
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'py/compile.c')
| -rw-r--r-- | py/compile.c | 16 |
1 files changed, 0 insertions, 16 deletions
diff --git a/py/compile.c b/py/compile.c index f9e8de457..2e719206f 100644 --- a/py/compile.c +++ b/py/compile.c @@ -2790,23 +2790,7 @@ STATIC void compile_node(compiler_t *comp, mp_parse_node_t pn) { // pass } else if (MP_PARSE_NODE_IS_SMALL_INT(pn)) { mp_int_t arg = MP_PARSE_NODE_LEAF_SMALL_INT(pn); - #if MICROPY_DYNAMIC_COMPILER - mp_uint_t sign_mask = -((mp_uint_t)1 << (mp_dynamic_compiler.small_int_bits - 1)); - if ((arg & sign_mask) == 0 || (arg & sign_mask) == sign_mask) { - // integer fits in target runtime's small-int - EMIT_ARG(load_const_small_int, arg); - } else { - // integer doesn't fit, so create a multi-precision int object - // (but only create the actual object on the last pass) - if (comp->pass != MP_PASS_EMIT) { - EMIT_ARG(load_const_obj, mp_const_none); - } else { - EMIT_ARG(load_const_obj, mp_obj_new_int_from_ll(arg)); - } - } - #else EMIT_ARG(load_const_small_int, arg); - #endif } else if (MP_PARSE_NODE_IS_LEAF(pn)) { uintptr_t arg = MP_PARSE_NODE_LEAF_ARG(pn); switch (MP_PARSE_NODE_LEAF_KIND(pn)) { |
