aboutsummaryrefslogtreecommitdiff
path: root/py/emitinlinethumb.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2016-01-15 15:20:43 +0000
committerDamien George <damien.p.george@gmail.com>2016-01-27 14:27:10 +0000
commit8f54c08691faa3dd859852d211230fd7d9791abd (patch)
tree5cc82db6ea4d9d6538c6a876a09592a85fca4242 /py/emitinlinethumb.c
parent3d42aa07dd6e94942b3721ee42ba5454cd0edf55 (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 'py/emitinlinethumb.c')
-rw-r--r--py/emitinlinethumb.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/py/emitinlinethumb.c b/py/emitinlinethumb.c
index 317febe92..c31a931c2 100644
--- a/py/emitinlinethumb.c
+++ b/py/emitinlinethumb.c
@@ -84,13 +84,14 @@ STATIC void emit_inline_thumb_start_pass(emit_inline_asm_t *emit, pass_kind_t pa
asm_thumb_entry(emit->as, 0);
}
-STATIC void emit_inline_thumb_end_pass(emit_inline_asm_t *emit) {
+STATIC void emit_inline_thumb_end_pass(emit_inline_asm_t *emit, mp_uint_t type_sig) {
asm_thumb_exit(emit->as);
asm_thumb_end_pass(emit->as);
if (emit->pass == MP_PASS_EMIT) {
void *f = asm_thumb_get_code(emit->as);
- mp_emit_glue_assign_native(emit->scope->raw_code, MP_CODE_NATIVE_ASM, f, asm_thumb_get_code_size(emit->as), NULL, emit->scope->num_pos_args, 0, 0);
+ mp_emit_glue_assign_native(emit->scope->raw_code, MP_CODE_NATIVE_ASM, f,
+ asm_thumb_get_code_size(emit->as), NULL, emit->scope->num_pos_args, 0, type_sig);
}
}