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