aboutsummaryrefslogtreecommitdiff
path: root/boot/at91dataflashboot/at91dataflashboot-1.05-eabi-fixes.patch
blob: e38905f7cbb02cf0d8684bf2d4870bc3338f8fb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Get at91dataflashboot to build with EABI toolchains, by providing the
__aeabi_uidiv and __aeabi_uidivmod symbols. The code is based on
U-Boot's code.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 _udivsi3.S |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

Index: DataflashBoot-1.05/_udivsi3.S
===================================================================
--- DataflashBoot-1.05.orig/_udivsi3.S
+++ DataflashBoot-1.05/_udivsi3.S
@@ -12,8 +12,11 @@
 	.text
 	.globl	 __udivsi3
 	.type  __udivsi3       ,function
+        .globl  __aeabi_uidiv
+        .type   __aeabi_uidiv ,function
 	.align	0
  __udivsi3      :
+ __aeabi_uidiv:
 	cmp	divisor, #0
 	beq	Ldiv0
 	mov	curbit, #1
@@ -68,6 +71,17 @@
 	mov	r0, #0			@ about as wrong as it could be
 	ldmia	sp!, {pc}
 	.size  __udivsi3       , . -  __udivsi3
+
+.globl __aeabi_uidivmod
+__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
+
 /* # 235 "libgcc1.S" */
 /* # 320 "libgcc1.S" */
 /* # 421 "libgcc1.S" */