1*4494ce4fSKuninori Morimoto/* SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 2*4494ce4fSKuninori Morimoto 3*4494ce4fSKuninori Morimoto Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 43b041227STakashi YOSHII 2004, 2005, 2006 53b041227STakashi YOSHII Free Software Foundation, Inc. 6*4494ce4fSKuninori Morimoto*/ 73b041227STakashi YOSHII 83b041227STakashi YOSHII!! libgcc routines for the Renesas / SuperH SH CPUs. 93b041227STakashi YOSHII!! Contributed by Steve Chamberlain. 103b041227STakashi YOSHII!! sac@cygnus.com 113b041227STakashi YOSHII 123b041227STakashi YOSHII!! ashiftrt_r4_x, ___ashrsi3, ___ashlsi3, ___lshrsi3 routines 133b041227STakashi YOSHII!! recoded in assembly by Toshiyasu Morita 143b041227STakashi YOSHII!! tm@netcom.com 153b041227STakashi YOSHII 163b041227STakashi YOSHII/* SH2 optimizations for ___ashrsi3, ___ashlsi3, ___lshrsi3 and 173b041227STakashi YOSHII ELF local label prefixes by J"orn Rennecke 183b041227STakashi YOSHII amylaar@cygnus.com */ 193b041227STakashi YOSHII 203b041227STakashi YOSHII/* This code used shld, thus is not suitable for SH1 / SH2. */ 213b041227STakashi YOSHII 223b041227STakashi YOSHII/* Signed / unsigned division without use of FPU, optimized for SH4. 233b041227STakashi YOSHII Uses a lookup table for divisors in the range -128 .. +128, and 243b041227STakashi YOSHII div1 with case distinction for larger divisors in three more ranges. 253b041227STakashi YOSHII The code is lumped together with the table to allow the use of mova. */ 263b041227STakashi YOSHII#ifdef CONFIG_CPU_LITTLE_ENDIAN 273b041227STakashi YOSHII#define L_LSB 0 283b041227STakashi YOSHII#define L_LSWMSB 1 293b041227STakashi YOSHII#define L_MSWLSB 2 303b041227STakashi YOSHII#else 313b041227STakashi YOSHII#define L_LSB 3 323b041227STakashi YOSHII#define L_LSWMSB 2 333b041227STakashi YOSHII#define L_MSWLSB 1 343b041227STakashi YOSHII#endif 353b041227STakashi YOSHII 363b041227STakashi YOSHII .balign 4 373b041227STakashi YOSHII .global __udivsi3_i4i 383b041227STakashi YOSHII .global __udivsi3_i4 393b041227STakashi YOSHII .set __udivsi3_i4, __udivsi3_i4i 403b041227STakashi YOSHII .type __udivsi3_i4i, @function 413b041227STakashi YOSHII__udivsi3_i4i: 423b041227STakashi YOSHII mov.w c128_w, r1 433b041227STakashi YOSHII div0u 443b041227STakashi YOSHII mov r4,r0 453b041227STakashi YOSHII shlr8 r0 463b041227STakashi YOSHII cmp/hi r1,r5 473b041227STakashi YOSHII extu.w r5,r1 483b041227STakashi YOSHII bf udiv_le128 493b041227STakashi YOSHII cmp/eq r5,r1 503b041227STakashi YOSHII bf udiv_ge64k 513b041227STakashi YOSHII shlr r0 523b041227STakashi YOSHII mov r5,r1 533b041227STakashi YOSHII shll16 r5 543b041227STakashi YOSHII mov.l r4,@-r15 553b041227STakashi YOSHII div1 r5,r0 563b041227STakashi YOSHII mov.l r1,@-r15 573b041227STakashi YOSHII div1 r5,r0 583b041227STakashi YOSHII div1 r5,r0 593b041227STakashi YOSHII bra udiv_25 603b041227STakashi YOSHII div1 r5,r0 613b041227STakashi YOSHII 623b041227STakashi YOSHIIdiv_le128: 633b041227STakashi YOSHII mova div_table_ix,r0 643b041227STakashi YOSHII bra div_le128_2 653b041227STakashi YOSHII mov.b @(r0,r5),r1 663b041227STakashi YOSHIIudiv_le128: 673b041227STakashi YOSHII mov.l r4,@-r15 683b041227STakashi YOSHII mova div_table_ix,r0 693b041227STakashi YOSHII mov.b @(r0,r5),r1 703b041227STakashi YOSHII mov.l r5,@-r15 713b041227STakashi YOSHIIdiv_le128_2: 723b041227STakashi YOSHII mova div_table_inv,r0 733b041227STakashi YOSHII mov.l @(r0,r1),r1 743b041227STakashi YOSHII mov r5,r0 753b041227STakashi YOSHII tst #0xfe,r0 763b041227STakashi YOSHII mova div_table_clz,r0 773b041227STakashi YOSHII dmulu.l r1,r4 783b041227STakashi YOSHII mov.b @(r0,r5),r1 793b041227STakashi YOSHII bt/s div_by_1 803b041227STakashi YOSHII mov r4,r0 813b041227STakashi YOSHII mov.l @r15+,r5 823b041227STakashi YOSHII sts mach,r0 833b041227STakashi YOSHII /* clrt */ 843b041227STakashi YOSHII addc r4,r0 853b041227STakashi YOSHII mov.l @r15+,r4 863b041227STakashi YOSHII rotcr r0 873b041227STakashi YOSHII rts 883b041227STakashi YOSHII shld r1,r0 893b041227STakashi YOSHII 903b041227STakashi YOSHIIdiv_by_1_neg: 913b041227STakashi YOSHII neg r4,r0 923b041227STakashi YOSHIIdiv_by_1: 933b041227STakashi YOSHII mov.l @r15+,r5 943b041227STakashi YOSHII rts 953b041227STakashi YOSHII mov.l @r15+,r4 963b041227STakashi YOSHII 973b041227STakashi YOSHIIdiv_ge64k: 983b041227STakashi YOSHII bt/s div_r8 993b041227STakashi YOSHII div0u 1003b041227STakashi YOSHII shll8 r5 1013b041227STakashi YOSHII bra div_ge64k_2 1023b041227STakashi YOSHII div1 r5,r0 1033b041227STakashi YOSHIIudiv_ge64k: 1043b041227STakashi YOSHII cmp/hi r0,r5 1053b041227STakashi YOSHII mov r5,r1 1063b041227STakashi YOSHII bt udiv_r8 1073b041227STakashi YOSHII shll8 r5 1083b041227STakashi YOSHII mov.l r4,@-r15 1093b041227STakashi YOSHII div1 r5,r0 1103b041227STakashi YOSHII mov.l r1,@-r15 1113b041227STakashi YOSHIIdiv_ge64k_2: 1123b041227STakashi YOSHII div1 r5,r0 1133b041227STakashi YOSHII mov.l zero_l,r1 1143b041227STakashi YOSHII .rept 4 1153b041227STakashi YOSHII div1 r5,r0 1163b041227STakashi YOSHII .endr 1173b041227STakashi YOSHII mov.l r1,@-r15 1183b041227STakashi YOSHII div1 r5,r0 1193b041227STakashi YOSHII mov.w m256_w,r1 1203b041227STakashi YOSHII div1 r5,r0 1213b041227STakashi YOSHII mov.b r0,@(L_LSWMSB,r15) 1223b041227STakashi YOSHII xor r4,r0 1233b041227STakashi YOSHII and r1,r0 1243b041227STakashi YOSHII bra div_ge64k_end 1253b041227STakashi YOSHII xor r4,r0 1263b041227STakashi YOSHII 1273b041227STakashi YOSHIIdiv_r8: 1283b041227STakashi YOSHII shll16 r4 1293b041227STakashi YOSHII bra div_r8_2 1303b041227STakashi YOSHII shll8 r4 1313b041227STakashi YOSHIIudiv_r8: 1323b041227STakashi YOSHII mov.l r4,@-r15 1333b041227STakashi YOSHII shll16 r4 1343b041227STakashi YOSHII clrt 1353b041227STakashi YOSHII shll8 r4 1363b041227STakashi YOSHII mov.l r5,@-r15 1373b041227STakashi YOSHIIdiv_r8_2: 1383b041227STakashi YOSHII rotcl r4 1393b041227STakashi YOSHII mov r0,r1 1403b041227STakashi YOSHII div1 r5,r1 1413b041227STakashi YOSHII mov r4,r0 1423b041227STakashi YOSHII rotcl r0 1433b041227STakashi YOSHII mov r5,r4 1443b041227STakashi YOSHII div1 r5,r1 1453b041227STakashi YOSHII .rept 5 1463b041227STakashi YOSHII rotcl r0; div1 r5,r1 1473b041227STakashi YOSHII .endr 1483b041227STakashi YOSHII rotcl r0 1493b041227STakashi YOSHII mov.l @r15+,r5 1503b041227STakashi YOSHII div1 r4,r1 1513b041227STakashi YOSHII mov.l @r15+,r4 1523b041227STakashi YOSHII rts 1533b041227STakashi YOSHII rotcl r0 1543b041227STakashi YOSHII 1553b041227STakashi YOSHII .global __sdivsi3_i4i 1563b041227STakashi YOSHII .global __sdivsi3_i4 1573b041227STakashi YOSHII .global __sdivsi3 1583b041227STakashi YOSHII .set __sdivsi3_i4, __sdivsi3_i4i 1593b041227STakashi YOSHII .set __sdivsi3, __sdivsi3_i4i 1603b041227STakashi YOSHII .type __sdivsi3_i4i, @function 1613b041227STakashi YOSHII /* This is link-compatible with a __sdivsi3 call, 1623b041227STakashi YOSHII but we effectively clobber only r1. */ 1633b041227STakashi YOSHII__sdivsi3_i4i: 1643b041227STakashi YOSHII mov.l r4,@-r15 1653b041227STakashi YOSHII cmp/pz r5 1663b041227STakashi YOSHII mov.w c128_w, r1 1673b041227STakashi YOSHII bt/s pos_divisor 1683b041227STakashi YOSHII cmp/pz r4 1693b041227STakashi YOSHII mov.l r5,@-r15 1703b041227STakashi YOSHII neg r5,r5 1713b041227STakashi YOSHII bt/s neg_result 1723b041227STakashi YOSHII cmp/hi r1,r5 1733b041227STakashi YOSHII neg r4,r4 1743b041227STakashi YOSHIIpos_result: 1753b041227STakashi YOSHII extu.w r5,r0 1763b041227STakashi YOSHII bf div_le128 1773b041227STakashi YOSHII cmp/eq r5,r0 1783b041227STakashi YOSHII mov r4,r0 1793b041227STakashi YOSHII shlr8 r0 1803b041227STakashi YOSHII bf/s div_ge64k 1813b041227STakashi YOSHII cmp/hi r0,r5 1823b041227STakashi YOSHII div0u 1833b041227STakashi YOSHII shll16 r5 1843b041227STakashi YOSHII div1 r5,r0 1853b041227STakashi YOSHII div1 r5,r0 1863b041227STakashi YOSHII div1 r5,r0 1873b041227STakashi YOSHIIudiv_25: 1883b041227STakashi YOSHII mov.l zero_l,r1 1893b041227STakashi YOSHII div1 r5,r0 1903b041227STakashi YOSHII div1 r5,r0 1913b041227STakashi YOSHII mov.l r1,@-r15 1923b041227STakashi YOSHII .rept 3 1933b041227STakashi YOSHII div1 r5,r0 1943b041227STakashi YOSHII .endr 1953b041227STakashi YOSHII mov.b r0,@(L_MSWLSB,r15) 1963b041227STakashi YOSHII xtrct r4,r0 1973b041227STakashi YOSHII swap.w r0,r0 1983b041227STakashi YOSHII .rept 8 1993b041227STakashi YOSHII div1 r5,r0 2003b041227STakashi YOSHII .endr 2013b041227STakashi YOSHII mov.b r0,@(L_LSWMSB,r15) 2023b041227STakashi YOSHIIdiv_ge64k_end: 2033b041227STakashi YOSHII .rept 8 2043b041227STakashi YOSHII div1 r5,r0 2053b041227STakashi YOSHII .endr 2063b041227STakashi YOSHII mov.l @r15+,r4 ! zero-extension and swap using LS unit. 2073b041227STakashi YOSHII extu.b r0,r0 2083b041227STakashi YOSHII mov.l @r15+,r5 2093b041227STakashi YOSHII or r4,r0 2103b041227STakashi YOSHII mov.l @r15+,r4 2113b041227STakashi YOSHII rts 2123b041227STakashi YOSHII rotcl r0 2133b041227STakashi YOSHII 2143b041227STakashi YOSHIIdiv_le128_neg: 2153b041227STakashi YOSHII tst #0xfe,r0 2163b041227STakashi YOSHII mova div_table_ix,r0 2173b041227STakashi YOSHII mov.b @(r0,r5),r1 2183b041227STakashi YOSHII mova div_table_inv,r0 2193b041227STakashi YOSHII bt/s div_by_1_neg 2203b041227STakashi YOSHII mov.l @(r0,r1),r1 2213b041227STakashi YOSHII mova div_table_clz,r0 2223b041227STakashi YOSHII dmulu.l r1,r4 2233b041227STakashi YOSHII mov.b @(r0,r5),r1 2243b041227STakashi YOSHII mov.l @r15+,r5 2253b041227STakashi YOSHII sts mach,r0 2263b041227STakashi YOSHII /* clrt */ 2273b041227STakashi YOSHII addc r4,r0 2283b041227STakashi YOSHII mov.l @r15+,r4 2293b041227STakashi YOSHII rotcr r0 2303b041227STakashi YOSHII shld r1,r0 2313b041227STakashi YOSHII rts 2323b041227STakashi YOSHII neg r0,r0 2333b041227STakashi YOSHII 2343b041227STakashi YOSHIIpos_divisor: 2353b041227STakashi YOSHII mov.l r5,@-r15 2363b041227STakashi YOSHII bt/s pos_result 2373b041227STakashi YOSHII cmp/hi r1,r5 2383b041227STakashi YOSHII neg r4,r4 2393b041227STakashi YOSHIIneg_result: 2403b041227STakashi YOSHII extu.w r5,r0 2413b041227STakashi YOSHII bf div_le128_neg 2423b041227STakashi YOSHII cmp/eq r5,r0 2433b041227STakashi YOSHII mov r4,r0 2443b041227STakashi YOSHII shlr8 r0 2453b041227STakashi YOSHII bf/s div_ge64k_neg 2463b041227STakashi YOSHII cmp/hi r0,r5 2473b041227STakashi YOSHII div0u 2483b041227STakashi YOSHII mov.l zero_l,r1 2493b041227STakashi YOSHII shll16 r5 2503b041227STakashi YOSHII div1 r5,r0 2513b041227STakashi YOSHII mov.l r1,@-r15 2523b041227STakashi YOSHII .rept 7 2533b041227STakashi YOSHII div1 r5,r0 2543b041227STakashi YOSHII .endr 2553b041227STakashi YOSHII mov.b r0,@(L_MSWLSB,r15) 2563b041227STakashi YOSHII xtrct r4,r0 2573b041227STakashi YOSHII swap.w r0,r0 2583b041227STakashi YOSHII .rept 8 2593b041227STakashi YOSHII div1 r5,r0 2603b041227STakashi YOSHII .endr 2613b041227STakashi YOSHII mov.b r0,@(L_LSWMSB,r15) 2623b041227STakashi YOSHIIdiv_ge64k_neg_end: 2633b041227STakashi YOSHII .rept 8 2643b041227STakashi YOSHII div1 r5,r0 2653b041227STakashi YOSHII .endr 2663b041227STakashi YOSHII mov.l @r15+,r4 ! zero-extension and swap using LS unit. 2673b041227STakashi YOSHII extu.b r0,r1 2683b041227STakashi YOSHII mov.l @r15+,r5 2693b041227STakashi YOSHII or r4,r1 2703b041227STakashi YOSHIIdiv_r8_neg_end: 2713b041227STakashi YOSHII mov.l @r15+,r4 2723b041227STakashi YOSHII rotcl r1 2733b041227STakashi YOSHII rts 2743b041227STakashi YOSHII neg r1,r0 2753b041227STakashi YOSHII 2763b041227STakashi YOSHIIdiv_ge64k_neg: 2773b041227STakashi YOSHII bt/s div_r8_neg 2783b041227STakashi YOSHII div0u 2793b041227STakashi YOSHII shll8 r5 2803b041227STakashi YOSHII mov.l zero_l,r1 2813b041227STakashi YOSHII .rept 6 2823b041227STakashi YOSHII div1 r5,r0 2833b041227STakashi YOSHII .endr 2843b041227STakashi YOSHII mov.l r1,@-r15 2853b041227STakashi YOSHII div1 r5,r0 2863b041227STakashi YOSHII mov.w m256_w,r1 2873b041227STakashi YOSHII div1 r5,r0 2883b041227STakashi YOSHII mov.b r0,@(L_LSWMSB,r15) 2893b041227STakashi YOSHII xor r4,r0 2903b041227STakashi YOSHII and r1,r0 2913b041227STakashi YOSHII bra div_ge64k_neg_end 2923b041227STakashi YOSHII xor r4,r0 2933b041227STakashi YOSHII 2943b041227STakashi YOSHIIc128_w: 2953b041227STakashi YOSHII .word 128 2963b041227STakashi YOSHII 2973b041227STakashi YOSHIIdiv_r8_neg: 2983b041227STakashi YOSHII clrt 2993b041227STakashi YOSHII shll16 r4 3003b041227STakashi YOSHII mov r4,r1 3013b041227STakashi YOSHII shll8 r1 3023b041227STakashi YOSHII mov r5,r4 3033b041227STakashi YOSHII .rept 7 3043b041227STakashi YOSHII rotcl r1; div1 r5,r0 3053b041227STakashi YOSHII .endr 3063b041227STakashi YOSHII mov.l @r15+,r5 3073b041227STakashi YOSHII rotcl r1 3083b041227STakashi YOSHII bra div_r8_neg_end 3093b041227STakashi YOSHII div1 r4,r0 3103b041227STakashi YOSHII 3113b041227STakashi YOSHIIm256_w: 3123b041227STakashi YOSHII .word 0xff00 3133b041227STakashi YOSHII/* This table has been generated by divtab-sh4.c. */ 3143b041227STakashi YOSHII .balign 4 3153b041227STakashi YOSHIIdiv_table_clz: 3163b041227STakashi YOSHII .byte 0 3173b041227STakashi YOSHII .byte 1 3183b041227STakashi YOSHII .byte 0 3193b041227STakashi YOSHII .byte -1 3203b041227STakashi YOSHII .byte -1 3213b041227STakashi YOSHII .byte -2 3223b041227STakashi YOSHII .byte -2 3233b041227STakashi YOSHII .byte -2 3243b041227STakashi YOSHII .byte -2 3253b041227STakashi YOSHII .byte -3 3263b041227STakashi YOSHII .byte -3 3273b041227STakashi YOSHII .byte -3 3283b041227STakashi YOSHII .byte -3 3293b041227STakashi YOSHII .byte -3 3303b041227STakashi YOSHII .byte -3 3313b041227STakashi YOSHII .byte -3 3323b041227STakashi YOSHII .byte -3 3333b041227STakashi YOSHII .byte -4 3343b041227STakashi YOSHII .byte -4 3353b041227STakashi YOSHII .byte -4 3363b041227STakashi YOSHII .byte -4 3373b041227STakashi YOSHII .byte -4 3383b041227STakashi YOSHII .byte -4 3393b041227STakashi YOSHII .byte -4 3403b041227STakashi YOSHII .byte -4 3413b041227STakashi YOSHII .byte -4 3423b041227STakashi YOSHII .byte -4 3433b041227STakashi YOSHII .byte -4 3443b041227STakashi YOSHII .byte -4 3453b041227STakashi YOSHII .byte -4 3463b041227STakashi YOSHII .byte -4 3473b041227STakashi YOSHII .byte -4 3483b041227STakashi YOSHII .byte -4 3493b041227STakashi YOSHII .byte -5 3503b041227STakashi YOSHII .byte -5 3513b041227STakashi YOSHII .byte -5 3523b041227STakashi YOSHII .byte -5 3533b041227STakashi YOSHII .byte -5 3543b041227STakashi YOSHII .byte -5 3553b041227STakashi YOSHII .byte -5 3563b041227STakashi YOSHII .byte -5 3573b041227STakashi YOSHII .byte -5 3583b041227STakashi YOSHII .byte -5 3593b041227STakashi YOSHII .byte -5 3603b041227STakashi YOSHII .byte -5 3613b041227STakashi YOSHII .byte -5 3623b041227STakashi YOSHII .byte -5 3633b041227STakashi YOSHII .byte -5 3643b041227STakashi YOSHII .byte -5 3653b041227STakashi YOSHII .byte -5 3663b041227STakashi YOSHII .byte -5 3673b041227STakashi YOSHII .byte -5 3683b041227STakashi YOSHII .byte -5 3693b041227STakashi YOSHII .byte -5 3703b041227STakashi YOSHII .byte -5 3713b041227STakashi YOSHII .byte -5 3723b041227STakashi YOSHII .byte -5 3733b041227STakashi YOSHII .byte -5 3743b041227STakashi YOSHII .byte -5 3753b041227STakashi YOSHII .byte -5 3763b041227STakashi YOSHII .byte -5 3773b041227STakashi YOSHII .byte -5 3783b041227STakashi YOSHII .byte -5 3793b041227STakashi YOSHII .byte -5 3803b041227STakashi YOSHII .byte -5 3813b041227STakashi YOSHII .byte -6 3823b041227STakashi YOSHII .byte -6 3833b041227STakashi YOSHII .byte -6 3843b041227STakashi YOSHII .byte -6 3853b041227STakashi YOSHII .byte -6 3863b041227STakashi YOSHII .byte -6 3873b041227STakashi YOSHII .byte -6 3883b041227STakashi YOSHII .byte -6 3893b041227STakashi YOSHII .byte -6 3903b041227STakashi YOSHII .byte -6 3913b041227STakashi YOSHII .byte -6 3923b041227STakashi YOSHII .byte -6 3933b041227STakashi YOSHII .byte -6 3943b041227STakashi YOSHII .byte -6 3953b041227STakashi YOSHII .byte -6 3963b041227STakashi YOSHII .byte -6 3973b041227STakashi YOSHII .byte -6 3983b041227STakashi YOSHII .byte -6 3993b041227STakashi YOSHII .byte -6 4003b041227STakashi YOSHII .byte -6 4013b041227STakashi YOSHII .byte -6 4023b041227STakashi YOSHII .byte -6 4033b041227STakashi YOSHII .byte -6 4043b041227STakashi YOSHII .byte -6 4053b041227STakashi YOSHII .byte -6 4063b041227STakashi YOSHII .byte -6 4073b041227STakashi YOSHII .byte -6 4083b041227STakashi YOSHII .byte -6 4093b041227STakashi YOSHII .byte -6 4103b041227STakashi YOSHII .byte -6 4113b041227STakashi YOSHII .byte -6 4123b041227STakashi YOSHII .byte -6 4133b041227STakashi YOSHII .byte -6 4143b041227STakashi YOSHII .byte -6 4153b041227STakashi YOSHII .byte -6 4163b041227STakashi YOSHII .byte -6 4173b041227STakashi YOSHII .byte -6 4183b041227STakashi YOSHII .byte -6 4193b041227STakashi YOSHII .byte -6 4203b041227STakashi YOSHII .byte -6 4213b041227STakashi YOSHII .byte -6 4223b041227STakashi YOSHII .byte -6 4233b041227STakashi YOSHII .byte -6 4243b041227STakashi YOSHII .byte -6 4253b041227STakashi YOSHII .byte -6 4263b041227STakashi YOSHII .byte -6 4273b041227STakashi YOSHII .byte -6 4283b041227STakashi YOSHII .byte -6 4293b041227STakashi YOSHII .byte -6 4303b041227STakashi YOSHII .byte -6 4313b041227STakashi YOSHII .byte -6 4323b041227STakashi YOSHII .byte -6 4333b041227STakashi YOSHII .byte -6 4343b041227STakashi YOSHII .byte -6 4353b041227STakashi YOSHII .byte -6 4363b041227STakashi YOSHII .byte -6 4373b041227STakashi YOSHII .byte -6 4383b041227STakashi YOSHII .byte -6 4393b041227STakashi YOSHII .byte -6 4403b041227STakashi YOSHII .byte -6 4413b041227STakashi YOSHII .byte -6 4423b041227STakashi YOSHII .byte -6 4433b041227STakashi YOSHII .byte -6 4443b041227STakashi YOSHII/* Lookup table translating positive divisor to index into table of 4453b041227STakashi YOSHII normalized inverse. N.B. the '0' entry is also the last entry of the 4463b041227STakashi YOSHII previous table, and causes an unaligned access for division by zero. */ 4473b041227STakashi YOSHIIdiv_table_ix: 4483b041227STakashi YOSHII .byte -6 4493b041227STakashi YOSHII .byte -128 4503b041227STakashi YOSHII .byte -128 4513b041227STakashi YOSHII .byte 0 4523b041227STakashi YOSHII .byte -128 4533b041227STakashi YOSHII .byte -64 4543b041227STakashi YOSHII .byte 0 4553b041227STakashi YOSHII .byte 64 4563b041227STakashi YOSHII .byte -128 4573b041227STakashi YOSHII .byte -96 4583b041227STakashi YOSHII .byte -64 4593b041227STakashi YOSHII .byte -32 4603b041227STakashi YOSHII .byte 0 4613b041227STakashi YOSHII .byte 32 4623b041227STakashi YOSHII .byte 64 4633b041227STakashi YOSHII .byte 96 4643b041227STakashi YOSHII .byte -128 4653b041227STakashi YOSHII .byte -112 4663b041227STakashi YOSHII .byte -96 4673b041227STakashi YOSHII .byte -80 4683b041227STakashi YOSHII .byte -64 4693b041227STakashi YOSHII .byte -48 4703b041227STakashi YOSHII .byte -32 4713b041227STakashi YOSHII .byte -16 4723b041227STakashi YOSHII .byte 0 4733b041227STakashi YOSHII .byte 16 4743b041227STakashi YOSHII .byte 32 4753b041227STakashi YOSHII .byte 48 4763b041227STakashi YOSHII .byte 64 4773b041227STakashi YOSHII .byte 80 4783b041227STakashi YOSHII .byte 96 4793b041227STakashi YOSHII .byte 112 4803b041227STakashi YOSHII .byte -128 4813b041227STakashi YOSHII .byte -120 4823b041227STakashi YOSHII .byte -112 4833b041227STakashi YOSHII .byte -104 4843b041227STakashi YOSHII .byte -96 4853b041227STakashi YOSHII .byte -88 4863b041227STakashi YOSHII .byte -80 4873b041227STakashi YOSHII .byte -72 4883b041227STakashi YOSHII .byte -64 4893b041227STakashi YOSHII .byte -56 4903b041227STakashi YOSHII .byte -48 4913b041227STakashi YOSHII .byte -40 4923b041227STakashi YOSHII .byte -32 4933b041227STakashi YOSHII .byte -24 4943b041227STakashi YOSHII .byte -16 4953b041227STakashi YOSHII .byte -8 4963b041227STakashi YOSHII .byte 0 4973b041227STakashi YOSHII .byte 8 4983b041227STakashi YOSHII .byte 16 4993b041227STakashi YOSHII .byte 24 5003b041227STakashi YOSHII .byte 32 5013b041227STakashi YOSHII .byte 40 5023b041227STakashi YOSHII .byte 48 5033b041227STakashi YOSHII .byte 56 5043b041227STakashi YOSHII .byte 64 5053b041227STakashi YOSHII .byte 72 5063b041227STakashi YOSHII .byte 80 5073b041227STakashi YOSHII .byte 88 5083b041227STakashi YOSHII .byte 96 5093b041227STakashi YOSHII .byte 104 5103b041227STakashi YOSHII .byte 112 5113b041227STakashi YOSHII .byte 120 5123b041227STakashi YOSHII .byte -128 5133b041227STakashi YOSHII .byte -124 5143b041227STakashi YOSHII .byte -120 5153b041227STakashi YOSHII .byte -116 5163b041227STakashi YOSHII .byte -112 5173b041227STakashi YOSHII .byte -108 5183b041227STakashi YOSHII .byte -104 5193b041227STakashi YOSHII .byte -100 5203b041227STakashi YOSHII .byte -96 5213b041227STakashi YOSHII .byte -92 5223b041227STakashi YOSHII .byte -88 5233b041227STakashi YOSHII .byte -84 5243b041227STakashi YOSHII .byte -80 5253b041227STakashi YOSHII .byte -76 5263b041227STakashi YOSHII .byte -72 5273b041227STakashi YOSHII .byte -68 5283b041227STakashi YOSHII .byte -64 5293b041227STakashi YOSHII .byte -60 5303b041227STakashi YOSHII .byte -56 5313b041227STakashi YOSHII .byte -52 5323b041227STakashi YOSHII .byte -48 5333b041227STakashi YOSHII .byte -44 5343b041227STakashi YOSHII .byte -40 5353b041227STakashi YOSHII .byte -36 5363b041227STakashi YOSHII .byte -32 5373b041227STakashi YOSHII .byte -28 5383b041227STakashi YOSHII .byte -24 5393b041227STakashi YOSHII .byte -20 5403b041227STakashi YOSHII .byte -16 5413b041227STakashi YOSHII .byte -12 5423b041227STakashi YOSHII .byte -8 5433b041227STakashi YOSHII .byte -4 5443b041227STakashi YOSHII .byte 0 5453b041227STakashi YOSHII .byte 4 5463b041227STakashi YOSHII .byte 8 5473b041227STakashi YOSHII .byte 12 5483b041227STakashi YOSHII .byte 16 5493b041227STakashi YOSHII .byte 20 5503b041227STakashi YOSHII .byte 24 5513b041227STakashi YOSHII .byte 28 5523b041227STakashi YOSHII .byte 32 5533b041227STakashi YOSHII .byte 36 5543b041227STakashi YOSHII .byte 40 5553b041227STakashi YOSHII .byte 44 5563b041227STakashi YOSHII .byte 48 5573b041227STakashi YOSHII .byte 52 5583b041227STakashi YOSHII .byte 56 5593b041227STakashi YOSHII .byte 60 5603b041227STakashi YOSHII .byte 64 5613b041227STakashi YOSHII .byte 68 5623b041227STakashi YOSHII .byte 72 5633b041227STakashi YOSHII .byte 76 5643b041227STakashi YOSHII .byte 80 5653b041227STakashi YOSHII .byte 84 5663b041227STakashi YOSHII .byte 88 5673b041227STakashi YOSHII .byte 92 5683b041227STakashi YOSHII .byte 96 5693b041227STakashi YOSHII .byte 100 5703b041227STakashi YOSHII .byte 104 5713b041227STakashi YOSHII .byte 108 5723b041227STakashi YOSHII .byte 112 5733b041227STakashi YOSHII .byte 116 5743b041227STakashi YOSHII .byte 120 5753b041227STakashi YOSHII .byte 124 5763b041227STakashi YOSHII .byte -128 5773b041227STakashi YOSHII/* 1/64 .. 1/127, normalized. There is an implicit leading 1 in bit 32. */ 5783b041227STakashi YOSHII .balign 4 5793b041227STakashi YOSHIIzero_l: 5803b041227STakashi YOSHII .long 0x0 5813b041227STakashi YOSHII .long 0xF81F81F9 5823b041227STakashi YOSHII .long 0xF07C1F08 5833b041227STakashi YOSHII .long 0xE9131AC0 5843b041227STakashi YOSHII .long 0xE1E1E1E2 5853b041227STakashi YOSHII .long 0xDAE6076C 5863b041227STakashi YOSHII .long 0xD41D41D5 5873b041227STakashi YOSHII .long 0xCD856891 5883b041227STakashi YOSHII .long 0xC71C71C8 5893b041227STakashi YOSHII .long 0xC0E07039 5903b041227STakashi YOSHII .long 0xBACF914D 5913b041227STakashi YOSHII .long 0xB4E81B4F 5923b041227STakashi YOSHII .long 0xAF286BCB 5933b041227STakashi YOSHII .long 0xA98EF607 5943b041227STakashi YOSHII .long 0xA41A41A5 5953b041227STakashi YOSHII .long 0x9EC8E952 5963b041227STakashi YOSHII .long 0x9999999A 5973b041227STakashi YOSHII .long 0x948B0FCE 5983b041227STakashi YOSHII .long 0x8F9C18FA 5993b041227STakashi YOSHII .long 0x8ACB90F7 6003b041227STakashi YOSHII .long 0x86186187 6013b041227STakashi YOSHII .long 0x81818182 6023b041227STakashi YOSHII .long 0x7D05F418 6033b041227STakashi YOSHII .long 0x78A4C818 6043b041227STakashi YOSHII .long 0x745D1746 6053b041227STakashi YOSHII .long 0x702E05C1 6063b041227STakashi YOSHII .long 0x6C16C16D 6073b041227STakashi YOSHII .long 0x68168169 6083b041227STakashi YOSHII .long 0x642C8591 6093b041227STakashi YOSHII .long 0x60581606 6103b041227STakashi YOSHII .long 0x5C9882BA 6113b041227STakashi YOSHII .long 0x58ED2309 6123b041227STakashi YOSHIIdiv_table_inv: 6133b041227STakashi YOSHII .long 0x55555556 6143b041227STakashi YOSHII .long 0x51D07EAF 6153b041227STakashi YOSHII .long 0x4E5E0A73 6163b041227STakashi YOSHII .long 0x4AFD6A06 6173b041227STakashi YOSHII .long 0x47AE147B 6183b041227STakashi YOSHII .long 0x446F8657 6193b041227STakashi YOSHII .long 0x41414142 6203b041227STakashi YOSHII .long 0x3E22CBCF 6213b041227STakashi YOSHII .long 0x3B13B13C 6223b041227STakashi YOSHII .long 0x38138139 6233b041227STakashi YOSHII .long 0x3521CFB3 6243b041227STakashi YOSHII .long 0x323E34A3 6253b041227STakashi YOSHII .long 0x2F684BDB 6263b041227STakashi YOSHII .long 0x2C9FB4D9 6273b041227STakashi YOSHII .long 0x29E4129F 6283b041227STakashi YOSHII .long 0x27350B89 6293b041227STakashi YOSHII .long 0x24924925 6303b041227STakashi YOSHII .long 0x21FB7813 6313b041227STakashi YOSHII .long 0x1F7047DD 6323b041227STakashi YOSHII .long 0x1CF06ADB 6333b041227STakashi YOSHII .long 0x1A7B9612 6343b041227STakashi YOSHII .long 0x18118119 6353b041227STakashi YOSHII .long 0x15B1E5F8 6363b041227STakashi YOSHII .long 0x135C8114 6373b041227STakashi YOSHII .long 0x11111112 6383b041227STakashi YOSHII .long 0xECF56BF 6393b041227STakashi YOSHII .long 0xC9714FC 6403b041227STakashi YOSHII .long 0xA6810A7 6413b041227STakashi YOSHII .long 0x8421085 6423b041227STakashi YOSHII .long 0x624DD30 6433b041227STakashi YOSHII .long 0x4104105 6443b041227STakashi YOSHII .long 0x2040811 6453b041227STakashi YOSHII /* maximum error: 0.987342 scaled: 0.921875*/ 646