/* SPDX-License-Identifier: GPL-2.0 */1#include <linux/linkage.h>2#include <asm/assembler.h>34#ifndef CONFIG_DEBUG_SEMIHOSTING56#include CONFIG_DEBUG_LL_INCLUDE78ENTRY(putc)9addruart r1, r2, r310#ifdef CONFIG_DEBUG_UART_FLOW_CONTROL11waituartcts r3, r112#endif13waituarttxrdy r3, r114senduart r0, r115busyuart r3, r116mov pc, lr17ENDPROC(putc)1819#else2021ENTRY(putc)22adr r1, 1f23ldmia r1, {r2, r3}24add r2, r2, r125ldr r1, [r2, r3]26strb r0, [r1]27mov r0, #0x03 @ SYS_WRITEC28ARM( svc #0x123456 )29#ifdef CONFIG_CPU_V7M30THUMB( bkpt #0xab )31#else32THUMB( svc #0xab )33#endif34mov pc, lr35.align 2361: .word _GLOBAL_OFFSET_TABLE_ - .37.word semi_writec_buf(GOT)38ENDPROC(putc)3940.bss41.global semi_writec_buf42.type semi_writec_buf, %object43semi_writec_buf:44.space 445.size semi_writec_buf, 44647#endif484950