//------------------------------------------------------------------------------ // // Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
// Copyright (c) 2018, Pete Batard. All rights reserved.
// // SPDX-License-Identifier: BSD-2-Clause-Patent // //------------------------------------------------------------------------------ IMPORT __aeabi_uldivmod EXPORT __aeabi_ldivmod EXPORT __rt_sdiv64 AREA s___aeabi_ldivmod, CODE, READONLY, ARM ARM ; ;INT64 ;EFIAPI ;__rt_sdiv64 ( ; IN INT64 Divisor ; IN INT64 Dividend ; ); ; __rt_sdiv64 ; Swap r0-r1 and r2-r3 MOV r12, r0 MOV r0, r2 MOV r2, r12 MOV r12, r1 MOV r1, r3 MOV r3, r12 B __aeabi_ldivmod ; ;INT64 ;EFIAPI ;__aeabi_ldivmod ( ; IN INT64 Dividend ; IN INT64 Divisor ; ); ; __aeabi_ldivmod PUSH {r4,lr} ASRS r4,r1,#1 EOR r4,r4,r3,LSR #1 BPL L_Test1 RSBS r0,r0,#0 RSC r1,r1,#0 L_Test1 TST r3,r3 BPL L_Test2 RSBS r2,r2,#0 RSC r3,r3,#0 L_Test2 BL __aeabi_uldivmod TST r4,#0x40000000 BEQ L_Test3 RSBS r0,r0,#0 RSC r1,r1,#0 L_Test3 TST r4,#0x80000000 BEQ L_Exit RSBS r2,r2,#0 RSC r3,r3,#0 L_Exit POP {r4,pc} END