py/obj.h: Use 32-bit shift in MP_OBJ_NEW_QSTR calc for obj-repr D.

The qst value is always small enough to fit in 31-bits (even less) and
using a 32-bit shift rather than a 64-bit shift reduces code size by about
300 bytes.
This commit is contained in:
Damien George 2019-12-27 23:33:34 +11:00
parent 4c0176d13f
commit d56bc6e03d

View File

@ -178,7 +178,7 @@ static inline bool mp_obj_is_small_int(mp_const_obj_t o)
static inline bool mp_obj_is_qstr(mp_const_obj_t o)
{ return ((((uint64_t)(o)) & 0xffff000000000000) == 0x0002000000000000); }
#define MP_OBJ_QSTR_VALUE(o) ((((uint32_t)(o)) >> 1) & 0xffffffff)
#define MP_OBJ_NEW_QSTR(qst) ((mp_obj_t)((((mp_uint_t)(qst)) << 1) | 0x0002000000000001))
#define MP_OBJ_NEW_QSTR(qst) ((mp_obj_t)(((uint64_t)(((uint32_t)(qst)) << 1)) | 0x0002000000000001))
#if MICROPY_PY_BUILTINS_FLOAT