}
void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx){    // Common optimizations whether Altivec is available or not  switch (check_dcbzl_effect()) {  case 32:    c->clear_blocks = clear_blocks_dcbz32_ppc;    break;  case 128:    c->clear_blocks = clear_blocks_dcbz128_ppc;    break;  default:    break;  }#ifdef HAVE_ALTIVEC  dsputil_h264_init_ppc(c, avctx);      if (has_altivec()) {        mm_flags |= MM_ALTIVEC;                // Altivec specific optimisations        c->pix_abs[0][1] = sad16_x2_altivec;        c->pix_abs[0][2] = sad16_y2_altivec;        c->pix_abs[0][3] = sad16_xy2_altivec;        c->pix_abs[0][0] = sad16_altivec;        c->pix_abs[1][0] = sad8_altivec;        c->sad[0]= sad16_altivec;        c->sad[1]= sad8_altivec;        c->pix_norm1 = pix_norm1_altivec;        c->sse[1]= sse8_altivec;        c->sse[0]= sse16_altivec;        c->pix_sum = pix_sum_altivec;        c->diff_pixels = diff_pixels_altivec;        c->get_pixels = get_pixels_altivec;// next one disabled as it's untested.#if 0        c->add_bytes= add_bytes_altivec;#endif /* 0 */        c->put_pixels_tab[0][0] = put_pixels16_altivec;        /* the two functions do the same thing, so use the same code */        c->put_no_rnd_pixels_tab[0][0] = put_pixels16_altivec;        c->avg_pixels_tab[0][0] = avg_pixels16_altivec;        c->avg_pixels_tab[1][0] = avg_pixels8_altivec;	c->avg_pixels_tab[1][3] = avg_pixels8_xy2_altivec;        c->put_pixels_tab[1][3] = put_pixels8_xy2_altivec;        c->put_no_rnd_pixels_tab[1][3] = put_no_rnd_pixels8_xy2_altivec;        c->put_pixels_tab[0][3] = put_pixels16_xy2_altivec;        c->put_no_rnd_pixels_tab[0][3] = put_no_rnd_pixels16_xy2_altivec;        	c->gmc1 = gmc1_altivec;#ifdef CONFIG_DARWIN // ATM gcc-3.3 and gcc-3.4 fail to compile these in linux...	c->hadamard8_diff[0] = hadamard8_diff16_altivec;	c->hadamard8_diff[1] = hadamard8_diff8x8_altivec;#endif#ifdef CONFIG_ENCODERS	if (avctx->dct_algo == FF_DCT_AUTO ||	    avctx->dct_algo == FF_DCT_ALTIVEC)	{	    c->fdct = fdct_altivec;	}#endif //CONFIG_ENCODERS        if ((avctx->idct_algo == FF_IDCT_AUTO) ||                (avctx->idct_algo == FF_IDCT_ALTIVEC))        {            c->idct_put = idct_put_altivec;            c->idct_add = idct_add_altivec;#ifndef ALTIVEC_USE_REFERENCE_C_CODE            c->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM;#else /* ALTIVEC_USE_REFERENCE_C_CODE */            c->idct_permutation_type = FF_NO_IDCT_PERM;#endif /* ALTIVEC_USE_REFERENCE_C_CODE */        }        #ifdef POWERPC_PERFORMANCE_REPORT        {          int i, j;          for (i = 0 ; i < powerpc_perf_total ; i++)          {	    for (j = 0; j < POWERPC_NUM_PMC_ENABLED ; j++)	      {		perfdata[j][i][powerpc_data_min] = 0xFFFFFFFFFFFFFFFFULL;		perfdata[j][i][powerpc_data_max] = 0x0000000000000000ULL;		perfdata[j][i][powerpc_data_sum] = 0x0000000000000000ULL;		perfdata[j][i][powerpc_data_num] = 0x0000000000000000ULL;	      }	  }        }#endif /* POWERPC_PERFORMANCE_REPORT */    } else#endif /* HAVE_ALTIVEC */    {        // Non-AltiVec PPC optimisations        // ... pending ...    }}