UUID stuff from Ryan Raasch
[cegcc.git] / cegcc / src / gcc-4.3.2 / gcc / config / sh / lib1funcs-4-300.asm
blob98c1be278a7528efdc31e9aad160a4dc03aa87bf
1 /* Copyright (C) 2004, 2006 Free Software Foundation, Inc.
3 This file is free software; you can redistribute it and/or modify it
4 under the terms of the GNU General Public License as published by the
5 Free Software Foundation; either version 2, or (at your option) any
6 later version.
8 In addition to the permissions in the GNU General Public License, the
9 Free Software Foundation gives you unlimited permission to link the
10 compiled version of this file into combinations with other programs,
11 and to distribute those combinations without any restriction coming
12 from the use of this file. (The General Public License restrictions
13 do apply in other respects; for example, they cover modification of
14 the file, and distribution when not linked into a combine
15 executable.)
17 This file is distributed in the hope that it will be useful, but
18 WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 General Public License for more details.
22 You should have received a copy of the GNU General Public License
23 along with this program; see the file COPYING. If not, write to
24 the Free Software Foundation, 51 Franklin Street, Fifth Floor,
25 Boston, MA 02110-1301, USA. */
27 /* libgcc routines for the STMicroelectronics ST40-300 CPU.
28 Contributed by J"orn Rennecke joern.rennecke@st.com. */
30 #include "lib1funcs.h"
32 #if !__SHMEDIA__
33 #ifdef L_div_table
34 #if defined (__SH3__) || defined (__SH3E__) || defined (__SH4__) || defined (__SH4_SINGLE__) || defined (__SH4_SINGLE_ONLY__) || defined (__SH4_NOFPU__)
35 /* This code used shld, thus is not suitable for SH1 / SH2. */
37 /* Signed / unsigned division without use of FPU, optimized for SH4-300.
38 Uses a lookup table for divisors in the range -128 .. +127, and
39 div1 with case distinction for larger divisors in three more ranges.
40 The code is lumped together with the table to allow the use of mova. */
41 #ifdef __LITTLE_ENDIAN__
42 #define L_LSB 0
43 #define L_LSWMSB 1
44 #define L_MSWLSB 2
45 #else
46 #define L_LSB 3
47 #define L_LSWMSB 2
48 #define L_MSWLSB 1
49 #endif
51 .global GLOBAL(udivsi3_i4i)
52 .global GLOBAL(sdivsi3_i4i)
53 FUNC(GLOBAL(udivsi3_i4i))
54 FUNC(GLOBAL(sdivsi3_i4i))
56 .balign 4
57 LOCAL(div_ge8m): ! 10 cycles up to here
58 rotcr r1 ! signed shift must use original sign from r4
59 div0s r5,r4
60 mov #24,r7
61 shld r7,r6
62 shad r0,r1
63 rotcl r6
64 div1 r5,r1
65 swap.w r5,r0 ! detect -0x80000000 : 0x800000
66 rotcl r6
67 swap.w r4,r7
68 div1 r5,r1
69 swap.b r7,r7
70 rotcl r6
71 or r7,r0
72 div1 r5,r1
73 swap.w r0,r7
74 rotcl r6
75 or r7,r0
76 div1 r5,r1
77 add #-0x80,r0
78 rotcl r6
79 extu.w r0,r0
80 div1 r5,r1
81 neg r0,r0
82 rotcl r6
83 swap.w r0,r0
84 div1 r5,r1
85 mov.l @r15+,r7
86 and r6,r0
87 rotcl r6
88 div1 r5,r1
89 shll2 r0
90 rotcl r6
91 exts.b r0,r0
92 div1 r5,r1
93 swap.w r0,r0
94 exts.w r0,r1
95 exts.b r6,r0
96 mov.l @r15+,r6
97 rotcl r0
98 rts
99 sub r1,r0
100 ! 31 cycles up to here
102 .balign 4
103 LOCAL(udiv_ge64k): ! 3 cycles up to here
104 mov r4,r0
105 shlr8 r0
106 div0u
107 cmp/hi r0,r5
108 bt LOCAL(udiv_r8)
109 mov.l r5,@-r15
110 shll8 r5
111 ! 7 cycles up to here
112 .rept 8
113 div1 r5,r0
114 .endr
115 extu.b r4,r1 ! 15 cycles up to here
116 extu.b r0,r6
117 xor r1,r0
118 xor r6,r0
119 swap.b r6,r6
120 .rept 8
121 div1 r5,r0
122 .endr ! 25 cycles up to here
123 extu.b r0,r0
124 mov.l @r15+,r5
125 or r6,r0
126 mov.l @r15+,r6
128 rotcl r0 ! 28 cycles up to here
130 .balign 4
131 LOCAL(udiv_r8): ! 6 cycles up to here
132 mov.l r4,@-r15
133 shll16 r4
134 shll8 r4
136 shll r4
137 mov r0,r1
138 div1 r5,r1
139 mov r4,r0
140 rotcl r0
141 mov.l @r15+,r4
142 div1 r5,r1
143 ! 12 cycles up to here
144 .rept 6
145 rotcl r0; div1 r5,r1
146 .endr
147 mov.l @r15+,r6 ! 24 cycles up to here
149 rotcl r0
151 .balign 4
152 LOCAL(div_ge32k): ! 6 cycles up to here
153 mov.l r7,@-r15
154 swap.w r5,r6
155 exts.b r6,r7
156 exts.w r6,r6
157 cmp/eq r6,r7
158 extu.b r1,r6
159 bf/s LOCAL(div_ge8m)
160 cmp/hi r1,r4 ! copy sign bit of r4 into T
161 rotcr r1 ! signed shift must use original sign from r4
162 div0s r5,r4
163 shad r0,r1
164 shll8 r5
165 div1 r5,r1
166 mov r5,r7 ! detect r4 == 0x80000000 && r5 == 0x8000(00)
167 div1 r5,r1
168 shlr8 r7
169 div1 r5,r1
170 swap.w r4,r0
171 div1 r5,r1
172 swap.b r0,r0
173 div1 r5,r1
174 or r0,r7
175 div1 r5,r1
176 add #-80,r7
177 div1 r5,r1
178 swap.w r7,r0
179 div1 r5,r1
180 or r0,r7
181 extu.b r1,r0
182 xor r6,r1
183 xor r0,r1
184 exts.b r0,r0
185 div1 r5,r1
186 extu.w r7,r7
187 div1 r5,r1
188 neg r7,r7 ! upper 16 bit of r7 == 0 if r4 == 0x80000000 && r5 == 0x8000
189 div1 r5,r1
190 and r0,r7
191 div1 r5,r1
192 swap.w r7,r7 ! 26 cycles up to here.
193 div1 r5,r1
194 shll8 r0
195 div1 r5,r1
196 exts.w r7,r7
197 div1 r5,r1
198 add r0,r0
199 div1 r5,r1
200 sub r7,r0
201 extu.b r1,r1
202 mov.l @r15+,r7
203 rotcl r1
204 mov.l @r15+,r6
205 add r1,r0
206 mov #-8,r1
208 shad r1,r5 ! 34 cycles up to here
210 .balign 4
211 GLOBAL(udivsi3_i4i):
212 mov.l r6,@-r15
213 extu.w r5,r6
214 cmp/eq r5,r6
215 mov #0x7f,r0
216 bf LOCAL(udiv_ge64k)
217 cmp/hi r0,r5
218 bf LOCAL(udiv_le128)
219 mov r4,r1
220 shlr8 r1
221 div0u
222 shlr r1
223 shll16 r6
224 div1 r6,r1
225 extu.b r4,r0 ! 7 cycles up to here
226 .rept 8
227 div1 r6,r1
228 .endr ! 15 cycles up to here
229 xor r1,r0 ! xor dividend with result lsb
230 .rept 6
231 div1 r6,r1
232 .endr
233 mov.l r7,@-r15 ! 21 cycles up to here
234 div1 r6,r1
235 extu.b r0,r7
236 div1 r6,r1
237 shll8 r7
238 extu.w r1,r0
239 xor r7,r1 ! replace lsb of result with lsb of dividend
240 div1 r6,r1
241 mov #0,r7
242 div1 r6,r1
244 div1 r6,r1
245 bra LOCAL(div_end)
246 div1 r6,r1 ! 28 cycles up to here
248 /* This is link-compatible with a GLOBAL(sdivsi3) call,
249 but we effectively clobber only r1, macl and mach */
250 /* Because negative quotients are calculated as one's complements,
251 -0x80000000 divided by the smallest positive number of a number
252 range (0x80, 0x8000, 0x800000) causes saturation in the one's
253 complement representation, and we have to suppress the
254 one's -> two's complement adjustment. Since positive numbers
255 don't get such an adjustment, it's OK to also compute one's -> two's
256 complement adjustment suppression for a dividend of 0. */
257 .balign 4
258 GLOBAL(sdivsi3_i4i):
259 mov.l r6,@-r15
260 exts.b r5,r6
261 cmp/eq r5,r6
262 mov #-1,r1
263 bt/s LOCAL(div_le128)
264 cmp/pz r4
265 addc r4,r1
266 exts.w r5,r6
267 cmp/eq r5,r6
268 mov #-7,r0
269 bf/s LOCAL(div_ge32k)
270 cmp/hi r1,r4 ! copy sign bit of r4 into T
271 rotcr r1
272 shll16 r6 ! 7 cycles up to here
273 shad r0,r1
274 div0s r5,r4
275 div1 r6,r1
276 mov.l r7,@-r15
277 div1 r6,r1
278 mov r4,r0 ! re-compute adjusted dividend
279 div1 r6,r1
280 mov #-31,r7
281 div1 r6,r1
282 shad r7,r0
283 div1 r6,r1
284 add r4,r0 ! adjusted dividend
285 div1 r6,r1
286 mov.l r8,@-r15
287 div1 r6,r1
288 swap.w r4,r8 ! detect special case r4 = 0x80000000, r5 = 0x80
289 div1 r6,r1
290 swap.b r8,r8
291 xor r1,r0 ! xor dividend with result lsb
292 div1 r6,r1
293 div1 r6,r1
294 or r5,r8
295 div1 r6,r1
296 add #-0x80,r8 ! r8 is 0 iff there is a match
297 div1 r6,r1
298 swap.w r8,r7 ! or upper 16 bits...
299 div1 r6,r1
300 or r7,r8 !...into lower 16 bits
301 div1 r6,r1
302 extu.w r8,r8
303 div1 r6,r1
304 extu.b r0,r7
305 div1 r6,r1
306 shll8 r7
307 exts.w r1,r0
308 xor r7,r1 ! replace lsb of result with lsb of dividend
309 div1 r6,r1
310 neg r8,r8 ! upper 16 bits of r8 are now 0xffff iff we want end adjm.
311 div1 r6,r1
312 and r0,r8
313 div1 r6,r1
314 swap.w r8,r7
315 div1 r6,r1
316 mov.l @r15+,r8 ! 58 insns, 29 cycles up to here
317 LOCAL(div_end):
318 div1 r6,r1
319 shll8 r0
320 div1 r6,r1
321 exts.w r7,r7
322 div1 r6,r1
323 add r0,r0
324 div1 r6,r1
325 sub r7,r0
326 extu.b r1,r1
327 mov.l @r15+,r7
328 rotcl r1
329 mov.l @r15+,r6
331 add r1,r0
333 .balign 4
334 LOCAL(udiv_le128): ! 4 cycles up to here (or 7 for mispredict)
335 mova LOCAL(div_table_inv),r0
336 shll2 r6
337 mov.l @(r0,r6),r1
338 mova LOCAL(div_table_clz),r0
339 lds r4,mach
343 tst r1,r1
345 bt 0f
346 dmulu.l r1,r4
347 0: mov.b @(r0,r5),r1
348 clrt
351 sts mach,r0
352 addc r4,r0
353 rotcr r0
354 mov.l @r15+,r6
356 shld r1,r0
358 .balign 4
359 LOCAL(div_le128): ! 3 cycles up to here (or 6 for mispredict)
360 mova LOCAL(div_table_inv),r0
361 shll2 r6
362 mov.l @(r0,r6),r1
363 mova LOCAL(div_table_clz),r0
364 neg r4,r6
365 bf 0f
366 mov r4,r6
367 0: lds r6,mach
368 tst r1,r1
369 bt 0f
370 dmulu.l r1,r6
371 0: div0s r4,r5
372 mov.b @(r0,r5),r1
373 bt/s LOCAL(le128_neg)
374 clrt
376 sts mach,r0
377 addc r6,r0
378 rotcr r0
379 mov.l @r15+,r6
381 shld r1,r0
383 /* Could trap divide by zero for the cost of one cycle more mispredict penalty:
385 dmulu.l r1,r6
386 0: div0s r4,r5
387 bt/s LOCAL(le128_neg)
388 tst r5,r5
389 bt LOCAL(div_by_zero)
390 mov.b @(r0,r5),r1
391 sts mach,r0
392 addc r6,r0
394 LOCAL(div_by_zero):
395 trapa #
396 .balign 4
397 LOCAL(le128_neg):
398 bt LOCAL(div_by_zero)
399 mov.b @(r0,r5),r1
400 sts mach,r0
401 addc r6,r0
402 ... */
404 .balign 4
405 LOCAL(le128_neg):
406 sts mach,r0
407 addc r6,r0
408 rotcr r0
409 mov.l @r15+,r6
410 shad r1,r0
412 neg r0,r0
413 ENDFUNC(GLOBAL(udivsi3_i4i))
414 ENDFUNC(GLOBAL(sdivsi3_i4i))
416 /* This table has been generated by divtab-sh4.c. */
417 .balign 4
418 .byte -7
419 .byte -6
420 .byte -6
421 .byte -6
422 .byte -6
423 .byte -6
424 .byte -6
425 .byte -6
426 .byte -6
427 .byte -6
428 .byte -6
429 .byte -6
430 .byte -6
431 .byte -6
432 .byte -6
433 .byte -6
434 .byte -6
435 .byte -6
436 .byte -6
437 .byte -6
438 .byte -6
439 .byte -6
440 .byte -6
441 .byte -6
442 .byte -6
443 .byte -6
444 .byte -6
445 .byte -6
446 .byte -6
447 .byte -6
448 .byte -6
449 .byte -6
450 .byte -6
451 .byte -6
452 .byte -6
453 .byte -6
454 .byte -6
455 .byte -6
456 .byte -6
457 .byte -6
458 .byte -6
459 .byte -6
460 .byte -6
461 .byte -6
462 .byte -6
463 .byte -6
464 .byte -6
465 .byte -6
466 .byte -6
467 .byte -6
468 .byte -6
469 .byte -6
470 .byte -6
471 .byte -6
472 .byte -6
473 .byte -6
474 .byte -6
475 .byte -6
476 .byte -6
477 .byte -6
478 .byte -6
479 .byte -6
480 .byte -6
481 .byte -6
482 .byte -6
483 .byte -5
484 .byte -5
485 .byte -5
486 .byte -5
487 .byte -5
488 .byte -5
489 .byte -5
490 .byte -5
491 .byte -5
492 .byte -5
493 .byte -5
494 .byte -5
495 .byte -5
496 .byte -5
497 .byte -5
498 .byte -5
499 .byte -5
500 .byte -5
501 .byte -5
502 .byte -5
503 .byte -5
504 .byte -5
505 .byte -5
506 .byte -5
507 .byte -5
508 .byte -5
509 .byte -5
510 .byte -5
511 .byte -5
512 .byte -5
513 .byte -5
514 .byte -5
515 .byte -4
516 .byte -4
517 .byte -4
518 .byte -4
519 .byte -4
520 .byte -4
521 .byte -4
522 .byte -4
523 .byte -4
524 .byte -4
525 .byte -4
526 .byte -4
527 .byte -4
528 .byte -4
529 .byte -4
530 .byte -4
531 .byte -3
532 .byte -3
533 .byte -3
534 .byte -3
535 .byte -3
536 .byte -3
537 .byte -3
538 .byte -3
539 .byte -2
540 .byte -2
541 .byte -2
542 .byte -2
543 .byte -1
544 .byte -1
545 .byte 0
546 LOCAL(div_table_clz):
547 .byte 0
548 .byte 0
549 .byte -1
550 .byte -1
551 .byte -2
552 .byte -2
553 .byte -2
554 .byte -2
555 .byte -3
556 .byte -3
557 .byte -3
558 .byte -3
559 .byte -3
560 .byte -3
561 .byte -3
562 .byte -3
563 .byte -4
564 .byte -4
565 .byte -4
566 .byte -4
567 .byte -4
568 .byte -4
569 .byte -4
570 .byte -4
571 .byte -4
572 .byte -4
573 .byte -4
574 .byte -4
575 .byte -4
576 .byte -4
577 .byte -4
578 .byte -4
579 .byte -5
580 .byte -5
581 .byte -5
582 .byte -5
583 .byte -5
584 .byte -5
585 .byte -5
586 .byte -5
587 .byte -5
588 .byte -5
589 .byte -5
590 .byte -5
591 .byte -5
592 .byte -5
593 .byte -5
594 .byte -5
595 .byte -5
596 .byte -5
597 .byte -5
598 .byte -5
599 .byte -5
600 .byte -5
601 .byte -5
602 .byte -5
603 .byte -5
604 .byte -5
605 .byte -5
606 .byte -5
607 .byte -5
608 .byte -5
609 .byte -5
610 .byte -5
611 .byte -6
612 .byte -6
613 .byte -6
614 .byte -6
615 .byte -6
616 .byte -6
617 .byte -6
618 .byte -6
619 .byte -6
620 .byte -6
621 .byte -6
622 .byte -6
623 .byte -6
624 .byte -6
625 .byte -6
626 .byte -6
627 .byte -6
628 .byte -6
629 .byte -6
630 .byte -6
631 .byte -6
632 .byte -6
633 .byte -6
634 .byte -6
635 .byte -6
636 .byte -6
637 .byte -6
638 .byte -6
639 .byte -6
640 .byte -6
641 .byte -6
642 .byte -6
643 .byte -6
644 .byte -6
645 .byte -6
646 .byte -6
647 .byte -6
648 .byte -6
649 .byte -6
650 .byte -6
651 .byte -6
652 .byte -6
653 .byte -6
654 .byte -6
655 .byte -6
656 .byte -6
657 .byte -6
658 .byte -6
659 .byte -6
660 .byte -6
661 .byte -6
662 .byte -6
663 .byte -6
664 .byte -6
665 .byte -6
666 .byte -6
667 .byte -6
668 .byte -6
669 .byte -6
670 .byte -6
671 .byte -6
672 .byte -6
673 .byte -6
674 .byte -6
675 /* 1/-128 .. 1/127, normalized. There is an implicit leading 1 in bit 32,
676 or in bit 33 for powers of two. */
677 .balign 4
678 .long 0x0
679 .long 0x2040811
680 .long 0x4104105
681 .long 0x624DD30
682 .long 0x8421085
683 .long 0xA6810A7
684 .long 0xC9714FC
685 .long 0xECF56BF
686 .long 0x11111112
687 .long 0x135C8114
688 .long 0x15B1E5F8
689 .long 0x18118119
690 .long 0x1A7B9612
691 .long 0x1CF06ADB
692 .long 0x1F7047DD
693 .long 0x21FB7813
694 .long 0x24924925
695 .long 0x27350B89
696 .long 0x29E4129F
697 .long 0x2C9FB4D9
698 .long 0x2F684BDB
699 .long 0x323E34A3
700 .long 0x3521CFB3
701 .long 0x38138139
702 .long 0x3B13B13C
703 .long 0x3E22CBCF
704 .long 0x41414142
705 .long 0x446F8657
706 .long 0x47AE147B
707 .long 0x4AFD6A06
708 .long 0x4E5E0A73
709 .long 0x51D07EAF
710 .long 0x55555556
711 .long 0x58ED2309
712 .long 0x5C9882BA
713 .long 0x60581606
714 .long 0x642C8591
715 .long 0x68168169
716 .long 0x6C16C16D
717 .long 0x702E05C1
718 .long 0x745D1746
719 .long 0x78A4C818
720 .long 0x7D05F418
721 .long 0x81818182
722 .long 0x86186187
723 .long 0x8ACB90F7
724 .long 0x8F9C18FA
725 .long 0x948B0FCE
726 .long 0x9999999A
727 .long 0x9EC8E952
728 .long 0xA41A41A5
729 .long 0xA98EF607
730 .long 0xAF286BCB
731 .long 0xB4E81B4F
732 .long 0xBACF914D
733 .long 0xC0E07039
734 .long 0xC71C71C8
735 .long 0xCD856891
736 .long 0xD41D41D5
737 .long 0xDAE6076C
738 .long 0xE1E1E1E2
739 .long 0xE9131AC0
740 .long 0xF07C1F08
741 .long 0xF81F81F9
742 .long 0x0
743 .long 0x4104105
744 .long 0x8421085
745 .long 0xC9714FC
746 .long 0x11111112
747 .long 0x15B1E5F8
748 .long 0x1A7B9612
749 .long 0x1F7047DD
750 .long 0x24924925
751 .long 0x29E4129F
752 .long 0x2F684BDB
753 .long 0x3521CFB3
754 .long 0x3B13B13C
755 .long 0x41414142
756 .long 0x47AE147B
757 .long 0x4E5E0A73
758 .long 0x55555556
759 .long 0x5C9882BA
760 .long 0x642C8591
761 .long 0x6C16C16D
762 .long 0x745D1746
763 .long 0x7D05F418
764 .long 0x86186187
765 .long 0x8F9C18FA
766 .long 0x9999999A
767 .long 0xA41A41A5
768 .long 0xAF286BCB
769 .long 0xBACF914D
770 .long 0xC71C71C8
771 .long 0xD41D41D5
772 .long 0xE1E1E1E2
773 .long 0xF07C1F08
774 .long 0x0
775 .long 0x8421085
776 .long 0x11111112
777 .long 0x1A7B9612
778 .long 0x24924925
779 .long 0x2F684BDB
780 .long 0x3B13B13C
781 .long 0x47AE147B
782 .long 0x55555556
783 .long 0x642C8591
784 .long 0x745D1746
785 .long 0x86186187
786 .long 0x9999999A
787 .long 0xAF286BCB
788 .long 0xC71C71C8
789 .long 0xE1E1E1E2
790 .long 0x0
791 .long 0x11111112
792 .long 0x24924925
793 .long 0x3B13B13C
794 .long 0x55555556
795 .long 0x745D1746
796 .long 0x9999999A
797 .long 0xC71C71C8
798 .long 0x0
799 .long 0x24924925
800 .long 0x55555556
801 .long 0x9999999A
802 .long 0x0
803 .long 0x55555556
804 .long 0x0
805 .long 0x0
806 LOCAL(div_table_inv):
807 .long 0x0
808 .long 0x0
809 .long 0x0
810 .long 0x55555556
811 .long 0x0
812 .long 0x9999999A
813 .long 0x55555556
814 .long 0x24924925
815 .long 0x0
816 .long 0xC71C71C8
817 .long 0x9999999A
818 .long 0x745D1746
819 .long 0x55555556
820 .long 0x3B13B13C
821 .long 0x24924925
822 .long 0x11111112
823 .long 0x0
824 .long 0xE1E1E1E2
825 .long 0xC71C71C8
826 .long 0xAF286BCB
827 .long 0x9999999A
828 .long 0x86186187
829 .long 0x745D1746
830 .long 0x642C8591
831 .long 0x55555556
832 .long 0x47AE147B
833 .long 0x3B13B13C
834 .long 0x2F684BDB
835 .long 0x24924925
836 .long 0x1A7B9612
837 .long 0x11111112
838 .long 0x8421085
839 .long 0x0
840 .long 0xF07C1F08
841 .long 0xE1E1E1E2
842 .long 0xD41D41D5
843 .long 0xC71C71C8
844 .long 0xBACF914D
845 .long 0xAF286BCB
846 .long 0xA41A41A5
847 .long 0x9999999A
848 .long 0x8F9C18FA
849 .long 0x86186187
850 .long 0x7D05F418
851 .long 0x745D1746
852 .long 0x6C16C16D
853 .long 0x642C8591
854 .long 0x5C9882BA
855 .long 0x55555556
856 .long 0x4E5E0A73
857 .long 0x47AE147B
858 .long 0x41414142
859 .long 0x3B13B13C
860 .long 0x3521CFB3
861 .long 0x2F684BDB
862 .long 0x29E4129F
863 .long 0x24924925
864 .long 0x1F7047DD
865 .long 0x1A7B9612
866 .long 0x15B1E5F8
867 .long 0x11111112
868 .long 0xC9714FC
869 .long 0x8421085
870 .long 0x4104105
871 .long 0x0
872 .long 0xF81F81F9
873 .long 0xF07C1F08
874 .long 0xE9131AC0
875 .long 0xE1E1E1E2
876 .long 0xDAE6076C
877 .long 0xD41D41D5
878 .long 0xCD856891
879 .long 0xC71C71C8
880 .long 0xC0E07039
881 .long 0xBACF914D
882 .long 0xB4E81B4F
883 .long 0xAF286BCB
884 .long 0xA98EF607
885 .long 0xA41A41A5
886 .long 0x9EC8E952
887 .long 0x9999999A
888 .long 0x948B0FCE
889 .long 0x8F9C18FA
890 .long 0x8ACB90F7
891 .long 0x86186187
892 .long 0x81818182
893 .long 0x7D05F418
894 .long 0x78A4C818
895 .long 0x745D1746
896 .long 0x702E05C1
897 .long 0x6C16C16D
898 .long 0x68168169
899 .long 0x642C8591
900 .long 0x60581606
901 .long 0x5C9882BA
902 .long 0x58ED2309
903 .long 0x55555556
904 .long 0x51D07EAF
905 .long 0x4E5E0A73
906 .long 0x4AFD6A06
907 .long 0x47AE147B
908 .long 0x446F8657
909 .long 0x41414142
910 .long 0x3E22CBCF
911 .long 0x3B13B13C
912 .long 0x38138139
913 .long 0x3521CFB3
914 .long 0x323E34A3
915 .long 0x2F684BDB
916 .long 0x2C9FB4D9
917 .long 0x29E4129F
918 .long 0x27350B89
919 .long 0x24924925
920 .long 0x21FB7813
921 .long 0x1F7047DD
922 .long 0x1CF06ADB
923 .long 0x1A7B9612
924 .long 0x18118119
925 .long 0x15B1E5F8
926 .long 0x135C8114
927 .long 0x11111112
928 .long 0xECF56BF
929 .long 0xC9714FC
930 .long 0xA6810A7
931 .long 0x8421085
932 .long 0x624DD30
933 .long 0x4104105
934 .long 0x2040811
935 /* maximum error: 0.987342 scaled: 0.921875*/
937 #endif /* SH3 / SH4 */
939 #endif /* L_div_table */
940 #endif /* !__SHMEDIA__ */