summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2021-08-19 17:49:33 +1000
committerDamien George <damien@micropython.org>2021-08-20 20:18:52 +1000
commitb51e7e9d01a696cdfefada2e374db51752d1b803 (patch)
treee0ba775ecfe9f5564cf691864abe8e4404e67d75
parent61d5a8b9ceab474d4137be53b422f5ece70c61a0 (diff)
stm32: Disable computed goto on constrained boards.
Saves ~1kiB. Add comment to this effect to mpconfig.h. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
-rw-r--r--ports/stm32/boards/B_L072Z_LRWAN1/mpconfigboard.h1
-rw-r--r--ports/stm32/boards/NUCLEO_F091RC/mpconfigboard.h1
-rw-r--r--ports/stm32/boards/NUCLEO_L073RZ/mpconfigboard.h1
-rw-r--r--ports/stm32/mpconfigport.h2
-rw-r--r--py/mpconfig.h3
5 files changed, 7 insertions, 1 deletions
diff --git a/ports/stm32/boards/B_L072Z_LRWAN1/mpconfigboard.h b/ports/stm32/boards/B_L072Z_LRWAN1/mpconfigboard.h
index 08ded0e03..dfcca72af 100644
--- a/ports/stm32/boards/B_L072Z_LRWAN1/mpconfigboard.h
+++ b/ports/stm32/boards/B_L072Z_LRWAN1/mpconfigboard.h
@@ -7,6 +7,7 @@
#define MICROPY_EMIT_THUMB (0)
#define MICROPY_EMIT_INLINE_THUMB (0)
+#define MICROPY_OPT_COMPUTED_GOTO (0)
#define MICROPY_PY_BUILTINS_COMPLEX (0)
#define MICROPY_PY_GENERATOR_PEND_THROW (0)
#define MICROPY_PY_MATH (0)
diff --git a/ports/stm32/boards/NUCLEO_F091RC/mpconfigboard.h b/ports/stm32/boards/NUCLEO_F091RC/mpconfigboard.h
index 7333dcd0c..a0bff5996 100644
--- a/ports/stm32/boards/NUCLEO_F091RC/mpconfigboard.h
+++ b/ports/stm32/boards/NUCLEO_F091RC/mpconfigboard.h
@@ -3,6 +3,7 @@
#define MICROPY_EMIT_THUMB (0)
#define MICROPY_EMIT_INLINE_THUMB (0)
+#define MICROPY_OPT_COMPUTED_GOTO (0)
#define MICROPY_PY_USOCKET (0)
#define MICROPY_PY_NETWORK (0)
#define MICROPY_PY_STM (0)
diff --git a/ports/stm32/boards/NUCLEO_L073RZ/mpconfigboard.h b/ports/stm32/boards/NUCLEO_L073RZ/mpconfigboard.h
index 331fc95ca..c8c809eb4 100644
--- a/ports/stm32/boards/NUCLEO_L073RZ/mpconfigboard.h
+++ b/ports/stm32/boards/NUCLEO_L073RZ/mpconfigboard.h
@@ -7,6 +7,7 @@
#define MICROPY_EMIT_THUMB (0)
#define MICROPY_EMIT_INLINE_THUMB (0)
+#define MICROPY_OPT_COMPUTED_GOTO (0)
#define MICROPY_PY_BUILTINS_COMPLEX (0)
#define MICROPY_PY_GENERATOR_PEND_THROW (0)
#define MICROPY_PY_MATH (0)
diff --git a/ports/stm32/mpconfigport.h b/ports/stm32/mpconfigport.h
index fc84171b2..6f97377d9 100644
--- a/ports/stm32/mpconfigport.h
+++ b/ports/stm32/mpconfigport.h
@@ -56,7 +56,9 @@
#define MICROPY_COMP_RETURN_IF_EXPR (1)
// optimisations
+#ifndef MICROPY_OPT_COMPUTED_GOTO
#define MICROPY_OPT_COMPUTED_GOTO (1)
+#endif
#define MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE (0)
#define MICROPY_OPT_MPZ_BITWISE (1)
#define MICROPY_OPT_MATH_FACTORIAL (1)
diff --git a/py/mpconfig.h b/py/mpconfig.h
index 2e83c90c5..db2aec3bf 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -483,7 +483,8 @@
/* Optimisations */
// Whether to use computed gotos in the VM, or a switch
-// Computed gotos are roughly 10% faster, and increase VM code size by a little
+// Computed gotos are roughly 10% faster, and increase VM code size by a little,
+// e.g. ~1kiB on Cortex M4.
// Note: enabling this will use the gcc-specific extensions of ranged designated
// initialisers and addresses of labels, which are not part of the C99 standard.
#ifndef MICROPY_OPT_COMPUTED_GOTO