1 //------------------------------------------------------------------------------
3 // Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
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
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.
13 //------------------------------------------------------------------------------
17 EXPORT __aeabi_uidivmod
19 EXPORT __aeabi_idivmod
21 AREA Math, CODE, READONLY
34 RSBS r12, r1, r0, LSR #4
37 RSBS r12, r1, r0, LSR #8
53 BMI __arm_div_negative
54 RSBS r12, r1, r0, LSR #1
57 RSBS r12, r1, r0, LSR #4
59 RSBS r12, r1, r0, LSR #8
64 RSBS r12, r1, r0, LSR #7
65 SUBCS r0, r0, r1, LSL #7
67 RSBS r12, r1, r0,LSR #6
68 SUBCS r0, r0, r1, LSL #6
70 RSBS r12, r1, r0, LSR #5
71 SUBCS r0, r0, r1, LSL #5
73 RSBS r12, r1, r0, LSR #4
74 SUBCS r0, r0, r1, LSL #4
77 RSBS r12, r1, r0, LSR #3
78 SUBCS r0, r0, r1, LSL #3
80 RSBS r12, r1, r0, LSR #2
81 SUBCS r0, r0, r1, LSL #2
83 RSBS r12, r1, r0, LSR #1
84 SUBCS r0, r0, r1, LSL #1
92 ANDS r2, r1, #0x80000000
94 EORS r3, r2, r0, ASR #32
96 RSBS r12, r1, r0, LSR #4
98 RSBS r12, r1, r0, LSR #8
102 RSBS r12, r1, r0, LSR #8
103 ORR r2, r2, #0xfc000000
106 RSBS r12, r1, r0, LSR #8
107 ORR r2, r2, #0x3f00000
110 RSBS r12, r1, r0, LSR #8
112 ORRCS r2, r2, #0x3f00
119 RSBS r12, r1, r0, LSR #7
120 SUBCS r0, r0, r1, LSL #7
122 RSBS r12, r1, r0, LSR #6
123 SUBCS r0, r0, r1, LSL #6
125 RSBS r12, r1, r0, LSR #5
126 SUBCS r0, r0, r1, LSL #5
128 RSBS r12, r1, r0, LSR #4
129 SUBCS r0, r0, r1, LSL #4
132 RSBS r12, r1, r0, LSR #3
133 SUBCS r0, r0, r1, LSL #3
135 RSBS r12, r1, r0, LSR #2
136 SUBCS r0, r0, r1, LSL #2
139 RSBS r12, r1, r0, LSR #1
140 SUBCS r0, r0, r1, LSL #1
150 ; What to do about division by zero? For now, just return.