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

Commit 1031a3a5 authored by Paul Mundt's avatar Paul Mundt
Browse files

sh: Provide an __sdivsi3_2 export for sh64.



Newer code paths that are heavier in 64-bit math manage to get this
generated by newer compilers, provide a definition and export
accordingly. This is trivially wrapped around the existing __sdivsi3
code.

Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 2bcfffa4
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -76,5 +76,7 @@ EXPORT_SYMBOL(strcpy);
#define DECLARE_EXPORT(name) extern void name(void);EXPORT_SYMBOL(name)

DECLARE_EXPORT(__sdivsi3);
DECLARE_EXPORT(__sdivsi3_1);
DECLARE_EXPORT(__sdivsi3_2);
DECLARE_EXPORT(__udivsi3);
DECLARE_EXPORT(__div_table);
+5 −1
Original line number Diff line number Diff line
	.global	__sdivsi3
	.global	__sdivsi3_1
	.global	__sdivsi3_2
	.section	.text..SHmedia32,"ax"
	.align	2

@@ -6,13 +8,15 @@
	/* clobbered: r1,r18,r19,r20,r21,r25,tr0 */
	/* result in r0 */
__sdivsi3:
__sdivsi3_1:
	ptb __div_table,tr0
	gettr tr0,r20

__sdivsi3_2:
	nsb r5, r1
	shlld r5, r1, r25    /* normalize; [-2 ..1, 1..2) in s2.62 */
	shari r25, 58, r21   /* extract 5(6) bit index (s2.4 with hole -1..1) */
	/* bubble */
	gettr tr0,r20
	ldx.ub r20, r21, r19 /* u0.8 */
	shari r25, 32, r25   /* normalize to s2.30 */
	shlli r21, 1, r21