⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decode_altivec.c

📁 mips上编译过的mpg 运行正常 环境:AU12
💻 C
📖 第 1 页 / 共 2 页
字号:
			v8 = vec_mergel(v3,v4);						vsum = vec_sub(v5,v6);			v9 = vec_sub(v7,v8);			vsum = vec_add(vsum,v9);						v3 = (vector float)vec_cts(vsum,0);			v1 = (vector float)vec_cmpgt(vsum,vmax);			v2 = (vector float)vec_cmplt(vsum,vmin);			vsample1 = vec_ld(0,samples);			vsample2 = vec_ld(15,samples);			v3 = (vector float)vec_packs((vector signed int)v3,(vector signed int)v3);			v4 = (vector float)vec_perm(vsample1,vsample2,vperm3);			v5 = (vector float)vec_perm(v3,v4,vperm5);			v6 = (vector float)vec_perm(vsample2,vsample1,vperm3);			v7 = (vector float)vec_perm(v5,v6,vperm4);			v8 = (vector float)vec_perm(v6,v5,vperm4);			vec_st((vector signed short)v7,15,samples);			vec_st((vector signed short)v8,0,samples);			samples += 8;#ifdef __APPLE__			v1 = (vector float)vec_sr((vector unsigned int)v1,(vector unsigned int)(31));			v2 = (vector float)vec_sr((vector unsigned int)v2,(vector unsigned int)(31));#else			v1 = (vector float)vec_sr((vector unsigned int)v1,(vector unsigned int){31,31,31,31});			v2 = (vector float)vec_sr((vector unsigned int)v2,(vector unsigned int){31,31,31,31});#endif			v5 = (vector float)vec_add((vector unsigned int)v1,(vector unsigned int)v2);			vclip = vec_sums((vector signed int)v5,vclip);		}				{			real sum;			sum  = REAL_MUL(window[0x0], b0[0x0]);			sum += REAL_MUL(window[0x2], b0[0x2]);			sum += REAL_MUL(window[0x4], b0[0x4]);			sum += REAL_MUL(window[0x6], b0[0x6]);			sum += REAL_MUL(window[0x8], b0[0x8]);			sum += REAL_MUL(window[0xA], b0[0xA]);			sum += REAL_MUL(window[0xC], b0[0xC]);			sum += REAL_MUL(window[0xE], b0[0xE]);			WRITE_SAMPLE(samples,sum,clip);			b0-=0x10,window-=0x20,samples+=step;		}		window += bo1<<1;				vperm1 = vec_lvsl(0,window);#ifdef __APPLE__		vperm2 = vec_perm(vperm1,vperm1,(vector unsigned char)(12,13,14,15,8,9,10,11,4,5,6,7,0,1,2,3));#else		vperm2 = vec_perm(vperm1,vperm1,(vector unsigned char){12,13,14,15,8,9,10,11,4,5,6,7,0,1,2,3});#endif		vperm3 = vec_lvsl(0,samples);		vperm4 = vec_lvsr(0,samples);		for (j=3;j;j--)		{			vsum = vec_xor(vsum,vsum);			vsum2 = vec_xor(vsum2,vsum2);			vsum3 = vec_xor(vsum3,vsum3);			vsum4 = vec_xor(vsum4,vsum4);			v1 = vec_ld(-1,window);			v2 = vec_ld(-16,window);			v3 = vec_ld(-32,window);			v4 = vec_ld(-48,window);			v5 = vec_ld(-64,window);			v1 = vec_perm(v2,v1,vperm2);			v6 = vec_ld(0,b0);			v2 = vec_perm(v3,v2,vperm2);			v7 = vec_ld(16,b0);			v3 = vec_perm(v4,v3,vperm2);			v8 = vec_ld(32,b0);			v4 = vec_perm(v5,v4,vperm2);			v9 = vec_ld(48,b0);						vsum = vec_nmsub(v1,v6,vsum);			vsum = vec_nmsub(v2,v7,vsum);			vsum = vec_nmsub(v3,v8,vsum);			vsum = vec_nmsub(v4,v9,vsum);						window -= 32;			b0 -= 16;						v1 = vec_ld(0,window);			v2 = vec_ld(-16,window);			v3 = vec_ld(-32,window);			v4 = vec_ld(-48,window);			v5 = vec_ld(-64,window);			v1 = vec_perm(v2,v1,vperm2);			v6 = vec_ld(0,b0);			v2 = vec_perm(v3,v2,vperm2);			v7 = vec_ld(16,b0);			v3 = vec_perm(v4,v3,vperm2);			v8 = vec_ld(32,b0);			v4 = vec_perm(v5,v4,vperm2);			v9 = vec_ld(48,b0);						vsum2 = vec_nmsub(v1,v6,vsum2);			vsum2 = vec_nmsub(v2,v7,vsum2);			vsum2 = vec_nmsub(v3,v8,vsum2);			vsum2 = vec_nmsub(v4,v9,vsum2);						window -= 32;			b0 -= 16;						v1 = vec_ld(0,window);			v2 = vec_ld(-16,window);			v3 = vec_ld(-32,window);			v4 = vec_ld(-48,window);			v5 = vec_ld(-64,window);			v1 = vec_perm(v2,v1,vperm2);			v6 = vec_ld(0,b0);			v2 = vec_perm(v3,v2,vperm2);			v7 = vec_ld(16,b0);			v3 = vec_perm(v4,v3,vperm2);			v8 = vec_ld(32,b0);			v4 = vec_perm(v5,v4,vperm2);			v9 = vec_ld(48,b0);						vsum3 = vec_nmsub(v1,v6,vsum3);			vsum3 = vec_nmsub(v2,v7,vsum3);			vsum3 = vec_nmsub(v3,v8,vsum3);			vsum3 = vec_nmsub(v4,v9,vsum3);						window -= 32;			b0 -= 16;						v1 = vec_ld(0,window);			v2 = vec_ld(-16,window);			v3 = vec_ld(-32,window);			v4 = vec_ld(-48,window);			v5 = vec_ld(-64,window);			v1 = vec_perm(v2,v1,vperm2);			v6 = vec_ld(0,b0);			v2 = vec_perm(v3,v2,vperm2);			v7 = vec_ld(16,b0);			v3 = vec_perm(v4,v3,vperm2);			v8 = vec_ld(32,b0);			v4 = vec_perm(v5,v4,vperm2);			v9 = vec_ld(48,b0);						vsum4 = vec_nmsub(v1,v6,vsum4);			vsum4 = vec_nmsub(v2,v7,vsum4);			vsum4 = vec_nmsub(v3,v8,vsum4);			vsum4 = vec_nmsub(v4,v9,vsum4);						window -= 32;			b0 -= 16;						v1 = vec_mergeh(vsum,vsum3);			v2 = vec_mergeh(vsum2,vsum4);			v3 = vec_mergel(vsum,vsum3);			v4 = vec_mergel(vsum2,vsum4);			v5 = vec_mergeh(v1,v2);			v6 = vec_mergel(v1,v2);			v7 = vec_mergeh(v3,v4);			v8 = vec_mergel(v3,v4);						vsum = vec_add(v5,v6);			v9 = vec_add(v7,v8);			vsum = vec_add(vsum,v9);						v3 = (vector float)vec_cts(vsum,0);			v1 = (vector float)vec_cmpgt(vsum,vmax);			v2 = (vector float)vec_cmplt(vsum,vmin);			vsample1 = vec_ld(0,samples);			vsample2 = vec_ld(15,samples);			v3 = (vector float)vec_packs((vector signed int)v3,(vector signed int)v3);			v4 = (vector float)vec_perm(vsample1,vsample2,vperm3);			v5 = (vector float)vec_perm(v3,v4,vperm5);			v6 = (vector float)vec_perm(vsample2,vsample1,vperm3);			v7 = (vector float)vec_perm(v5,v6,vperm4);			v8 = (vector float)vec_perm(v6,v5,vperm4);			vec_st((vector signed short)v7,15,samples);			vec_st((vector signed short)v8,0,samples);			samples += 8;#ifdef __APPLE__			v1 = (vector float)vec_sr((vector unsigned int)v1,(vector unsigned int)(31));			v2 = (vector float)vec_sr((vector unsigned int)v2,(vector unsigned int)(31));#else			v1 = (vector float)vec_sr((vector unsigned int)v1,(vector unsigned int){31,31,31,31});			v2 = (vector float)vec_sr((vector unsigned int)v2,(vector unsigned int){31,31,31,31});#endif			v5 = (vector float)vec_add((vector unsigned int)v1,(vector unsigned int)v2);			vclip = vec_sums((vector signed int)v5,vclip);		}#ifdef __APPLE__		vperm5 = (vector unsigned char)(0,1,18,19,2,3,22,23,4,5,26,27,28,29,30,31);#else		vperm5 = (vector unsigned char){0,1,18,19,2,3,22,23,4,5,26,27,28,29,30,31};#endif		{			vsum = vec_xor(vsum,vsum);			vsum2 = vec_xor(vsum2,vsum2);			vsum3 = vec_xor(vsum3,vsum3);			vsum4 = vec_xor(vsum4,vsum4);			v1 = vec_ld(-1,window);			v2 = vec_ld(-16,window);			v3 = vec_ld(-32,window);			v4 = vec_ld(-48,window);			v5 = vec_ld(-64,window);			v1 = vec_perm(v2,v1,vperm2);			v6 = vec_ld(0,b0);			v2 = vec_perm(v3,v2,vperm2);			v7 = vec_ld(16,b0);			v3 = vec_perm(v4,v3,vperm2);			v8 = vec_ld(32,b0);			v4 = vec_perm(v5,v4,vperm2);			v9 = vec_ld(48,b0);						vsum = vec_nmsub(v1,v6,vsum);			vsum = vec_nmsub(v2,v7,vsum);			vsum = vec_nmsub(v3,v8,vsum);			vsum = vec_nmsub(v4,v9,vsum);						window -= 32;			b0 -= 16;						v1 = vec_ld(0,window);			v2 = vec_ld(-16,window);			v3 = vec_ld(-32,window);			v4 = vec_ld(-48,window);			v5 = vec_ld(-64,window);			v1 = vec_perm(v2,v1,vperm2);			v6 = vec_ld(0,b0);			v2 = vec_perm(v3,v2,vperm2);			v7 = vec_ld(16,b0);			v3 = vec_perm(v4,v3,vperm2);			v8 = vec_ld(32,b0);			v4 = vec_perm(v5,v4,vperm2);			v9 = vec_ld(48,b0);						vsum2 = vec_nmsub(v1,v6,vsum2);			vsum2 = vec_nmsub(v2,v7,vsum2);			vsum2 = vec_nmsub(v3,v8,vsum2);			vsum2 = vec_nmsub(v4,v9,vsum2);						window -= 32;			b0 -= 16;						v1 = vec_ld(0,window);			v2 = vec_ld(-16,window);			v3 = vec_ld(-32,window);			v4 = vec_ld(-48,window);			v5 = vec_ld(-64,window);			v1 = vec_perm(v2,v1,vperm2);			v6 = vec_ld(0,b0);			v2 = vec_perm(v3,v2,vperm2);			v7 = vec_ld(16,b0);			v3 = vec_perm(v4,v3,vperm2);			v8 = vec_ld(32,b0);			v4 = vec_perm(v5,v4,vperm2);			v9 = vec_ld(48,b0);						vsum3 = vec_nmsub(v1,v6,vsum3);			vsum3 = vec_nmsub(v2,v7,vsum3);			vsum3 = vec_nmsub(v3,v8,vsum3);			vsum3 = vec_nmsub(v4,v9,vsum3);						v1 = vec_mergeh(vsum,vsum3);			v2 = vec_mergeh(vsum2,vsum2);			v3 = vec_mergel(vsum,vsum3);			v4 = vec_mergel(vsum2,vsum2);			v5 = vec_mergeh(v1,v2);			v6 = vec_mergel(v1,v2);			v7 = vec_mergeh(v3,v4);			v8 = vec_mergel(v3,v4);						vsum = vec_add(v5,v6);			v9 = vec_add(v7,v8);			vsum = vec_add(vsum,v9);						v3 = (vector float)vec_cts(vsum,0);			v1 = (vector float)vec_cmpgt(vsum,vmax);			v2 = (vector float)vec_cmplt(vsum,vmin);			vsample1 = vec_ld(0,samples);			vsample2 = vec_ld(15,samples);			v3 = (vector float)vec_packs((vector signed int)v3,(vector signed int)v3);			v4 = (vector float)vec_perm(vsample1,vsample2,vperm3);			v5 = (vector float)vec_perm(v3,v4,vperm5);			v6 = (vector float)vec_perm(vsample2,vsample1,vperm3);			v7 = (vector float)vec_perm(v5,v6,vperm4);			v8 = (vector float)vec_perm(v6,v5,vperm4);			vec_st((vector signed short)v7,15,samples);			vec_st((vector signed short)v8,0,samples);			samples += 6;#ifdef __APPLE__			v1 = (vector float)vec_sr((vector unsigned int)v1,(vector unsigned int)(31,31,31,32));			v2 = (vector float)vec_sr((vector unsigned int)v2,(vector unsigned int)(31,31,31,32));#else			v1 = (vector float)vec_sr((vector unsigned int)v1,(vector unsigned int){31,31,31,32});			v2 = (vector float)vec_sr((vector unsigned int)v2,(vector unsigned int){31,31,31,32});#endif			v5 = (vector float)vec_add((vector unsigned int)v1,(vector unsigned int)v2);			vclip = vec_sums((vector signed int)v5,vclip);			vec_st(vclip,0,clip_tmp);			clip += clip_tmp[3];		}  }  if(final) fr->buffer.fill += 128;  return clip;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -