OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgcc/] [config/] [sh/] [lib1funcs-4-300.S] - Blame information for rev 849

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 734 jeremybenn
/* Copyright (C) 2004, 2006, 2009 Free Software Foundation, Inc.
2
 
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 3, or (at your option) any
6
later version.
7
 
8
This file is distributed in the hope that it will be useful, but
9
WITHOUT ANY WARRANTY; without even the implied warranty of
10
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11
General Public License for more details.
12
 
13
Under Section 7 of GPL version 3, you are granted additional
14
permissions described in the GCC Runtime Library Exception, version
15
3.1, as published by the Free Software Foundation.
16
 
17
You should have received a copy of the GNU General Public License and
18
a copy of the GCC Runtime Library Exception along with this program;
19
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
20
.  */
21
 
22
 
23
/* libgcc routines for the STMicroelectronics ST40-300 CPU.
24
   Contributed by J"orn Rennecke joern.rennecke@st.com.  */
25
 
26
#include "lib1funcs.h"
27
 
28
#if !__SHMEDIA__
29
#ifdef L_div_table
30
#if defined (__SH3__) || defined (__SH3E__) || defined (__SH4__) || defined (__SH4_SINGLE__) || defined (__SH4_SINGLE_ONLY__) || defined (__SH4_NOFPU__)
31
/* This code used shld, thus is not suitable for SH1 / SH2.  */
32
 
33
/* Signed / unsigned division without use of FPU, optimized for SH4-300.
34
   Uses a lookup table for divisors in the range -128 .. +127, and
35
   div1 with case distinction for larger divisors in three more ranges.
36
   The code is lumped together with the table to allow the use of mova.  */
37
#ifdef __LITTLE_ENDIAN__
38
#define L_LSB 0
39
#define L_LSWMSB 1
40
#define L_MSWLSB 2
41
#else
42
#define L_LSB 3
43
#define L_LSWMSB 2
44
#define L_MSWLSB 1
45
#endif
46
 
47
        .global GLOBAL(udivsi3_i4i)
48
        .global GLOBAL(sdivsi3_i4i)
49
        FUNC(GLOBAL(udivsi3_i4i))
50
        FUNC(GLOBAL(sdivsi3_i4i))
51
 
52
        .balign 4
53
LOCAL(div_ge8m): ! 10 cycles up to here
54
        rotcr r1 ! signed shift must use original sign from r4
55
        div0s r5,r4
56
        mov #24,r7
57
        shld r7,r6
58
        shad r0,r1
59
        rotcl r6
60
        div1 r5,r1
61
        swap.w r5,r0 ! detect -0x80000000 : 0x800000
62
        rotcl r6
63
        swap.w r4,r7
64
        div1 r5,r1
65
        swap.b r7,r7
66
        rotcl r6
67
        or r7,r0
68
        div1 r5,r1
69
        swap.w r0,r7
70
        rotcl r6
71
        or r7,r0
72
        div1 r5,r1
73
        add #-0x80,r0
74
        rotcl r6
75
        extu.w r0,r0
76
        div1 r5,r1
77
        neg r0,r0
78
        rotcl r6
79
        swap.w r0,r0
80
        div1 r5,r1
81
        mov.l @r15+,r7
82
        and r6,r0
83
        rotcl r6
84
        div1 r5,r1
85
        shll2 r0
86
        rotcl r6
87
        exts.b r0,r0
88
        div1 r5,r1
89
        swap.w r0,r0
90
        exts.w r0,r1
91
        exts.b r6,r0
92
        mov.l @r15+,r6
93
        rotcl r0
94
        rts
95
        sub r1,r0
96
        ! 31 cycles up to here
97
 
98
        .balign 4
99
LOCAL(udiv_ge64k): ! 3 cycles up to here
100
        mov r4,r0
101
        shlr8 r0
102
        div0u
103
        cmp/hi r0,r5
104
        bt LOCAL(udiv_r8)
105
        mov.l r5,@-r15
106
        shll8 r5
107
        ! 7 cycles up to here
108
        .rept 8
109
        div1 r5,r0
110
        .endr
111
        extu.b r4,r1 ! 15 cycles up to here
112
        extu.b r0,r6
113
        xor r1,r0
114
        xor r6,r0
115
        swap.b r6,r6
116
        .rept 8
117
        div1 r5,r0
118
        .endr ! 25 cycles up to here
119
        extu.b r0,r0
120
        mov.l @r15+,r5
121
        or r6,r0
122
        mov.l @r15+,r6
123
        rts
124
        rotcl r0 ! 28 cycles up to here
125
 
126
        .balign 4
127
LOCAL(udiv_r8): ! 6 cycles up to here
128
        mov.l r4,@-r15
129
        shll16 r4
130
        shll8 r4
131
        !
132
        shll r4
133
        mov r0,r1
134
        div1 r5,r1
135
        mov r4,r0
136
        rotcl r0
137
        mov.l @r15+,r4
138
        div1 r5,r1
139
        ! 12 cycles up to here
140
        .rept 6
141
        rotcl r0; div1 r5,r1
142
        .endr
143
        mov.l @r15+,r6 ! 24 cycles up to here
144
        rts
145
        rotcl r0
146
 
147
        .balign 4
148
LOCAL(div_ge32k): ! 6 cycles up to here
149
        mov.l r7,@-r15
150
        swap.w r5,r6
151
        exts.b r6,r7
152
        exts.w r6,r6
153
        cmp/eq r6,r7
154
        extu.b r1,r6
155
        bf/s LOCAL(div_ge8m)
156
        cmp/hi r1,r4 ! copy sign bit of r4 into T
157
        rotcr r1 ! signed shift must use original sign from r4
158
        div0s r5,r4
159
        shad r0,r1
160
        shll8 r5
161
        div1 r5,r1
162
        mov r5,r7 ! detect r4 == 0x80000000 && r5 == 0x8000(00)
163
        div1 r5,r1
164
        shlr8 r7
165
        div1 r5,r1
166
        swap.w r4,r0
167
        div1 r5,r1
168
        swap.b r0,r0
169
        div1 r5,r1
170
        or r0,r7
171
        div1 r5,r1
172
        add #-80,r7
173
        div1 r5,r1
174
        swap.w r7,r0
175
        div1 r5,r1
176
        or r0,r7
177
        extu.b r1,r0
178
        xor r6,r1
179
        xor r0,r1
180
        exts.b r0,r0
181
        div1 r5,r1
182
        extu.w r7,r7
183
        div1 r5,r1
184
        neg r7,r7 ! upper 16 bit of r7 == 0 if r4 == 0x80000000 && r5 == 0x8000
185
        div1 r5,r1
186
        and r0,r7
187
        div1 r5,r1
188
        swap.w r7,r7 ! 26 cycles up to here.
189
        div1 r5,r1
190
        shll8 r0
191
        div1 r5,r1
192
        exts.w r7,r7
193
        div1 r5,r1
194
        add r0,r0
195
        div1 r5,r1
196
        sub r7,r0
197
        extu.b r1,r1
198
        mov.l @r15+,r7
199
        rotcl r1
200
        mov.l @r15+,r6
201
        add r1,r0
202
        mov #-8,r1
203
        rts
204
        shad r1,r5 ! 34 cycles up to here
205
 
206
        .balign 4
207
GLOBAL(udivsi3_i4i):
208
        mov.l r6,@-r15
209
        extu.w r5,r6
210
        cmp/eq r5,r6
211
        mov #0x7f,r0
212
        bf LOCAL(udiv_ge64k)
213
        cmp/hi r0,r5
214
        bf LOCAL(udiv_le128)
215
        mov r4,r1
216
        shlr8 r1
217
        div0u
218
        shlr r1
219
        shll16 r6
220
        div1 r6,r1
221
        extu.b r4,r0 ! 7 cycles up to here
222
        .rept 8
223
        div1 r6,r1
224
        .endr     ! 15 cycles up to here
225
        xor r1,r0 ! xor dividend with result lsb
226
        .rept 6
227
        div1 r6,r1
228
        .endr
229
        mov.l r7,@-r15 ! 21 cycles up to here
230
        div1 r6,r1
231
        extu.b r0,r7
232
        div1 r6,r1
233
        shll8 r7
234
        extu.w r1,r0
235
        xor r7,r1 ! replace lsb of result with lsb of dividend
236
        div1 r6,r1
237
        mov #0,r7
238
        div1 r6,r1
239
        !
240
        div1 r6,r1
241
        bra LOCAL(div_end)
242
        div1 r6,r1 ! 28 cycles up to here
243
 
244
        /* This is link-compatible with a GLOBAL(sdivsi3) call,
245
           but we effectively clobber only r1, macl and mach  */
246
        /* Because negative quotients are calculated as one's complements,
247
           -0x80000000 divided by the smallest positive number of a number
248
           range (0x80, 0x8000, 0x800000) causes saturation in the one's
249
           complement representation, and we have to suppress the
250
           one's -> two's complement adjustment.  Since positive numbers
251
           don't get such an adjustment, it's OK to also compute one's -> two's
252
           complement adjustment suppression for a dividend of 0.  */
253
        .balign 4
254
GLOBAL(sdivsi3_i4i):
255
        mov.l r6,@-r15
256
        exts.b r5,r6
257
        cmp/eq r5,r6
258
        mov #-1,r1
259
        bt/s LOCAL(div_le128)
260
        cmp/pz r4
261
        addc r4,r1
262
        exts.w r5,r6
263
        cmp/eq r5,r6
264
        mov #-7,r0
265
        bf/s LOCAL(div_ge32k)
266
        cmp/hi r1,r4 ! copy sign bit of r4 into T
267
        rotcr r1
268
        shll16 r6  ! 7 cycles up to here
269
        shad r0,r1
270
        div0s r5,r4
271
        div1 r6,r1
272
        mov.l r7,@-r15
273
        div1 r6,r1
274
        mov r4,r0 ! re-compute adjusted dividend
275
        div1 r6,r1
276
        mov #-31,r7
277
        div1 r6,r1
278
        shad r7,r0
279
        div1 r6,r1
280
        add r4,r0 ! adjusted dividend
281
        div1 r6,r1
282
        mov.l r8,@-r15
283
        div1 r6,r1
284
        swap.w r4,r8 ! detect special case r4 = 0x80000000, r5 = 0x80
285
        div1 r6,r1
286
        swap.b r8,r8
287
        xor r1,r0 ! xor dividend with result lsb
288
        div1 r6,r1
289
        div1 r6,r1
290
        or r5,r8
291
        div1 r6,r1
292
        add #-0x80,r8 ! r8 is 0 iff there is a match
293
        div1 r6,r1
294
        swap.w r8,r7 ! or upper 16 bits...
295
        div1 r6,r1
296
        or r7,r8 !...into lower 16 bits
297
        div1 r6,r1
298
        extu.w r8,r8
299
        div1 r6,r1
300
        extu.b r0,r7
301
        div1 r6,r1
302
        shll8 r7
303
        exts.w r1,r0
304
        xor r7,r1 ! replace lsb of result with lsb of dividend
305
        div1 r6,r1
306
        neg r8,r8 ! upper 16 bits of r8 are now 0xffff iff we want end adjm.
307
        div1 r6,r1
308
        and r0,r8
309
        div1 r6,r1
310
        swap.w r8,r7
311
        div1 r6,r1
312
        mov.l @r15+,r8 ! 58 insns, 29 cycles up to here
313
LOCAL(div_end):
314
        div1 r6,r1
315
        shll8 r0
316
        div1 r6,r1
317
        exts.w r7,r7
318
        div1 r6,r1
319
        add r0,r0
320
        div1 r6,r1
321
        sub r7,r0
322
        extu.b r1,r1
323
        mov.l @r15+,r7
324
        rotcl r1
325
        mov.l @r15+,r6
326
        rts
327
        add r1,r0
328
 
329
        .balign 4
330
LOCAL(udiv_le128): ! 4 cycles up to here (or 7 for mispredict)
331
        mova LOCAL(div_table_inv),r0
332
        shll2 r6
333
        mov.l @(r0,r6),r1
334
        mova LOCAL(div_table_clz),r0
335
        lds r4,mach
336
        !
337
        !
338
        !
339
        tst r1,r1
340
        !
341
        bt 0f
342
        dmulu.l r1,r4
343
0:      mov.b @(r0,r5),r1
344
        clrt
345
        !
346
        !
347
        sts mach,r0
348
        addc r4,r0
349
        rotcr r0
350
        mov.l @r15+,r6
351
        rts
352
        shld r1,r0
353
 
354
        .balign 4
355
LOCAL(div_le128): ! 3 cycles up to here (or 6 for mispredict)
356
        mova LOCAL(div_table_inv),r0
357
        shll2 r6
358
        mov.l @(r0,r6),r1
359
        mova LOCAL(div_table_clz),r0
360
        neg r4,r6
361
        bf 0f
362
        mov r4,r6
363
0:      lds r6,mach
364
        tst r1,r1
365
        bt 0f
366
        dmulu.l r1,r6
367
0:      div0s r4,r5
368
        mov.b @(r0,r5),r1
369
        bt/s LOCAL(le128_neg)
370
        clrt
371
        !
372
        sts mach,r0
373
        addc r6,r0
374
        rotcr r0
375
        mov.l @r15+,r6
376
        rts
377
        shld r1,r0
378
 
379
/* Could trap divide by zero for the cost of one cycle more mispredict penalty:
380
...
381
        dmulu.l r1,r6
382
0:      div0s r4,r5
383
        bt/s LOCAL(le128_neg)
384
        tst r5,r5
385
        bt LOCAL(div_by_zero)
386
        mov.b @(r0,r5),r1
387
        sts mach,r0
388
        addc r6,r0
389
...
390
LOCAL(div_by_zero):
391
        trapa #
392
        .balign 4
393
LOCAL(le128_neg):
394
        bt LOCAL(div_by_zero)
395
        mov.b @(r0,r5),r1
396
        sts mach,r0
397
        addc r6,r0
398
...  */
399
 
400
        .balign 4
401
LOCAL(le128_neg):
402
        sts mach,r0
403
        addc r6,r0
404
        rotcr r0
405
        mov.l @r15+,r6
406
        shad r1,r0
407
        rts
408
        neg r0,r0
409
        ENDFUNC(GLOBAL(udivsi3_i4i))
410
        ENDFUNC(GLOBAL(sdivsi3_i4i))
411
 
412
/* This table has been generated by divtab-sh4.c.  */
413
        .balign 4
414
        .byte   -7
415
        .byte   -6
416
        .byte   -6
417
        .byte   -6
418
        .byte   -6
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   -5
480
        .byte   -5
481
        .byte   -5
482
        .byte   -5
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   -4
512
        .byte   -4
513
        .byte   -4
514
        .byte   -4
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   -3
528
        .byte   -3
529
        .byte   -3
530
        .byte   -3
531
        .byte   -3
532
        .byte   -3
533
        .byte   -3
534
        .byte   -3
535
        .byte   -2
536
        .byte   -2
537
        .byte   -2
538
        .byte   -2
539
        .byte   -1
540
        .byte   -1
541
        .byte   0
542
LOCAL(div_table_clz):
543
        .byte   0
544
        .byte   0
545
        .byte   -1
546
        .byte   -1
547
        .byte   -2
548
        .byte   -2
549
        .byte   -2
550
        .byte   -2
551
        .byte   -3
552
        .byte   -3
553
        .byte   -3
554
        .byte   -3
555
        .byte   -3
556
        .byte   -3
557
        .byte   -3
558
        .byte   -3
559
        .byte   -4
560
        .byte   -4
561
        .byte   -4
562
        .byte   -4
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   -5
576
        .byte   -5
577
        .byte   -5
578
        .byte   -5
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   -6
608
        .byte   -6
609
        .byte   -6
610
        .byte   -6
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
/* 1/-128 .. 1/127, normalized.  There is an implicit leading 1 in bit 32,
672
   or in bit 33 for powers of two.  */
673
        .balign 4
674
        .long   0x0
675
        .long   0x2040811
676
        .long   0x4104105
677
        .long   0x624DD30
678
        .long   0x8421085
679
        .long   0xA6810A7
680
        .long   0xC9714FC
681
        .long   0xECF56BF
682
        .long   0x11111112
683
        .long   0x135C8114
684
        .long   0x15B1E5F8
685
        .long   0x18118119
686
        .long   0x1A7B9612
687
        .long   0x1CF06ADB
688
        .long   0x1F7047DD
689
        .long   0x21FB7813
690
        .long   0x24924925
691
        .long   0x27350B89
692
        .long   0x29E4129F
693
        .long   0x2C9FB4D9
694
        .long   0x2F684BDB
695
        .long   0x323E34A3
696
        .long   0x3521CFB3
697
        .long   0x38138139
698
        .long   0x3B13B13C
699
        .long   0x3E22CBCF
700
        .long   0x41414142
701
        .long   0x446F8657
702
        .long   0x47AE147B
703
        .long   0x4AFD6A06
704
        .long   0x4E5E0A73
705
        .long   0x51D07EAF
706
        .long   0x55555556
707
        .long   0x58ED2309
708
        .long   0x5C9882BA
709
        .long   0x60581606
710
        .long   0x642C8591
711
        .long   0x68168169
712
        .long   0x6C16C16D
713
        .long   0x702E05C1
714
        .long   0x745D1746
715
        .long   0x78A4C818
716
        .long   0x7D05F418
717
        .long   0x81818182
718
        .long   0x86186187
719
        .long   0x8ACB90F7
720
        .long   0x8F9C18FA
721
        .long   0x948B0FCE
722
        .long   0x9999999A
723
        .long   0x9EC8E952
724
        .long   0xA41A41A5
725
        .long   0xA98EF607
726
        .long   0xAF286BCB
727
        .long   0xB4E81B4F
728
        .long   0xBACF914D
729
        .long   0xC0E07039
730
        .long   0xC71C71C8
731
        .long   0xCD856891
732
        .long   0xD41D41D5
733
        .long   0xDAE6076C
734
        .long   0xE1E1E1E2
735
        .long   0xE9131AC0
736
        .long   0xF07C1F08
737
        .long   0xF81F81F9
738
        .long   0x0
739
        .long   0x4104105
740
        .long   0x8421085
741
        .long   0xC9714FC
742
        .long   0x11111112
743
        .long   0x15B1E5F8
744
        .long   0x1A7B9612
745
        .long   0x1F7047DD
746
        .long   0x24924925
747
        .long   0x29E4129F
748
        .long   0x2F684BDB
749
        .long   0x3521CFB3
750
        .long   0x3B13B13C
751
        .long   0x41414142
752
        .long   0x47AE147B
753
        .long   0x4E5E0A73
754
        .long   0x55555556
755
        .long   0x5C9882BA
756
        .long   0x642C8591
757
        .long   0x6C16C16D
758
        .long   0x745D1746
759
        .long   0x7D05F418
760
        .long   0x86186187
761
        .long   0x8F9C18FA
762
        .long   0x9999999A
763
        .long   0xA41A41A5
764
        .long   0xAF286BCB
765
        .long   0xBACF914D
766
        .long   0xC71C71C8
767
        .long   0xD41D41D5
768
        .long   0xE1E1E1E2
769
        .long   0xF07C1F08
770
        .long   0x0
771
        .long   0x8421085
772
        .long   0x11111112
773
        .long   0x1A7B9612
774
        .long   0x24924925
775
        .long   0x2F684BDB
776
        .long   0x3B13B13C
777
        .long   0x47AE147B
778
        .long   0x55555556
779
        .long   0x642C8591
780
        .long   0x745D1746
781
        .long   0x86186187
782
        .long   0x9999999A
783
        .long   0xAF286BCB
784
        .long   0xC71C71C8
785
        .long   0xE1E1E1E2
786
        .long   0x0
787
        .long   0x11111112
788
        .long   0x24924925
789
        .long   0x3B13B13C
790
        .long   0x55555556
791
        .long   0x745D1746
792
        .long   0x9999999A
793
        .long   0xC71C71C8
794
        .long   0x0
795
        .long   0x24924925
796
        .long   0x55555556
797
        .long   0x9999999A
798
        .long   0x0
799
        .long   0x55555556
800
        .long   0x0
801
        .long   0x0
802
LOCAL(div_table_inv):
803
        .long   0x0
804
        .long   0x0
805
        .long   0x0
806
        .long   0x55555556
807
        .long   0x0
808
        .long   0x9999999A
809
        .long   0x55555556
810
        .long   0x24924925
811
        .long   0x0
812
        .long   0xC71C71C8
813
        .long   0x9999999A
814
        .long   0x745D1746
815
        .long   0x55555556
816
        .long   0x3B13B13C
817
        .long   0x24924925
818
        .long   0x11111112
819
        .long   0x0
820
        .long   0xE1E1E1E2
821
        .long   0xC71C71C8
822
        .long   0xAF286BCB
823
        .long   0x9999999A
824
        .long   0x86186187
825
        .long   0x745D1746
826
        .long   0x642C8591
827
        .long   0x55555556
828
        .long   0x47AE147B
829
        .long   0x3B13B13C
830
        .long   0x2F684BDB
831
        .long   0x24924925
832
        .long   0x1A7B9612
833
        .long   0x11111112
834
        .long   0x8421085
835
        .long   0x0
836
        .long   0xF07C1F08
837
        .long   0xE1E1E1E2
838
        .long   0xD41D41D5
839
        .long   0xC71C71C8
840
        .long   0xBACF914D
841
        .long   0xAF286BCB
842
        .long   0xA41A41A5
843
        .long   0x9999999A
844
        .long   0x8F9C18FA
845
        .long   0x86186187
846
        .long   0x7D05F418
847
        .long   0x745D1746
848
        .long   0x6C16C16D
849
        .long   0x642C8591
850
        .long   0x5C9882BA
851
        .long   0x55555556
852
        .long   0x4E5E0A73
853
        .long   0x47AE147B
854
        .long   0x41414142
855
        .long   0x3B13B13C
856
        .long   0x3521CFB3
857
        .long   0x2F684BDB
858
        .long   0x29E4129F
859
        .long   0x24924925
860
        .long   0x1F7047DD
861
        .long   0x1A7B9612
862
        .long   0x15B1E5F8
863
        .long   0x11111112
864
        .long   0xC9714FC
865
        .long   0x8421085
866
        .long   0x4104105
867
        .long   0x0
868
        .long   0xF81F81F9
869
        .long   0xF07C1F08
870
        .long   0xE9131AC0
871
        .long   0xE1E1E1E2
872
        .long   0xDAE6076C
873
        .long   0xD41D41D5
874
        .long   0xCD856891
875
        .long   0xC71C71C8
876
        .long   0xC0E07039
877
        .long   0xBACF914D
878
        .long   0xB4E81B4F
879
        .long   0xAF286BCB
880
        .long   0xA98EF607
881
        .long   0xA41A41A5
882
        .long   0x9EC8E952
883
        .long   0x9999999A
884
        .long   0x948B0FCE
885
        .long   0x8F9C18FA
886
        .long   0x8ACB90F7
887
        .long   0x86186187
888
        .long   0x81818182
889
        .long   0x7D05F418
890
        .long   0x78A4C818
891
        .long   0x745D1746
892
        .long   0x702E05C1
893
        .long   0x6C16C16D
894
        .long   0x68168169
895
        .long   0x642C8591
896
        .long   0x60581606
897
        .long   0x5C9882BA
898
        .long   0x58ED2309
899
        .long   0x55555556
900
        .long   0x51D07EAF
901
        .long   0x4E5E0A73
902
        .long   0x4AFD6A06
903
        .long   0x47AE147B
904
        .long   0x446F8657
905
        .long   0x41414142
906
        .long   0x3E22CBCF
907
        .long   0x3B13B13C
908
        .long   0x38138139
909
        .long   0x3521CFB3
910
        .long   0x323E34A3
911
        .long   0x2F684BDB
912
        .long   0x2C9FB4D9
913
        .long   0x29E4129F
914
        .long   0x27350B89
915
        .long   0x24924925
916
        .long   0x21FB7813
917
        .long   0x1F7047DD
918
        .long   0x1CF06ADB
919
        .long   0x1A7B9612
920
        .long   0x18118119
921
        .long   0x15B1E5F8
922
        .long   0x135C8114
923
        .long   0x11111112
924
        .long   0xECF56BF
925
        .long   0xC9714FC
926
        .long   0xA6810A7
927
        .long   0x8421085
928
        .long   0x624DD30
929
        .long   0x4104105
930
        .long   0x2040811
931
        /* maximum error: 0.987342 scaled: 0.921875*/
932
 
933
#endif /* SH3 / SH4 */
934
 
935
#endif /* L_div_table */
936
#endif /* !__SHMEDIA__ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.