* [PATCH 0/2] arm/lib: EABI fixes
@ 2009-12-16 14:49 Marc Kleine-Budde
2009-12-16 14:49 ` [PATCH 1/2] arm/lib: add eabi names of helper functions Marc Kleine-Budde
0 siblings, 1 reply; 3+ messages in thread
From: Marc Kleine-Budde @ 2009-12-16 14:49 UTC (permalink / raw)
To: u-boot-v2; +Cc: sha
Hey,
Since commit e2b4a792f8751d906d17b7ae343952f78dc41d67, we don't
undoncitionally link with OABI. If now EABI is selected there are a
number of missing helper functions, because they have new names now.
This series of pachtes adds the missing names and function.
These patches have been successfully tested on an MX35-PDK booting
from RAM and NAND.
Cheers, Marc
P.S.: If you want to pull these fixes:
---
The following changes since commit a5c776de1d8743e095cdd2f75a409e82148bd9c4:
Sascha Hauer (1):
Merge branch 'for-sha-collateral' of git://git.pengutronix.de/git/mkl/barebox
are available in the git repository at:
git://git.pengutronix.de/git/mkl/barebox.git for-sha-eabi-fixes
Marc Kleine-Budde (2):
arm/lib: add eabi names of helper functions
arm/lib: add missing abi helper functions __aeabi_idivmod, __aeabi_uidivmod
arch/arm/lib/Makefile | 2 +
arch/arm/lib/__aeabi_idivmod.S | 50 ++++++++++++++++++++++++++++++++++++++
arch/arm/lib/__aeabi_uidivmod.S | 51 +++++++++++++++++++++++++++++++++++++++
arch/arm/lib/_ashldi3.S | 2 +
arch/arm/lib/_ashrdi3.S | 2 +
arch/arm/lib/_divsi3.S | 2 +
arch/arm/lib/_lshrdi3.S | 2 +
arch/arm/lib/_udivsi3.S | 3 ++
8 files changed, 114 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/lib/__aeabi_idivmod.S
create mode 100644 arch/arm/lib/__aeabi_uidivmod.S
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] arm/lib: add eabi names of helper functions
2009-12-16 14:49 [PATCH 0/2] arm/lib: EABI fixes Marc Kleine-Budde
@ 2009-12-16 14:49 ` Marc Kleine-Budde
2009-12-16 14:49 ` [PATCH 2/2] arm/lib: add missing abi helper functions __aeabi_idivmod, __aeabi_uidivmod Marc Kleine-Budde
0 siblings, 1 reply; 3+ messages in thread
From: Marc Kleine-Budde @ 2009-12-16 14:49 UTC (permalink / raw)
To: u-boot-v2; +Cc: sha
Since commit e2b4a792f8751d906d17b7ae343952f78dc41d67, we don't
undoncitionally link with OABI. If now EABI is selected there are a
number of missing helper functions, because they have new names now.
This patch add the abi names to the existing helper functions.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
arch/arm/lib/_ashldi3.S | 2 ++
arch/arm/lib/_ashrdi3.S | 2 ++
arch/arm/lib/_divsi3.S | 2 ++
arch/arm/lib/_lshrdi3.S | 2 ++
arch/arm/lib/_udivsi3.S | 3 +++
5 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/arch/arm/lib/_ashldi3.S b/arch/arm/lib/_ashldi3.S
index 7344aa7..e1c1bf3 100644
--- a/arch/arm/lib/_ashldi3.S
+++ b/arch/arm/lib/_ashldi3.S
@@ -38,6 +38,8 @@ Boston, MA 02110-1301, USA. */
.globl __ashldi3
__ashldi3:
+.globl __aeabi_llsl
+__aeabi_llsl:
subs r3, r2, #32
rsb ip, r2, #32
diff --git a/arch/arm/lib/_ashrdi3.S b/arch/arm/lib/_ashrdi3.S
index 8994557..e631554 100644
--- a/arch/arm/lib/_ashrdi3.S
+++ b/arch/arm/lib/_ashrdi3.S
@@ -38,6 +38,8 @@ Boston, MA 02110-1301, USA. */
.globl __ashrdi3
__ashrdi3:
+.globl __aeabi_lasr
+__aeabi_lasr:
subs r3, r2, #32
rsb ip, r2, #32
diff --git a/arch/arm/lib/_divsi3.S b/arch/arm/lib/_divsi3.S
index f6cd2f9..2fbb49d 100644
--- a/arch/arm/lib/_divsi3.S
+++ b/arch/arm/lib/_divsi3.S
@@ -99,6 +99,8 @@
.align 5
.globl __divsi3
__divsi3:
+.globl __aeabi_idiv
+__aeabi_idiv:
cmp r1, #0
eor ip, r0, r1 @ save the sign of the result.
beq Ldiv0
diff --git a/arch/arm/lib/_lshrdi3.S b/arch/arm/lib/_lshrdi3.S
index 44b335b..71e7f3e 100644
--- a/arch/arm/lib/_lshrdi3.S
+++ b/arch/arm/lib/_lshrdi3.S
@@ -36,6 +36,8 @@ Boston, MA 02110-1301, USA. */
.globl __lshrdi3
__lshrdi3:
+.globl __aeabi_llsr
+__aeabi_llsr:
subs r3, r2, #32
rsb ip, r2, #32
diff --git a/arch/arm/lib/_udivsi3.S b/arch/arm/lib/_udivsi3.S
index 1975a0e..bc89b27 100644
--- a/arch/arm/lib/_udivsi3.S
+++ b/arch/arm/lib/_udivsi3.S
@@ -13,8 +13,11 @@ curbit .req r3
.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
--
1.6.5.4
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 2/2] arm/lib: add missing abi helper functions __aeabi_idivmod, __aeabi_uidivmod
2009-12-16 14:49 ` [PATCH 1/2] arm/lib: add eabi names of helper functions Marc Kleine-Budde
@ 2009-12-16 14:49 ` Marc Kleine-Budde
0 siblings, 0 replies; 3+ messages in thread
From: Marc Kleine-Budde @ 2009-12-16 14:49 UTC (permalink / raw)
To: u-boot-v2; +Cc: sha
With EABI we have two new helper functions __aeabi_idivmod and
__aeabi_uidivmod. This patch adds them to barebox.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
arch/arm/lib/Makefile | 2 +
arch/arm/lib/__aeabi_idivmod.S | 50 ++++++++++++++++++++++++++++++++++++++
arch/arm/lib/__aeabi_uidivmod.S | 51 +++++++++++++++++++++++++++++++++++++++
3 files changed, 103 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/lib/__aeabi_idivmod.S
create mode 100644 arch/arm/lib/__aeabi_uidivmod.S
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
index 26c318b..c1ac1aa 100644
--- a/arch/arm/lib/Makefile
+++ b/arch/arm/lib/Makefile
@@ -16,6 +16,8 @@ obj-y += io-readsl.o
obj-y += io-writesb.o
obj-y += io-writesw-armv4.o
obj-y += io-writesl.o
+obj-$(CONFIG_AEABI) += __aeabi_idivmod.o
+obj-$(CONFIG_AEABI) += __aeabi_uidivmod.o
obj-$(CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS) += memcpy.o
obj-$(CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS) += memset.o
diff --git a/arch/arm/lib/__aeabi_idivmod.S b/arch/arm/lib/__aeabi_idivmod.S
new file mode 100644
index 0000000..07de06b
--- /dev/null
+++ b/arch/arm/lib/__aeabi_idivmod.S
@@ -0,0 +1,50 @@
+/*
+ * linux/arch/arm/lib/lib1funcs.S: Optimized ARM division routines
+ *
+ * Author: Nicolas Pitre <nico@fluxnic.net>
+ * - contributed to gcc-3.4 on Sep 30, 2003
+ * - adapted for the Linux kernel on Oct 2, 2003
+ */
+
+/* Copyright 1995, 1996, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
+
+This file is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file into combinations with other programs,
+and to distribute those combinations without any restriction coming
+from the use of this file. (The General Public License restrictions
+do apply in other respects; for example, they cover modification of
+the file, and distribution when not linked into a combine
+executable.)
+
+This file is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+
+#include <linux/linkage.h>
+#include <asm/assembler.h>
+
+.section .text.__aeabi_idivmod
+
+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
+
+ENDPROC(__aeabi_idivmod)
diff --git a/arch/arm/lib/__aeabi_uidivmod.S b/arch/arm/lib/__aeabi_uidivmod.S
new file mode 100644
index 0000000..0e7694c
--- /dev/null
+++ b/arch/arm/lib/__aeabi_uidivmod.S
@@ -0,0 +1,51 @@
+/*
+ * linux/arch/arm/lib/lib1funcs.S: Optimized ARM division routines
+ *
+ * Author: Nicolas Pitre <nico@fluxnic.net>
+ * - contributed to gcc-3.4 on Sep 30, 2003
+ * - adapted for the Linux kernel on Oct 2, 2003
+ */
+
+/* Copyright 1995, 1996, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
+
+This file is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+In addition to the permissions in the GNU General Public License, the
+Free Software Foundation gives you unlimited permission to link the
+compiled version of this file into combinations with other programs,
+and to distribute those combinations without any restriction coming
+from the use of this file. (The General Public License restrictions
+do apply in other respects; for example, they cover modification of
+the file, and distribution when not linked into a combine
+executable.)
+
+This file is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+
+#include <linux/linkage.h>
+#include <asm/assembler.h>
+
+.section .text.__aeabi_uidivmod
+
+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
+
+ENDPROC(__aeabi_uidivmod)
+
--
1.6.5.4
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-12-16 14:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-12-16 14:49 [PATCH 0/2] arm/lib: EABI fixes Marc Kleine-Budde
2009-12-16 14:49 ` [PATCH 1/2] arm/lib: add eabi names of helper functions Marc Kleine-Budde
2009-12-16 14:49 ` [PATCH 2/2] arm/lib: add missing abi helper functions __aeabi_idivmod, __aeabi_uidivmod Marc Kleine-Budde
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox