1#------------------------------------------------------------------------------
2#
3# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
4#
5# This program and the accompanying materials
6# are licensed and made available under the terms and conditions of the BSD License
7# which accompanies this distribution.  The full text of the license may be found at
8# http://opensource.org/licenses/bsd-license.php
9#
10# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12#
13#------------------------------------------------------------------------------
14
15  .text
16  .align 2
17  GCC_ASM_EXPORT(__moddi3)
18
19ASM_PFX(__moddi3):
20  stmfd  sp!, {r4, r5, r7, lr}
21  mov  r4, r1, asr #31
22  add  r7, sp, #8
23  stmfd  sp!, {r10, r11}
24  mov  r10, r3, asr #31
25  sub  sp, sp, #16
26  mov  r5, r4
27  mov  r11, r10
28  eor  r0, r0, r4
29  eor  r1, r1, r4
30  eor  r2, r2, r10
31  eor  r3, r3, r10
32  add  ip, sp, #8
33  subs  r0, r0, r4
34  sbc  r1, r1, r5
35  subs  r2, r2, r10
36  sbc  r3, r3, r11
37  str  ip, [sp, #0]
38  bl  ASM_PFX(__udivmoddi4)
39  ldrd  r0, [sp, #8]
40  eor  r0, r0, r4
41  eor  r1, r1, r4
42  subs  r0, r0, r4
43  sbc  r1, r1, r5
44  sub  sp, r7, #16
45  ldmfd  sp!, {r10, r11}
46  ldmfd  sp!, {r4, r5, r7, pc}
47