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