mirror of
https://github.com/acidanthera/audk.git
synced 2025-08-14 22:28:08 +02:00
As per the emailed RFC in https://edk2.groups.io/g/devel/topic/rfc_move/107675828, this patch moves CompilerIntrinsicsLib from ArmPkg to MdePkg as this library provides compiler intrinsics, which are industry standard. This aligns with the goal of integrating ArmPkg into existing packages: https://bugzilla.tianocore.org/show_bug.cgi?id=4121. The newly placed CompilerIntrinsicsLib is added to MdeLibs.dsc.inc as every DSC that builds ARM/AARCH64 needs this library added. The old location is removed from every DSC in edk2 in this commit also to not break bisectability with minimal hoop jumping. Continuous-integration-options: PatchCheck.ignore-multi-package Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
39 lines
828 B
ArmAsm
39 lines
828 B
ArmAsm
#------------------------------------------------------------------------------
|
|
#
|
|
# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
#------------------------------------------------------------------------------
|
|
.text
|
|
|
|
GCC_ASM_EXPORT(__ARM_ll_mullu)
|
|
GCC_ASM_EXPORT(__aeabi_lmul)
|
|
#
|
|
#INT64
|
|
#EFIAPI
|
|
#__aeabi_lmul (
|
|
# IN INT64 Multiplicand
|
|
# IN INT32 Multiplier
|
|
# );
|
|
#
|
|
ASM_PFX(__ARM_ll_mullu):
|
|
mov r3, #0
|
|
# Make upper part of INT64 Multiplier 0 and use __aeabi_lmul
|
|
|
|
#
|
|
#INT64
|
|
#EFIAPI
|
|
#__aeabi_lmul (
|
|
# IN INT64 Multiplicand
|
|
# IN INT64 Multiplier
|
|
# );
|
|
#
|
|
ASM_PFX(__aeabi_lmul):
|
|
stmdb sp!, {lr}
|
|
mov lr, r0
|
|
umull r0, ip, r2, lr
|
|
mla r1, r2, r1, ip
|
|
mla r1, r3, lr, r1
|
|
ldmia sp!, {pc}
|