diff options
| author | Damien George <damien.p.george@gmail.com> | 2016-01-15 15:20:43 +0000 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2016-01-27 14:27:10 +0000 |
| commit | 8f54c08691faa3dd859852d211230fd7d9791abd (patch) | |
| tree | 5cc82db6ea4d9d6538c6a876a09592a85fca4242 /tests | |
| parent | 3d42aa07dd6e94942b3721ee42ba5454cd0edf55 (diff) | |
py/inlineasm: Add ability to specify return type of asm_thumb funcs.
Supported return types are: object, bool, int, uint.
For example:
@micropython.asm_thumb
def foo(r0, r1) -> uint:
add(r0, r0, r1)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/inlineasm/asmrettype.py | 21 | ||||
| -rw-r--r-- | tests/inlineasm/asmrettype.py.exp | 4 |
2 files changed, 25 insertions, 0 deletions
diff --git a/tests/inlineasm/asmrettype.py b/tests/inlineasm/asmrettype.py new file mode 100644 index 000000000..f1918696e --- /dev/null +++ b/tests/inlineasm/asmrettype.py @@ -0,0 +1,21 @@ +# test return type of inline asm + +@micropython.asm_thumb +def ret_obj(r0) -> object: + pass +ret_obj(print)(1) + +@micropython.asm_thumb +def ret_bool(r0) -> bool: + pass +print(ret_bool(0), ret_bool(1)) + +@micropython.asm_thumb +def ret_int(r0) -> int: + lsl(r0, r0, 29) +print(ret_int(0), hex(ret_int(1)), hex(ret_int(2)), hex(ret_int(4))) + +@micropython.asm_thumb +def ret_uint(r0) -> uint: + lsl(r0, r0, 29) +print(ret_uint(0), hex(ret_uint(1)), hex(ret_uint(2)), hex(ret_uint(4))) diff --git a/tests/inlineasm/asmrettype.py.exp b/tests/inlineasm/asmrettype.py.exp new file mode 100644 index 000000000..cbb49d247 --- /dev/null +++ b/tests/inlineasm/asmrettype.py.exp @@ -0,0 +1,4 @@ +1 +False True +0 0x20000000 0x40000000 -0x80000000 +0 0x20000000 0x40000000 0x80000000 |
