Use constructor to create small int (avoid exposing mp_obj_t internals to VM).
diff --git a/py/vm.c b/py/vm.c
index 8e7ef74..5e3ec0b 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -106,7 +106,7 @@
                     case MP_BC_LOAD_CONST_SMALL_INT:
                         unum = (ip[0] | (ip[1] << 8) | (ip[2] << 16)) - 0x800000;
                         ip += 3;
-                        PUSH((mp_obj_t)(unum << 1 | 1));
+                        PUSH(MP_OBJ_NEW_SMALL_INT(unum));
                         break;
 
                     case MP_BC_LOAD_CONST_DEC: