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: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
2bcfffa423
commit
1031a3a57e
2 changed files with 7 additions and 1 deletions
|
@ -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);
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
.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
|
||||
|
|
Loading…
Reference in a new issue