summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/qemu-arm/test-frzmpy/frozen_asm.py29
-rw-r--r--ports/qemu-arm/test-frzmpy/frozen_viper.py8
-rw-r--r--tests/qemu-arm/asm_test.py7
-rw-r--r--tests/qemu-arm/asm_test.py.exp5
-rw-r--r--tests/qemu-arm/viper_test.py3
-rw-r--r--tests/qemu-arm/viper_test.py.exp1
6 files changed, 53 insertions, 0 deletions
diff --git a/ports/qemu-arm/test-frzmpy/frozen_asm.py b/ports/qemu-arm/test-frzmpy/frozen_asm.py
new file mode 100644
index 000000000..2c7f5c92c
--- /dev/null
+++ b/ports/qemu-arm/test-frzmpy/frozen_asm.py
@@ -0,0 +1,29 @@
+# Test freezing inline-asm code.
+
+import micropython
+
+
+@micropython.asm_thumb
+def asm_add(r0, r1):
+ add(r0, r0, r1)
+
+
+@micropython.asm_thumb
+def asm_add1(r0) -> object:
+ lsl(r0, r0, 1)
+ add(r0, r0, 3)
+
+
+@micropython.asm_thumb
+def asm_cast_bool(r0) -> bool:
+ pass
+
+
+@micropython.asm_thumb
+def asm_shift_int(r0) -> int:
+ lsl(r0, r0, 29)
+
+
+@micropython.asm_thumb
+def asm_shift_uint(r0) -> uint:
+ lsl(r0, r0, 29)
diff --git a/ports/qemu-arm/test-frzmpy/frozen_viper.py b/ports/qemu-arm/test-frzmpy/frozen_viper.py
new file mode 100644
index 000000000..71dfe7c3b
--- /dev/null
+++ b/ports/qemu-arm/test-frzmpy/frozen_viper.py
@@ -0,0 +1,8 @@
+# Test freezing viper code.
+
+import micropython
+
+
+@micropython.viper
+def viper_add(x, y):
+ print(x + y)
diff --git a/tests/qemu-arm/asm_test.py b/tests/qemu-arm/asm_test.py
new file mode 100644
index 000000000..26c7efe42
--- /dev/null
+++ b/tests/qemu-arm/asm_test.py
@@ -0,0 +1,7 @@
+import frozen_asm
+
+print(frozen_asm.asm_add(1, 2))
+print(frozen_asm.asm_add1(3))
+print(frozen_asm.asm_cast_bool(0), frozen_asm.asm_cast_bool(3))
+print(frozen_asm.asm_shift_int(4))
+print(frozen_asm.asm_shift_uint(4))
diff --git a/tests/qemu-arm/asm_test.py.exp b/tests/qemu-arm/asm_test.py.exp
new file mode 100644
index 000000000..b4be8b40e
--- /dev/null
+++ b/tests/qemu-arm/asm_test.py.exp
@@ -0,0 +1,5 @@
+3
+4
+False True
+-2147483648
+2147483648
diff --git a/tests/qemu-arm/viper_test.py b/tests/qemu-arm/viper_test.py
new file mode 100644
index 000000000..8e38a2b92
--- /dev/null
+++ b/tests/qemu-arm/viper_test.py
@@ -0,0 +1,3 @@
+import frozen_viper
+
+frozen_viper.viper_add(1, 2)
diff --git a/tests/qemu-arm/viper_test.py.exp b/tests/qemu-arm/viper_test.py.exp
new file mode 100644
index 000000000..00750edc0
--- /dev/null
+++ b/tests/qemu-arm/viper_test.py.exp
@@ -0,0 +1 @@
+3