mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00

ARMv7-A architectures that do not support the Virtualization extensions do not support instructions for the 32bit division. This change provides a software implementation for 32bit division. The division implementation is dumped from the OP-TEE project http://github.com/OP-TEE/optee_os. The code was slightly modified to pass trusted firmware checkpatch requirements and copyright is given to the ARM trusted firmware initiative and its contributors. Change-Id: Idae0c7b80a0d75eac9bd41ae121921d4c5af3fa3 Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
30 lines
658 B
ArmAsm
30 lines
658 B
ArmAsm
/*
|
|
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#include <asm_macros.S>
|
|
|
|
/*
|
|
* EABI wrappers from the udivmod and idivmod functions
|
|
*/
|
|
|
|
.globl ret_uidivmod_values
|
|
.globl ret_idivmod_values
|
|
|
|
/*
|
|
* signed ret_idivmod_values(signed quot, signed rem);
|
|
* return quotient and remaining the EABI way (regs r0,r1)
|
|
*/
|
|
func ret_idivmod_values
|
|
bx lr
|
|
endfunc ret_idivmod_values
|
|
|
|
/*
|
|
* unsigned ret_uidivmod_values(unsigned quot, unsigned rem);
|
|
* return quotient and remaining the EABI way (regs r0,r1)
|
|
*/
|
|
func ret_uidivmod_values
|
|
bx lr
|
|
endfunc ret_uidivmod_values
|