STATIC void emit_inline_thumb_end_pass(emit_inline_asm_t *emit) { 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); } }
STATIC void emit_inline_thumb_end_pass(emit_inline_asm_t *emit) { asm_thumb_exit(emit->as); asm_thumb_end_pass(emit->as); if (emit->pass == PASS_3) { void *f = asm_thumb_get_code(emit->as); mp_emit_glue_assign_inline_asm_code(emit->scope->unique_code_id, f, asm_thumb_get_code_size(emit->as), emit->scope->num_params); } }
STATIC bool emit_inline_thumb_end_pass(emit_inline_asm_t *emit) { asm_thumb_exit(emit->as); asm_thumb_end_pass(emit->as); if (emit->pass == PASS_3) { void *f = asm_thumb_get_code(emit->as); mp_emit_glue_assign_inline_asm_code(emit->scope->raw_code, f, asm_thumb_get_code_size(emit->as), emit->scope->num_params); } return emit->success; }
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); }