1c8061893SJerome Forissier/* SPDX-License-Identifier: BSD-2-Clause */ 2c8061893SJerome Forissier/* 3c8061893SJerome Forissier * Copyright (c) 2019, Linaro Limited 4c8061893SJerome Forissier */ 5c8061893SJerome Forissier 6c8061893SJerome Forissier#include <asm.S> 7c8061893SJerome Forissier 8*d9925536SJerome Forissier .section .note.GNU-stack,"",%progbits 9*d9925536SJerome Forissier 10c8061893SJerome Forissier/* 11c8061893SJerome Forissier * This function is the bottom of the user call stack. Mark it as such so that 12c8061893SJerome Forissier * the unwinding code won't try to go further down. 13c8061893SJerome Forissier * We need an assembly wrapper because Clang does not accept asm(".cantunwind") 14c8061893SJerome Forissier * in a C function: 15c8061893SJerome Forissier * 16c8061893SJerome Forissier * user_ta_header.c:44:6: error: .fnstart must precede .cantunwind directive 17c8061893SJerome Forissier * asm(".cantunwind"); 18c8061893SJerome Forissier * ^ 19c8061893SJerome Forissier */ 20c8061893SJerome ForissierFUNC __ta_entry, : 21c8061893SJerome ForissierUNWIND( .cantunwind) 22c8061893SJerome Forissier bl __ta_entry_c 23c8061893SJerome ForissierEND_FUNC __ta_entry 24