xref: /OK3568_Linux_fs/buildroot/boot/at91dataflashboot/at91dataflashboot-1.05-eabi-fixes.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1Get at91dataflashboot to build with EABI toolchains, by providing the
2__aeabi_uidiv and __aeabi_uidivmod symbols. The code is based on
3U-Boot's code.
4
5Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
6---
7 _udivsi3.S |   14 ++++++++++++++
8 1 file changed, 14 insertions(+)
9
10Index: DataflashBoot-1.05/_udivsi3.S
11===================================================================
12--- DataflashBoot-1.05.orig/_udivsi3.S
13+++ DataflashBoot-1.05/_udivsi3.S
14@@ -12,8 +12,11 @@
15 	.text
16 	.globl	 __udivsi3
17 	.type  __udivsi3       ,function
18+        .globl  __aeabi_uidiv
19+        .type   __aeabi_uidiv ,function
20 	.align	0
21  __udivsi3      :
22+ __aeabi_uidiv:
23 	cmp	divisor, #0
24 	beq	Ldiv0
25 	mov	curbit, #1
26@@ -68,6 +71,17 @@
27 	mov	r0, #0			@ about as wrong as it could be
28 	ldmia	sp!, {pc}
29 	.size  __udivsi3       , . -  __udivsi3
30+
31+.globl __aeabi_uidivmod
32+__aeabi_uidivmod:
33+
34+        stmfd   sp!, {r0, r1, ip, lr}
35+        bl      __aeabi_uidiv
36+        ldmfd   sp!, {r1, r2, ip, lr}
37+        mul     r3, r0, r2
38+        sub     r1, r1, r3
39+        mov     pc, lr
40+
41 /* # 235 "libgcc1.S" */
42 /* # 320 "libgcc1.S" */
43 /* # 421 "libgcc1.S" */
44