Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.9.4.
  1	.global	__sdivsi3
  2	.global	__sdivsi3_1
  3	.global	__sdivsi3_2
  4	.section	.text..SHmedia32,"ax"
  5	.align	2
  6
  7	/* inputs: r4,r5 */
  8	/* clobbered: r1,r18,r19,r20,r21,r25,tr0 */
  9	/* result in r0 */
 10__sdivsi3:
 11__sdivsi3_1:
 12	ptb __div_table,tr0
 13	gettr tr0,r20
 14
 15__sdivsi3_2:
 16	nsb r5, r1
 17	shlld r5, r1, r25    /* normalize; [-2 ..1, 1..2) in s2.62 */
 18	shari r25, 58, r21   /* extract 5(6) bit index (s2.4 with hole -1..1) */
 19	/* bubble */
 20	ldx.ub r20, r21, r19 /* u0.8 */
 21	shari r25, 32, r25   /* normalize to s2.30 */
 22	shlli r21, 1, r21
 23	muls.l r25, r19, r19 /* s2.38 */
 24	ldx.w r20, r21, r21  /* s2.14 */
 25	ptabs r18, tr0
 26	shari r19, 24, r19   /* truncate to s2.14 */
 27	sub r21, r19, r19    /* some 11 bit inverse in s1.14 */
 28	muls.l r19, r19, r21 /* u0.28 */
 29	sub r63, r1, r1
 30	addi r1, 92, r1
 31	muls.l r25, r21, r18 /* s2.58 */
 32	shlli r19, 45, r19   /* multiply by two and convert to s2.58 */
 33	/* bubble */
 34	sub r19, r18, r18
 35	shari r18, 28, r18   /* some 22 bit inverse in s1.30 */
 36	muls.l r18, r25, r0  /* s2.60 */
 37	muls.l r18, r4, r25 /* s32.30 */
 38	/* bubble */
 39	shari r0, 16, r19   /* s-16.44 */
 40	muls.l r19, r18, r19 /* s-16.74 */
 41	shari r25, 63, r0
 42	shari r4, 14, r18   /* s19.-14 */
 43	shari r19, 30, r19   /* s-16.44 */
 44	muls.l r19, r18, r19 /* s15.30 */
 45	xor r21, r0, r21    /* You could also use the constant 1 << 27. */
 46	add r21, r25, r21
 47	sub r21, r19, r21
 48	shard r21, r1, r21
 49	sub r21, r0, r0
 50	blink tr0, r63
 51	
 52/* This table has been generated by divtab.c .
 53Defects for bias -330:
 54   Max defect: 6.081536e-07 at -1.000000e+00
 55   Min defect: 2.849516e-08 at 1.030651e+00
 56   Max 2nd step defect: 9.606539e-12 at -1.000000e+00
 57   Min 2nd step defect: 0.000000e+00 at 0.000000e+00
 58   Defect at 1: 1.238659e-07
 59   Defect at -2: 1.061708e-07 */
 60
 61	.balign 2
 62	.type	__div_table,@object
 63	.size	__div_table,128
 64/* negative division constants */
 65	.word	-16638
 66	.word	-17135
 67	.word	-17737
 68	.word	-18433
 69	.word	-19103
 70	.word	-19751
 71	.word	-20583
 72	.word	-21383
 73	.word	-22343
 74	.word	-23353
 75	.word	-24407
 76	.word	-25582
 77	.word	-26863
 78	.word	-28382
 79	.word	-29965
 80	.word	-31800
 81/* negative division factors */
 82	.byte	66
 83	.byte	70
 84	.byte	75
 85	.byte	81
 86	.byte	87
 87	.byte	93
 88	.byte	101
 89	.byte	109
 90	.byte	119
 91	.byte	130
 92	.byte	142
 93	.byte	156
 94	.byte	172
 95	.byte	192
 96	.byte	214
 97	.byte	241
 98	.skip 16
 99	.global	__div_table
100__div_table:
101	.skip 16
102/* positive division factors */
103	.byte	241
104	.byte	214
105	.byte	192
106	.byte	172
107	.byte	156
108	.byte	142
109	.byte	130
110	.byte	119
111	.byte	109
112	.byte	101
113	.byte	93
114	.byte	87
115	.byte	81
116	.byte	75
117	.byte	70
118	.byte	66
119/* positive division constants */
120	.word	31801
121	.word	29966
122	.word	28383
123	.word	26864
124	.word	25583
125	.word	24408
126	.word	23354
127	.word	22344
128	.word	21384
129	.word	20584
130	.word	19752
131	.word	19104
132	.word	18434
133	.word	17738
134	.word	17136
135	.word	16639