xref: /optee_os/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S (revision a31e8303cf2e6cb5dac2823ff86d03f96554e219)
1/* SPDX-License-Identifier: BSD-2-Clause */
2/*
3 * Copyright (c) 2014, STMicroelectronics International N.V.
4 */
5
6#include <asm.S>
7
8/*
9 * This assembly source is used both in kernel and userland
10 * hence define unwind resources that match both environments.
11 */
12#if defined(CFG_UNWIND)
13#define LOCAL_UNWIND(...)	__VA_ARGS__
14#else
15#define LOCAL_UNWIND(...)
16#endif
17
18/*
19 * signed ret_idivmod_values(signed quot, signed rem);
20 * return quotient and remaining the EABI way (regs r0,r1)
21 */
22FUNC ret_idivmod_values , :
23LOCAL_UNWIND(.fnstart)
24        bx lr
25LOCAL_UNWIND(.fnend)
26END_FUNC ret_idivmod_values
27
28/*
29 * unsigned ret_uidivmod_values(unsigned quot, unsigned rem);
30 * return quotient and remaining the EABI way (regs r0,r1)
31 */
32FUNC ret_uidivmod_values , :
33LOCAL_UNWIND(.fnstart)
34        bx      lr
35LOCAL_UNWIND(.fnend)
36END_FUNC ret_uidivmod_values
37