diff options
Diffstat (limited to 'tests/inlineasm')
-rw-r--r-- | tests/inlineasm/asmblbx.py | 21 | ||||
-rw-r--r-- | tests/inlineasm/asmblbx.py.exp | 2 | ||||
-rw-r--r-- | tests/inlineasm/asmit.py | 16 | ||||
-rw-r--r-- | tests/inlineasm/asmit.py.exp | 2 |
4 files changed, 41 insertions, 0 deletions
diff --git a/tests/inlineasm/asmblbx.py b/tests/inlineasm/asmblbx.py new file mode 100644 index 0000000000..d08c0ed6b3 --- /dev/null +++ b/tests/inlineasm/asmblbx.py @@ -0,0 +1,21 @@ +# test bl and bx instructions + +@micropython.asm_thumb +def f(r0): + # jump over the internal functions + b(entry) + + label(func1) + add(r0, 2) + bx(lr) + + label(func2) + sub(r0, 1) + bx(lr) + + label(entry) + bl(func1) + bl(func2) + +print(f(0)) +print(f(1)) diff --git a/tests/inlineasm/asmblbx.py.exp b/tests/inlineasm/asmblbx.py.exp new file mode 100644 index 0000000000..1191247b6d --- /dev/null +++ b/tests/inlineasm/asmblbx.py.exp @@ -0,0 +1,2 @@ +1 +2 diff --git a/tests/inlineasm/asmit.py b/tests/inlineasm/asmit.py new file mode 100644 index 0000000000..57bfcc7f9a --- /dev/null +++ b/tests/inlineasm/asmit.py @@ -0,0 +1,16 @@ +# test it instruction + +@micropython.asm_thumb +def f(r0, r1): + cmp(r0, r1) + it(eq) + mov(r0, 100) +print(f(0, 0), f(1, 2)) + +@micropython.asm_thumb +def g(r0, r1): + cmp(r0, r1) + ite(eq) + mov(r0, 100) + mov(r0, 200) +print(g(0, 0), g(0, 1)) diff --git a/tests/inlineasm/asmit.py.exp b/tests/inlineasm/asmit.py.exp new file mode 100644 index 0000000000..d06c72d9bb --- /dev/null +++ b/tests/inlineasm/asmit.py.exp @@ -0,0 +1,2 @@ +100 1 +100 200 |