Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba95e4e4 authored by Nicolas Pitre's avatar Nicolas Pitre Committed by Russell King
Browse files

[ARM] 3104/1: ARM EABI: new helper function names



Patch from Nicolas Pitre

The ARM EABI defines new names for GCC helper functions.

Signed-off-by: default avatarNicolas Pitre <nico@cam.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 499b2ea1
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -35,6 +35,16 @@ extern void __udivsi3(void);
extern void __umodsi3(void);
extern void __do_div64(void);

extern void __aeabi_idiv(void);
extern void __aeabi_idivmod(void);
extern void __aeabi_lasr(void);
extern void __aeabi_llsl(void);
extern void __aeabi_llsr(void);
extern void __aeabi_lmul(void);
extern void __aeabi_uidiv(void);
extern void __aeabi_uidivmod(void);
extern void __aeabi_ulcmp(void);

extern void fpundefinstr(void);
extern void fp_enter(void);

@@ -141,6 +151,18 @@ EXPORT_SYMBOL(__udivsi3);
EXPORT_SYMBOL(__umodsi3);
EXPORT_SYMBOL(__do_div64);

#ifdef CONFIG_AEABI
EXPORT_SYMBOL(__aeabi_idiv);
EXPORT_SYMBOL(__aeabi_idivmod);
EXPORT_SYMBOL(__aeabi_lasr);
EXPORT_SYMBOL(__aeabi_llsl);
EXPORT_SYMBOL(__aeabi_llsr);
EXPORT_SYMBOL(__aeabi_lmul);
EXPORT_SYMBOL(__aeabi_uidiv);
EXPORT_SYMBOL(__aeabi_uidivmod);
EXPORT_SYMBOL(__aeabi_ulcmp);
#endif

	/* bitops */
EXPORT_SYMBOL(_set_bit_le);
EXPORT_SYMBOL(_test_and_set_bit_le);
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ Boston, MA 02110-1301, USA. */
#endif

ENTRY(__ashldi3)
ENTRY(__aeabi_llsl)

	subs	r3, r2, #32
	rsb	ip, r2, #32
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ Boston, MA 02110-1301, USA. */
#endif

ENTRY(__ashrdi3)
ENTRY(__aeabi_lasr)

	subs	r3, r2, #32
	rsb	ip, r2, #32
+23 −0
Original line number Diff line number Diff line
@@ -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,6 +305,27 @@ 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:

+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ Boston, MA 02110-1301, USA. */
#endif

ENTRY(__lshrdi3)
ENTRY(__aeabi_llsr)

	subs	r3, r2, #32
	rsb	ip, r2, #32
Loading