comparison alpha/dsputil_alpha.c @ 511:fa4425cf6b31 libavcodec

Assembly version of put_pixels. This is currently the function that takes the most time, and it allows for more efficient unaligned access and better control over memory latencies.
author mellum
date Mon, 01 Jul 2002 23:47:01 +0000
parents cab79946302f
children fb670ca9f8eb
comparison
equal deleted inserted replaced
510:ccd90a9cc09b 511:fa4425cf6b31
20 #include "asm.h" 20 #include "asm.h"
21 #include "../dsputil.h" 21 #include "../dsputil.h"
22 22
23 void simple_idct_axp(DCTELEM *block); 23 void simple_idct_axp(DCTELEM *block);
24 24
25 void put_pixels_axp_asm(uint8_t *block, const uint8_t *pixels,
26 int line_size, int h);
25 void put_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels, 27 void put_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels,
26 int line_size); 28 int line_size);
27 void add_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels, 29 void add_pixels_clamped_mvi_asm(const DCTELEM *block, uint8_t *pixels,
28 int line_size); 30 int line_size);
29 31
230 232
231 #endif 233 #endif
232 234
233 void dsputil_init_alpha(void) 235 void dsputil_init_alpha(void)
234 { 236 {
235 put_pixels_tab[0] = put_pixels_axp; 237 put_pixels_tab[0] = put_pixels_axp_asm;
236 put_pixels_tab[1] = put_pixels_x2_axp; 238 put_pixels_tab[1] = put_pixels_x2_axp;
237 put_pixels_tab[2] = put_pixels_y2_axp; 239 put_pixels_tab[2] = put_pixels_y2_axp;
238 put_pixels_tab[3] = put_pixels_xy2_axp; 240 put_pixels_tab[3] = put_pixels_xy2_axp;
239 241
240 put_no_rnd_pixels_tab[0] = put_pixels_axp; 242 put_no_rnd_pixels_tab[0] = put_pixels_axp_asm;
241 put_no_rnd_pixels_tab[1] = put_no_rnd_pixels_x2_axp; 243 put_no_rnd_pixels_tab[1] = put_no_rnd_pixels_x2_axp;
242 put_no_rnd_pixels_tab[2] = put_no_rnd_pixels_y2_axp; 244 put_no_rnd_pixels_tab[2] = put_no_rnd_pixels_y2_axp;
243 put_no_rnd_pixels_tab[3] = put_no_rnd_pixels_xy2_axp; 245 put_no_rnd_pixels_tab[3] = put_no_rnd_pixels_xy2_axp;
244 246
245 /* amask clears all bits that correspond to present features. */ 247 /* amask clears all bits that correspond to present features. */