From eff10f66a65d0577aa9d10ee08b469cb9c83e1a3 Mon Sep 17 00:00:00 2001 From: Damien George Date: Mon, 16 Feb 2015 18:17:07 +0000 Subject: py: Implement bl/bx instructions for inline Thumb assembler. --- tests/inlineasm/asmblbx.py | 21 +++++++++++++++++++++ tests/inlineasm/asmblbx.py.exp | 2 ++ tests/inlineasm/asmit.py | 16 ++++++++++++++++ tests/inlineasm/asmit.py.exp | 2 ++ 4 files changed, 41 insertions(+) create mode 100644 tests/inlineasm/asmblbx.py create mode 100644 tests/inlineasm/asmblbx.py.exp create mode 100644 tests/inlineasm/asmit.py create mode 100644 tests/inlineasm/asmit.py.exp (limited to 'tests/inlineasm') diff --git a/tests/inlineasm/asmblbx.py b/tests/inlineasm/asmblbx.py new file mode 100644 index 000000000..d08c0ed6b --- /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 000000000..1191247b6 --- /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 000000000..57bfcc7f9 --- /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 000000000..d06c72d9b --- /dev/null +++ b/tests/inlineasm/asmit.py.exp @@ -0,0 +1,2 @@ +100 1 +100 200 -- cgit v1.2.3