summaryrefslogtreecommitdiffstatshomepage
path: root/tests
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-06-25 14:42:13 +0000
committerDamien George <damien.p.george@gmail.com>2015-06-25 14:42:13 +0000
commit59fba2d6ea31c134c9c0b88dc73cd25b236f167c (patch)
tree58038f6437d92ea5bf7b5395175c8e844e169556 /tests
parented570e4b2a0a68e43b191fb0d5b45fb2ec83aca4 (diff)
downloadmicropython-59fba2d6ea31c134c9c0b88dc73cd25b236f167c.tar.gz
micropython-59fba2d6ea31c134c9c0b88dc73cd25b236f167c.zip
py: Remove mp_load_const_bytes and instead load precreated bytes object.
Previous to this patch each time a bytes object was referenced a new instance (with the same data) was created. With this patch a single bytes object is created in the compiler and is loaded directly at execute time as a true constant (similar to loading bignum and float objects). This saves on allocating RAM and means that bytes objects can now be used when the memory manager is locked (eg in interrupts). The MP_BC_LOAD_CONST_BYTES bytecode was removed as part of this. Generated bytecode is slightly larger due to storing a pointer to the bytes object instead of the qstr identifier. Code size is reduced by about 60 bytes on Thumb2 architectures.
Diffstat (limited to 'tests')
-rw-r--r--tests/cmdline/cmd_showbc.py.exp166
1 files changed, 83 insertions, 83 deletions
diff --git a/tests/cmdline/cmd_showbc.py.exp b/tests/cmdline/cmd_showbc.py.exp
index fc3d85f9da..10be688388 100644
--- a/tests/cmdline/cmd_showbc.py.exp
+++ b/tests/cmdline/cmd_showbc.py.exp
@@ -72,89 +72,89 @@ arg names:
43 STORE_FAST 3
44 LOAD_CONST_STRING 'a'
47 STORE_FAST 4
-48 LOAD_CONST_BYTES a
-51 STORE_FAST 5
-52 LOAD_CONST_SMALL_INT 1
-53 STORE_FAST 6
-54 LOAD_CONST_SMALL_INT 2
-55 STORE_FAST 7
-56 LOAD_FAST 0
-57 LOAD_DEREF 14
-59 BINARY_OP 5 __add__
-60 STORE_FAST 8
-61 LOAD_FAST 0
-62 UNARY_OP 4
-63 STORE_FAST 9
-64 LOAD_FAST 0
-65 UNARY_OP 0
-66 NOT
-67 STORE_FAST 10
-68 LOAD_FAST 0
-69 LOAD_DEREF 14
-71 DUP_TOP
-72 ROT_THREE
-73 BINARY_OP 27 __eq__
-74 JUMP_IF_FALSE_OR_POP 82
-77 LOAD_FAST 1
-78 BINARY_OP 27 __eq__
-79 JUMP 84
-82 ROT_TWO
-83 POP_TOP
-84 STORE_FAST 10
-85 LOAD_FAST 0
-86 LOAD_DEREF 14
-88 BINARY_OP 27 __eq__
-89 JUMP_IF_FALSE_OR_POP 96
-92 LOAD_DEREF 14
-94 LOAD_FAST 1
-95 BINARY_OP 27 __eq__
-96 UNARY_OP 0
-97 NOT
-98 STORE_FAST 10
-99 LOAD_DEREF 14
-101 LOAD_ATTR c (cache=0)
-105 STORE_FAST 11
-106 LOAD_FAST 11
-107 LOAD_DEREF 14
-109 STORE_ATTR c (cache=0)
-113 LOAD_DEREF 14
-115 LOAD_CONST_SMALL_INT 0
-116 LOAD_SUBSCR
-117 STORE_FAST 12
-118 LOAD_FAST 12
-119 LOAD_DEREF 14
-121 LOAD_CONST_SMALL_INT 0
-122 STORE_SUBSCR
-123 LOAD_DEREF 14
-125 LOAD_CONST_NONE
-126 LOAD_CONST_NONE
-127 BUILD_SLICE 2
-129 LOAD_SUBSCR
-130 STORE_FAST 0
-131 LOAD_FAST 1
-132 UNPACK_SEQUENCE 2
-134 STORE_FAST 0
-135 STORE_DEREF 14
-137 LOAD_DEREF 14
-139 LOAD_FAST 0
-140 ROT_TWO
-141 STORE_FAST 0
-142 STORE_DEREF 14
-144 LOAD_FAST 1
-145 LOAD_DEREF 14
-147 LOAD_FAST 0
-148 ROT_THREE
-149 ROT_TWO
-150 STORE_FAST 0
-151 STORE_DEREF 14
-153 STORE_FAST 1
-154 DELETE_FAST 0
-156 LOAD_FAST 0
-157 STORE_GLOBAL gl
-160 DELETE_GLOBAL gl
-163 LOAD_FAST 14
-164 LOAD_FAST 15
-165 MAKE_CLOSURE \.\+ 2
+48 LOAD_CONST_OBJ \.\+
+\\d\+ STORE_FAST 5
+\\d\+ LOAD_CONST_SMALL_INT 1
+\\d\+ STORE_FAST 6
+\\d\+ LOAD_CONST_SMALL_INT 2
+\\d\+ STORE_FAST 7
+\\d\+ LOAD_FAST 0
+\\d\+ LOAD_DEREF 14
+\\d\+ BINARY_OP 5 __add__
+\\d\+ STORE_FAST 8
+\\d\+ LOAD_FAST 0
+\\d\+ UNARY_OP 4
+\\d\+ STORE_FAST 9
+\\d\+ LOAD_FAST 0
+\\d\+ UNARY_OP 0
+\\d\+ NOT
+\\d\+ STORE_FAST 10
+\\d\+ LOAD_FAST 0
+\\d\+ LOAD_DEREF 14
+\\d\+ DUP_TOP
+\\d\+ ROT_THREE
+\\d\+ BINARY_OP 27 __eq__
+\\d\+ JUMP_IF_FALSE_OR_POP \\d\+
+\\d\+ LOAD_FAST 1
+\\d\+ BINARY_OP 27 __eq__
+\\d\+ JUMP \\d\+
+\\d\+ ROT_TWO
+\\d\+ POP_TOP
+\\d\+ STORE_FAST 10
+\\d\+ LOAD_FAST 0
+\\d\+ LOAD_DEREF 14
+\\d\+ BINARY_OP 27 __eq__
+\\d\+ JUMP_IF_FALSE_OR_POP \\d\+
+\\d\+ LOAD_DEREF 14
+\\d\+ LOAD_FAST 1
+\\d\+ BINARY_OP 27 __eq__
+\\d\+ UNARY_OP 0
+\\d\+ NOT
+\\d\+ STORE_FAST 10
+\\d\+ LOAD_DEREF 14
+\\d\+ LOAD_ATTR c (cache=0)
+\\d\+ STORE_FAST 11
+\\d\+ LOAD_FAST 11
+\\d\+ LOAD_DEREF 14
+\\d\+ STORE_ATTR c (cache=0)
+\\d\+ LOAD_DEREF 14
+\\d\+ LOAD_CONST_SMALL_INT 0
+\\d\+ LOAD_SUBSCR
+\\d\+ STORE_FAST 12
+\\d\+ LOAD_FAST 12
+\\d\+ LOAD_DEREF 14
+\\d\+ LOAD_CONST_SMALL_INT 0
+\\d\+ STORE_SUBSCR
+\\d\+ LOAD_DEREF 14
+\\d\+ LOAD_CONST_NONE
+\\d\+ LOAD_CONST_NONE
+\\d\+ BUILD_SLICE 2
+\\d\+ LOAD_SUBSCR
+\\d\+ STORE_FAST 0
+\\d\+ LOAD_FAST 1
+\\d\+ UNPACK_SEQUENCE 2
+\\d\+ STORE_FAST 0
+\\d\+ STORE_DEREF 14
+\\d\+ LOAD_DEREF 14
+\\d\+ LOAD_FAST 0
+\\d\+ ROT_TWO
+\\d\+ STORE_FAST 0
+\\d\+ STORE_DEREF 14
+\\d\+ LOAD_FAST 1
+\\d\+ LOAD_DEREF 14
+\\d\+ LOAD_FAST 0
+\\d\+ ROT_THREE
+\\d\+ ROT_TWO
+\\d\+ STORE_FAST 0
+\\d\+ STORE_DEREF 14
+\\d\+ STORE_FAST 1
+\\d\+ DELETE_FAST 0
+\\d\+ LOAD_FAST 0
+\\d\+ STORE_GLOBAL gl
+\\d\+ DELETE_GLOBAL gl
+\\d\+ LOAD_FAST 14
+\\d\+ LOAD_FAST 15
+\\d\+ MAKE_CLOSURE \.\+ 2
\\d\+ LOAD_FAST 2
\\d\+ GET_ITER
\\d\+ CALL_FUNCTION n=1 nkw=0