kopia lustrzana https://github.com/micropython/micropython
py/vm: Make small optimisation of BUILD_SLICE opcode.
No need to call DECODE_UINT since the value will always be either 2 or 3.pull/4191/merge
rodzic
57a7d5be9a
commit
76355c8863
17
py/vm.c
17
py/vm.c
|
@ -817,17 +817,14 @@ unwind_jump:;
|
||||||
#if MICROPY_PY_BUILTINS_SLICE
|
#if MICROPY_PY_BUILTINS_SLICE
|
||||||
ENTRY(MP_BC_BUILD_SLICE): {
|
ENTRY(MP_BC_BUILD_SLICE): {
|
||||||
MARK_EXC_IP_SELECTIVE();
|
MARK_EXC_IP_SELECTIVE();
|
||||||
DECODE_UINT;
|
mp_obj_t step = mp_const_none;
|
||||||
if (unum == 2) {
|
if (*ip++ == 3) {
|
||||||
mp_obj_t stop = POP();
|
// 3-argument slice includes step
|
||||||
mp_obj_t start = TOP();
|
step = POP();
|
||||||
SET_TOP(mp_obj_new_slice(start, stop, mp_const_none));
|
|
||||||
} else {
|
|
||||||
mp_obj_t step = POP();
|
|
||||||
mp_obj_t stop = POP();
|
|
||||||
mp_obj_t start = TOP();
|
|
||||||
SET_TOP(mp_obj_new_slice(start, stop, step));
|
|
||||||
}
|
}
|
||||||
|
mp_obj_t stop = POP();
|
||||||
|
mp_obj_t start = TOP();
|
||||||
|
SET_TOP(mp_obj_new_slice(start, stop, step));
|
||||||
DISPATCH();
|
DISPATCH();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Ładowanie…
Reference in New Issue