aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/lib
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2006-01-14 11:18:29 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-01-14 11:18:29 -0500
commitba95e4e4a0a8a3c6aba363d45f78d5f2e2d111eb (patch)
tree886cf3398d3a8e9ca3212dcf233b59110fc87d3d /arch/arm/lib
parent499b2ea11ff00c624d63af23516404fa2156639a (diff)
[ARM] 3104/1: ARM EABI: new helper function names
Patch from Nicolas Pitre The ARM EABI defines new names for GCC helper functions. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/lib')
-rw-r--r--arch/arm/lib/ashldi3.S1
-rw-r--r--arch/arm/lib/ashrdi3.S1
-rw-r--r--arch/arm/lib/lib1funcs.S23
-rw-r--r--arch/arm/lib/lshrdi3.S1
-rw-r--r--arch/arm/lib/muldi3.S1
-rw-r--r--arch/arm/lib/ucmpdi2.S14
6 files changed, 41 insertions, 0 deletions
diff --git a/arch/arm/lib/ashldi3.S b/arch/arm/lib/ashldi3.S
index 561e20717b30..55e57a1c2e6d 100644
--- a/arch/arm/lib/ashldi3.S
+++ b/arch/arm/lib/ashldi3.S
@@ -37,6 +37,7 @@ Boston, MA 02110-1301, USA. */
37#endif 37#endif
38 38
39ENTRY(__ashldi3) 39ENTRY(__ashldi3)
40ENTRY(__aeabi_llsl)
40 41
41 subs r3, r2, #32 42 subs r3, r2, #32
42 rsb ip, r2, #32 43 rsb ip, r2, #32
diff --git a/arch/arm/lib/ashrdi3.S b/arch/arm/lib/ashrdi3.S
index 86fb2a90c301..0b31398f89b2 100644
--- a/arch/arm/lib/ashrdi3.S
+++ b/arch/arm/lib/ashrdi3.S
@@ -37,6 +37,7 @@ Boston, MA 02110-1301, USA. */
37#endif 37#endif
38 38
39ENTRY(__ashrdi3) 39ENTRY(__ashrdi3)
40ENTRY(__aeabi_lasr)
40 41
41 subs r3, r2, #32 42 subs r3, r2, #32
42 rsb ip, r2, #32 43 rsb ip, r2, #32
diff --git a/arch/arm/lib/lib1funcs.S b/arch/arm/lib/lib1funcs.S
index 4964e5bafa0f..4e492f4b3f0e 100644
--- a/arch/arm/lib/lib1funcs.S
+++ b/arch/arm/lib/lib1funcs.S
@@ -206,6 +206,7 @@ Boston, MA 02111-1307, USA. */
206 206
207 207
208ENTRY(__udivsi3) 208ENTRY(__udivsi3)
209ENTRY(__aeabi_uidiv)
209 210
210 subs r2, r1, #1 211 subs r2, r1, #1
211 moveq pc, lr 212 moveq pc, lr
@@ -246,6 +247,7 @@ ENTRY(__umodsi3)
246 247
247 248
248ENTRY(__divsi3) 249ENTRY(__divsi3)
250ENTRY(__aeabi_idiv)
249 251
250 cmp r1, #0 252 cmp r1, #0
251 eor ip, r0, r1 @ save the sign of the result. 253 eor ip, r0, r1 @ save the sign of the result.
@@ -303,6 +305,27 @@ ENTRY(__modsi3)
303 rsbmi r0, r0, #0 305 rsbmi r0, r0, #0
304 mov pc, lr 306 mov pc, lr
305 307
308#ifdef CONFIG_AEABI
309
310ENTRY(__aeabi_uidivmod)
311
312 stmfd sp!, {r0, r1, ip, lr}
313 bl __aeabi_uidiv
314 ldmfd sp!, {r1, r2, ip, lr}
315 mul r3, r0, r2
316 sub r1, r1, r3
317 mov pc, lr
318
319ENTRY(__aeabi_idivmod)
320
321 stmfd sp!, {r0, r1, ip, lr}
322 bl __aeabi_idiv
323 ldmfd sp!, {r1, r2, ip, lr}
324 mul r3, r0, r2
325 sub r1, r1, r3
326 mov pc, lr
327
328#endif
306 329
307Ldiv0: 330Ldiv0:
308 331
diff --git a/arch/arm/lib/lshrdi3.S b/arch/arm/lib/lshrdi3.S
index 46c2ed19ec95..a86dbdd59cc4 100644
--- a/arch/arm/lib/lshrdi3.S
+++ b/arch/arm/lib/lshrdi3.S
@@ -37,6 +37,7 @@ Boston, MA 02110-1301, USA. */
37#endif 37#endif
38 38
39ENTRY(__lshrdi3) 39ENTRY(__lshrdi3)
40ENTRY(__aeabi_llsr)
40 41
41 subs r3, r2, #32 42 subs r3, r2, #32
42 rsb ip, r2, #32 43 rsb ip, r2, #32
diff --git a/arch/arm/lib/muldi3.S b/arch/arm/lib/muldi3.S
index c7fbdf005319..72d594184b8a 100644
--- a/arch/arm/lib/muldi3.S
+++ b/arch/arm/lib/muldi3.S
@@ -25,6 +25,7 @@
25#endif 25#endif
26 26
27ENTRY(__muldi3) 27ENTRY(__muldi3)
28ENTRY(__aeabi_lmul)
28 29
29 mul xh, yl, xh 30 mul xh, yl, xh
30 mla xh, xl, yh, xh 31 mla xh, xl, yh, xh
diff --git a/arch/arm/lib/ucmpdi2.S b/arch/arm/lib/ucmpdi2.S
index 112630f93e5d..d847a62834cb 100644
--- a/arch/arm/lib/ucmpdi2.S
+++ b/arch/arm/lib/ucmpdi2.S
@@ -10,6 +10,7 @@
10 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
11 */ 11 */
12 12
13#include <linux/config.h>
13#include <linux/linkage.h> 14#include <linux/linkage.h>
14 15
15#ifdef __ARMEB__ 16#ifdef __ARMEB__
@@ -33,3 +34,16 @@ ENTRY(__ucmpdi2)
33 movhi r0, #2 34 movhi r0, #2
34 mov pc, lr 35 mov pc, lr
35 36
37#ifdef CONFIG_AEABI
38
39ENTRY(__aeabi_ulcmp)
40
41 cmp xh, yh
42 cmpeq xl, yl
43 movlo r0, #-1
44 moveq r0, #0
45 movhi r0, #1
46 mov pc, lr
47
48#endif
49