X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=ArmPkg%2FLibrary%2FCompilerIntrinsicsLib%2FArm%2Fdivsi3.S;h=45c0fcc3f759f0bef5dc6ca18695869a2ab1a61e;hp=473f1f22b9367ce9e6eb427ca728ef1130a07e06;hb=HEAD;hpb=58b5d037b4627460242c9333860faabf6115069e diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.S index 473f1f22b9..45c0fcc3f7 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.S @@ -1,32 +1,24 @@ -#------------------------------------------------------------------------------ -# -# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
-# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -#------------------------------------------------------------------------------ - -\s\s.text -\s\s.align 2 -\s\sGCC_ASM_EXPORT(__divsi3) -\s\s -ASM_PFX(__divsi3): -\s\seor\s\sr3, r0, r0, asr #31 -\s\seor\s\sr2, r1, r1, asr #31 -\s\sstmfd\s\ssp!, {r4, r5, r7, lr} -\s\smov\s\sr5, r0, asr #31 -\s\sadd\s\sr7, sp, #8 -\s\smov\s\sr4, r1, asr #31 -\s\ssub\s\sr0, r3, r0, asr #31 -\s\ssub\s\sr1, r2, r1, asr #31 -\s\sbl\s\sASM_PFX(__udivsi3) -\s\seor\s\sr1, r5, r4 -\s\seor\s\sr0, r0, r1 -\s\srsb\s\sr0, r1, r0 -\s\sldmfd\s\ssp!, {r4, r5, r7, pc} +#------------------------------------------------------------------------------ +# +# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +#------------------------------------------------------------------------------ + +#include + +ASM_FUNC(__divsi3) + eor r3, r0, r0, asr #31 + eor r2, r1, r1, asr #31 + stmfd sp!, {r4, r5, r7, lr} + mov r5, r0, asr #31 + add r7, sp, #8 + mov r4, r1, asr #31 + sub r0, r3, r0, asr #31 + sub r1, r2, r1, asr #31 + bl ASM_PFX(__udivsi3) + eor r1, r5, r4 + eor r0, r0, r1 + rsb r0, r1, r0 + ldmfd sp!, {r4, r5, r7, pc}