diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-14 19:43:21 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-14 19:43:21 -0800 |
commit | 8d5c315059460e665c804d5a9b641f7f0a1e9dd7 (patch) | |
tree | b9c598b2ac7a4fd7cf121ce733b98b0f18b8a1df /arch/arm/lib/lib1funcs.S | |
parent | a9df3d0f312f4b1aefec76ae5ee86cccbf7cd4e0 (diff) | |
parent | 3f471126ee53feb5e9b210ea2f525ed3bb9b7a7f (diff) | |
download | linux-8d5c315059460e665c804d5a9b641f7f0a1e9dd7.tar.gz |
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Diffstat (limited to 'arch/arm/lib/lib1funcs.S')
-rw-r--r-- | arch/arm/lib/lib1funcs.S | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/arch/arm/lib/lib1funcs.S b/arch/arm/lib/lib1funcs.S index 59026029d017..4e492f4b3f0e 100644 --- a/arch/arm/lib/lib1funcs.S +++ b/arch/arm/lib/lib1funcs.S @@ -206,6 +206,7 @@ Boston, MA 02111-1307, USA. */ ENTRY(__udivsi3) +ENTRY(__aeabi_uidiv) subs r2, r1, #1 moveq pc, lr @@ -246,6 +247,7 @@ ENTRY(__umodsi3) ENTRY(__divsi3) +ENTRY(__aeabi_idiv) cmp r1, #0 eor ip, r0, r1 @ save the sign of the result. @@ -303,12 +305,33 @@ ENTRY(__modsi3) rsbmi r0, r0, #0 mov pc, lr +#ifdef CONFIG_AEABI + +ENTRY(__aeabi_uidivmod) + + stmfd sp!, {r0, r1, ip, lr} + bl __aeabi_uidiv + ldmfd sp!, {r1, r2, ip, lr} + mul r3, r0, r2 + sub r1, r1, r3 + mov pc, lr + +ENTRY(__aeabi_idivmod) + + stmfd sp!, {r0, r1, ip, lr} + bl __aeabi_idiv + ldmfd sp!, {r1, r2, ip, lr} + mul r3, r0, r2 + sub r1, r1, r3 + mov pc, lr + +#endif Ldiv0: - str lr, [sp, #-4]! + str lr, [sp, #-8]! bl __div0 mov r0, #0 @ About as wrong as it could be. - ldr pc, [sp], #4 + ldr pc, [sp], #8 |