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

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
...@@ -76,5 +76,7 @@ EXPORT_SYMBOL(strcpy); ...@@ -76,5 +76,7 @@ EXPORT_SYMBOL(strcpy);
#define DECLARE_EXPORT(name) extern void name(void);EXPORT_SYMBOL(name) #define DECLARE_EXPORT(name) extern void name(void);EXPORT_SYMBOL(name)
DECLARE_EXPORT(__sdivsi3); DECLARE_EXPORT(__sdivsi3);
DECLARE_EXPORT(__sdivsi3_1);
DECLARE_EXPORT(__sdivsi3_2);
DECLARE_EXPORT(__udivsi3); DECLARE_EXPORT(__udivsi3);
DECLARE_EXPORT(__div_table); DECLARE_EXPORT(__div_table);
.global __sdivsi3 .global __sdivsi3
.global __sdivsi3_1
.global __sdivsi3_2
.section .text..SHmedia32,"ax" .section .text..SHmedia32,"ax"
.align 2 .align 2
...@@ -6,13 +8,15 @@ ...@@ -6,13 +8,15 @@
/* clobbered: r1,r18,r19,r20,r21,r25,tr0 */ /* clobbered: r1,r18,r19,r20,r21,r25,tr0 */
/* result in r0 */ /* result in r0 */
__sdivsi3: __sdivsi3:
__sdivsi3_1:
ptb __div_table,tr0 ptb __div_table,tr0
gettr tr0,r20
__sdivsi3_2:
nsb r5, r1 nsb r5, r1
shlld r5, r1, r25 /* normalize; [-2 ..1, 1..2) in s2.62 */ 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) */ shari r25, 58, r21 /* extract 5(6) bit index (s2.4 with hole -1..1) */
/* bubble */ /* bubble */
gettr tr0,r20
ldx.ub r20, r21, r19 /* u0.8 */ ldx.ub r20, r21, r19 /* u0.8 */
shari r25, 32, r25 /* normalize to s2.30 */ shari r25, 32, r25 /* normalize to s2.30 */
shlli r21, 1, r21 shlli r21, 1, r21
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment