comparison alpha/dsputil_alpha.c @ 856:3c6df37177dd libavcodec

* using DSPContext - so each codec could use its local (sub)set of CPU extension * these are untested - users/developers please check
author kabi
date Mon, 11 Nov 2002 10:04:45 +0000
parents 2f7da29ede37
children 3dbbdc2f8bd3
comparison
equal deleted inserted replaced
855:df26acd21c84 856:3c6df37177dd
279 { 279 {
280 put_pixels_axp_asm(block, pixels, line_size, h); 280 put_pixels_axp_asm(block, pixels, line_size, h);
281 put_pixels_axp_asm(block + 8, pixels + 8, line_size, h); 281 put_pixels_axp_asm(block + 8, pixels + 8, line_size, h);
282 } 282 }
283 283
284 void dsputil_init_alpha(void) 284 void dsputil_init_alpha(DSPContext* c, unsigned mask)
285 { 285 {
286 put_pixels_tab[0][0] = put_pixels16_axp_asm; 286 c->put_pixels_tab[0][0] = put_pixels16_axp_asm;
287 put_pixels_tab[0][1] = put_pixels16_x2_axp; 287 c->put_pixels_tab[0][1] = put_pixels16_x2_axp;
288 put_pixels_tab[0][2] = put_pixels16_y2_axp; 288 c->put_pixels_tab[0][2] = put_pixels16_y2_axp;
289 put_pixels_tab[0][3] = put_pixels16_xy2_axp; 289 c->put_pixels_tab[0][3] = put_pixels16_xy2_axp;
290 290
291 put_no_rnd_pixels_tab[0][0] = put_pixels16_axp_asm; 291 c->put_no_rnd_pixels_tab[0][0] = put_pixels16_axp_asm;
292 put_no_rnd_pixels_tab[0][1] = put_no_rnd_pixels16_x2_axp; 292 c->put_no_rnd_pixels_tab[0][1] = put_no_rnd_pixels16_x2_axp;
293 put_no_rnd_pixels_tab[0][2] = put_no_rnd_pixels16_y2_axp; 293 c->put_no_rnd_pixels_tab[0][2] = put_no_rnd_pixels16_y2_axp;
294 put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy2_axp; 294 c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy2_axp;
295 295
296 avg_pixels_tab[0][0] = avg_pixels16_axp; 296 c->avg_pixels_tab[0][0] = avg_pixels16_axp;
297 avg_pixels_tab[0][1] = avg_pixels16_x2_axp; 297 c->avg_pixels_tab[0][1] = avg_pixels16_x2_axp;
298 avg_pixels_tab[0][2] = avg_pixels16_y2_axp; 298 c->avg_pixels_tab[0][2] = avg_pixels16_y2_axp;
299 avg_pixels_tab[0][3] = avg_pixels16_xy2_axp; 299 c->avg_pixels_tab[0][3] = avg_pixels16_xy2_axp;
300 300
301 avg_no_rnd_pixels_tab[0][0] = avg_no_rnd_pixels16_axp; 301 c->avg_no_rnd_pixels_tab[0][0] = avg_no_rnd_pixels16_axp;
302 avg_no_rnd_pixels_tab[0][1] = avg_no_rnd_pixels16_x2_axp; 302 c->avg_no_rnd_pixels_tab[0][1] = avg_no_rnd_pixels16_x2_axp;
303 avg_no_rnd_pixels_tab[0][2] = avg_no_rnd_pixels16_y2_axp; 303 c->avg_no_rnd_pixels_tab[0][2] = avg_no_rnd_pixels16_y2_axp;
304 avg_no_rnd_pixels_tab[0][3] = avg_no_rnd_pixels16_xy2_axp; 304 c->avg_no_rnd_pixels_tab[0][3] = avg_no_rnd_pixels16_xy2_axp;
305 305
306 put_pixels_tab[1][0] = put_pixels_axp_asm; 306 c->put_pixels_tab[1][0] = put_pixels_axp_asm;
307 put_pixels_tab[1][1] = put_pixels_x2_axp; 307 c->put_pixels_tab[1][1] = put_pixels_x2_axp;
308 put_pixels_tab[1][2] = put_pixels_y2_axp; 308 c->put_pixels_tab[1][2] = put_pixels_y2_axp;
309 put_pixels_tab[1][3] = put_pixels_xy2_axp; 309 c->put_pixels_tab[1][3] = put_pixels_xy2_axp;
310 310
311 put_no_rnd_pixels_tab[1][0] = put_pixels_axp_asm; 311 c->put_no_rnd_pixels_tab[1][0] = put_pixels_axp_asm;
312 put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels_x2_axp; 312 c->put_no_rnd_pixels_tab[1][1] = put_no_rnd_pixels_x2_axp;
313 put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels_y2_axp; 313 c->put_no_rnd_pixels_tab[1][2] = put_no_rnd_pixels_y2_axp;
314 put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels_xy2_axp; 314 c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels_xy2_axp;
315 315
316 avg_pixels_tab[1][0] = avg_pixels_axp; 316 c->avg_pixels_tab[1][0] = avg_pixels_axp;
317 avg_pixels_tab[1][1] = avg_pixels_x2_axp; 317 c->avg_pixels_tab[1][1] = avg_pixels_x2_axp;
318 avg_pixels_tab[1][2] = avg_pixels_y2_axp; 318 c->avg_pixels_tab[1][2] = avg_pixels_y2_axp;
319 avg_pixels_tab[1][3] = avg_pixels_xy2_axp; 319 c->avg_pixels_tab[1][3] = avg_pixels_xy2_axp;
320 320
321 avg_no_rnd_pixels_tab[1][0] = avg_no_rnd_pixels_axp; 321 c->avg_no_rnd_pixels_tab[1][0] = avg_no_rnd_pixels_axp;
322 avg_no_rnd_pixels_tab[1][1] = avg_no_rnd_pixels_x2_axp; 322 c->avg_no_rnd_pixels_tab[1][1] = avg_no_rnd_pixels_x2_axp;
323 avg_no_rnd_pixels_tab[1][2] = avg_no_rnd_pixels_y2_axp; 323 c->avg_no_rnd_pixels_tab[1][2] = avg_no_rnd_pixels_y2_axp;
324 avg_no_rnd_pixels_tab[1][3] = avg_no_rnd_pixels_xy2_axp; 324 c->avg_no_rnd_pixels_tab[1][3] = avg_no_rnd_pixels_xy2_axp;
325 325
326 clear_blocks = clear_blocks_axp; 326 c->clear_blocks = clear_blocks_axp;
327 327
328 /* amask clears all bits that correspond to present features. */ 328 /* amask clears all bits that correspond to present features. */
329 if (amask(AMASK_MVI) == 0) { 329 if (amask(AMASK_MVI) == 0) {
330 put_pixels_clamped = put_pixels_clamped_mvi_asm; 330 c->put_pixels_clamped = put_pixels_clamped_mvi_asm;
331 add_pixels_clamped = add_pixels_clamped_mvi_asm; 331 c->add_pixels_clamped = add_pixels_clamped_mvi_asm;
332 332
333 get_pixels = get_pixels_mvi; 333 c->get_pixels = get_pixels_mvi;
334 diff_pixels = diff_pixels_mvi; 334 c->diff_pixels = diff_pixels_mvi;
335 pix_abs8x8 = pix_abs8x8_mvi; 335 c->pix_abs8x8 = pix_abs8x8_mvi;
336 pix_abs16x16 = pix_abs16x16_mvi_asm; 336 c->pix_abs16x16 = pix_abs16x16_mvi_asm;
337 pix_abs16x16_x2 = pix_abs16x16_x2_mvi; 337 c->pix_abs16x16_x2 = pix_abs16x16_x2_mvi;
338 pix_abs16x16_y2 = pix_abs16x16_y2_mvi; 338 c->pix_abs16x16_y2 = pix_abs16x16_y2_mvi;
339 pix_abs16x16_xy2 = pix_abs16x16_xy2_mvi; 339 c->pix_abs16x16_xy2 = pix_abs16x16_xy2_mvi;
340 } 340 }
341 } 341 }