Home | History | Annotate | Download | only in bfin
      1 	.align 4
      2 .global _filter_mem16;
      3 .type _filter_mem16, STT_FUNC;
      4 _filter_mem16:
      5 	[--sp] = ( r7:7 );
      6 
      7 	[--SP] = R4;
      8 	[--SP] = R5;
      9 	[--SP] = P3;
     10 	[--SP] = P4;
     11 	LINK 68;
     12 	[FP+28] = R0;
     13 	[FP+32] = R1;
     14 	[FP+36] = R2;
     15 	[FP+-68] = SP;
     16 	R0 = SP;
     17 	[FP+-24] = R0;
     18 	R0 = [FP+44];
     19 	R3 = R0;
     20 	R3 += 1;
     21 	R2 = R3;
     22 	R0 = R2;
     23 	R1 = 0 (X);
     24 	R2 = -1 (X);
     25 	R0 = R0 & R2;
     26 	R2 = 15 (X);
     27 	R1 = R1 & R2;
     28 	R2 = R0 >> 27;
     29 	R7 = R1 << 5;
     30 	[FP+-60] = R7;
     31 	R7 = [FP+-60];
     32 	R7 = R2 | R7;
     33 	[FP+-60] = R7;
     34 	R2 = R0 << 5;
     35 	[FP+-64] = R2;
     36 	R0 = [FP+-64];
     37 	R1 = [FP+-60];
     38 	[FP+-64] = R0;
     39 	[FP+-60] = R1;
     40 	R0 = -1 (X);
     41 	R1 = [FP+-64];
     42 	R1 = R1 & R0;
     43 	[FP+-64] = R1;
     44 	R0 = 15 (X);
     45 	R2 = [FP+-60];
     46 	R2 = R2 & R0;
     47 	R2 = R3;
     48 	R0 = R2;
     49 	R1 = 0 (X);
     50 	R2 = -1 (X);
     51 	R0 = R0 & R2;
     52 	R2 = 15 (X);
     53 	R1 = R1 & R2;
     54 	R2 = R0 >> 27;
     55 	R7 = R1 << 5;
     56 	[FP+-52] = R7;
     57 	R7 = [FP+-52];
     58 	R7 = R2 | R7;
     59 	[FP+-52] = R7;
     60 	R2 = R0 << 5;
     61 	[FP+-56] = R2;
     62 	R0 = [FP+-56];
     63 	R1 = [FP+-52];
     64 	[FP+-56] = R0;
     65 	[FP+-52] = R1;
     66 	R0 = -1 (X);
     67 	R1 = [FP+-56];
     68 	R1 = R1 & R0;
     69 	[FP+-56] = R1;
     70 	R0 = 15 (X);
     71 	R2 = [FP+-52];
     72 	R2 = R2 & R0;
     73 	R0 = R3;
     74 	R0 <<= 2;
     75 	R0 += 3;
     76 	R0 += 3;
     77 	R0 >>= 2;
     78 	P1 = R0;
     79 	P2 = P1 << 2;
     80 	SP -= P2;
     81 	[FP+-48] = SP;
     82 	R0 = [FP+-48];
     83 	R0 += 3;
     84 	R0 >>= 2;
     85 	R0 <<= 2;
     86 	[FP+-48] = R0;
     87 	R0 = [FP+-48];
     88 	[FP+-12] = R0;
     89 	R0 = [FP+48];
     90 	R0 += 1;
     91 	R3 = R0 << 1;
     92 	R2 = R3;
     93 	R0 = R2;
     94 	R1 = 0 (X);
     95 	R2 = -1 (X);
     96 	R0 = R0 & R2;
     97 	R2 = 15 (X);
     98 	R1 = R1 & R2;
     99 	R2 = R0 >> 27;
    100 	R7 = R1 << 5;
    101 	[FP+-40] = R7;
    102 	R7 = [FP+-40];
    103 	R7 = R2 | R7;
    104 	[FP+-40] = R7;
    105 	R2 = R0 << 5;
    106 	[FP+-44] = R2;
    107 	R0 = [FP+-44];
    108 	R1 = [FP+-40];
    109 	[FP+-44] = R0;
    110 	[FP+-40] = R1;
    111 	R0 = -1 (X);
    112 	R1 = [FP+-44];
    113 	R1 = R1 & R0;
    114 	[FP+-44] = R1;
    115 	R0 = 15 (X);
    116 	R2 = [FP+-40];
    117 	R2 = R2 & R0;
    118 	R2 = R3;
    119 	R0 = R2;
    120 	R1 = 0 (X);
    121 	R2 = -1 (X);
    122 	R0 = R0 & R2;
    123 	R2 = 15 (X);
    124 	R1 = R1 & R2;
    125 	R2 = R0 >> 27;
    126 	R7 = R1 << 5;
    127 	[FP+-32] = R7;
    128 	R7 = [FP+-32];
    129 	R7 = R2 | R7;
    130 	[FP+-32] = R7;
    131 	R2 = R0 << 5;
    132 	[FP+-36] = R2;
    133 	R0 = [FP+-36];
    134 	R1 = [FP+-32];
    135 	[FP+-36] = R0;
    136 	[FP+-32] = R1;
    137 	R0 = -1 (X);
    138 	R1 = [FP+-36];
    139 	R1 = R1 & R0;
    140 	[FP+-36] = R1;
    141 	R0 = 15 (X);
    142 	R2 = [FP+-32];
    143 	R2 = R2 & R0;
    144 	R0 = R3;
    145 	R0 <<= 2;
    146 	R0 += 3;
    147 	R0 += 3;
    148 	R0 >>= 2;
    149 	P1 = R0;
    150 	P2 = P1 << 2;
    151 	SP -= P2;
    152 	[FP+-28] = SP;
    153 	R0 = [FP+-28];
    154 	R0 += 3;
    155 	R0 >>= 2;
    156 	R0 <<= 2;
    157 	[FP+-28] = R0;
    158 	R0 = [FP+-28];
    159 	[FP+-8] = R0;
    160 	R0 = [FP+-12];
    161 	R0 += 4;
    162 	[FP+-16] = R0;
    163 	R0 = [FP+-8];
    164 	[FP+-20] = R0;
    165 	R0 = 0 (X);
    166 	[FP+-4] = R0;
    167 	jump.s .L6;
    168 .L7:
    169 	R1 = [FP+-20];
    170 	R0 = [FP+-4];
    171 	R0 <<= 2;
    172 	R1 = R1 + R0;
    173 	P1 = R1;
    174 	R0 = [FP+-4];
    175 	R1 = R0 << 1;
    176 	R0 = [FP+32];
    177 	R0 = R0 + R1;
    178 	P2 = R0;
    179 	R0 = W [P2] (Z);
    180 	W [P1] = R0;
    181 	R1 = [FP+-20];
    182 	R0 = [FP+-4];
    183 	R0 <<= 1;
    184 	R0 += 1;
    185 	R0 <<= 1;
    186 	R1 = R1 + R0;
    187 	P1 = R1;
    188 	R0 = [FP+-4];
    189 	R1 = R0 << 1;
    190 	R0 = [FP+36];
    191 	R0 = R0 + R1;
    192 	P2 = R0;
    193 	R0 = W [P2] (Z);
    194 	W [P1] = R0;
    195 	R0 = [FP+-4];
    196 	R0 += 1;
    197 	[FP+-4] = R0;
    198 .L6:
    199 	R1 = [FP+48];
    200 	R0 = [FP+-4];
    201 	cc =R0<R1;
    202 	if cc jump .L7;
    203 	R0 = [FP+48];
    204 	P0 = [FP+-20];
    205 	I0 = P0;
    206 	B0 = P0;
    207 	L0 = 0;
    208 	P2 = [FP+-16];
    209 	I2 = P2;
    210 	L2 = 0;
    211 	P4 = [FP+52];
    212 	P0 = [FP+28];
    213 	P1 = [FP+40];
    214 	R1 = [P4++];
    215 	R1 <<= 3;
    216 	R1.L = R1 (RND);
    217 	R2 = W[P0++];
    218 	R1.L = R1.L + R2.L;
    219 	W[P1++] = R1;
    220 	R2 = PACK(R1.L, R2.L);
    221 	[P2] = R2;
    222 	R0 += -1;
    223 	R3 = 0;
    224 	LC0 = R0;
    225 	LOOP filter_start256 LC0;
    226 	LOOP_BEGIN filter_start256;
    227 	R3 += 1;
    228 	LC1 = R3;
    229 	R1 = [P4++];
    230 	A1 = R1;
    231 	A0 = 0;
    232 	I0 = B0;
    233 	I2 = P2;
    234 	P2 += 4;
    235 	R4 = [I0++] || R5 = [I2--];
    236 	LOOP filter_start_inner256 LC1;
    237 	LOOP_BEGIN filter_start_inner256;
    238 	A1 -= R4.H*R5.H, A0 += R4.L*R5.L (IS) || R4 = [I0++] || R5 = [I2--];
    239 	LOOP_END filter_start_inner256;
    240 	A0 += A1;
    241 	R4 = A0;
    242 	R4 <<= 3;
    243 	R4.L = R4 (RND);
    244 	R2 = W[P0++];
    245 	R4.L = R4.L + R2.L;
    246 	W[P1++] = R4;
    247 	R2 = PACK(R4.L, R2.L);
    248 	[P2] = R2;
    249 	LOOP_END filter_start256;
    250 	R0 = [FP+48];
    251 	R0 <<= 1;
    252 	I0 = B0;
    253 	R0 <<= 1;
    254 	L0 = R0;
    255 	R0 = [FP+48];
    256 	R2 = [FP+44];
    257 	R2 = R2 - R0;
    258 	R4 = [I0++];
    259 	LC0 = R2;
    260 	P3 = R0;
    261 	R0 <<= 2;
    262 	R0 += 8;
    263 	I2 = P2;
    264 	M0 = R0;
    265 	A1 = A0 = 0;
    266 	R5 = [I2--];
    267 	LOOP filter_mid256 LC0;
    268 	LOOP_BEGIN filter_mid256;
    269 	LOOP filter_mid_inner256 LC1=P3;
    270 	LOOP_BEGIN filter_mid_inner256;
    271 	A1 -= R4.H*R5.H, A0 += R4.L*R5.L (IS) || R4 = [I0++] || R5 = [I2--];
    272 	LOOP_END filter_mid_inner256;
    273 	R0 = (A0 += A1) || I2 += M0;
    274 	R0 = R0 << 3 || R5 = W[P0++];
    275 	R0.L = R0 (RND);
    276 	R0.L = R0.L + R5.L;
    277 	R5 = PACK(R0.L, R5.L) || W[P1++] = R0;
    278 	A1 = A0 = 0 || [I2--] = R5
    279 	LOOP_END filter_mid256;
    280 	I2 += 4;
    281 	P2 = I2;
    282 	P4 = [FP+52];
    283 	R0 = [FP+48];
    284 	LC0 = R0;
    285 	P0 = B0;
    286 	A1 = A0 = 0;
    287 	LOOP mem_update256 LC0;
    288 	LOOP_BEGIN mem_update256;
    289 	I2 = P2;
    290 	I0 = P0;
    291 	P0 += 4;
    292 	R0 = LC0;
    293 	LC1 = R0;
    294 	R5 = [I2--] || R4 = [I0++];
    295 	LOOP mem_accum256 LC1;
    296 	LOOP_BEGIN mem_accum256;
    297 	A1 -= R4.H*R5.H, A0 += R4.L*R5.L (IS) || R4 = [I0++] || R5 = [I2--];
    298 	LOOP_END mem_accum256;
    299 	R0 = (A0 += A1);
    300 	A1 = A0 = 0 || [P4++] = R0;
    301 	LOOP_END mem_update256;
    302 	L0 = 0;
    303 	SP = [FP+-24];
    304 	SP = [FP+-68];
    305 	UNLINK;
    306 	P4 = [SP++];
    307 	P3 = [SP++];
    308 	R5 = [SP++];
    309 	R4 = [SP++];
    310 	( r7:7 ) = [sp++];
    311 	rts;
    312 	.size	_filter_mem16, .-_filter_mem16
    313