comparison ppc/dsputil_ppc.c @ 1033:b4172ff70d27 libavcodec

Altivec on non darwin systems patch by Romain Dolbeau
author bellard
date Sun, 26 Jan 2003 22:29:47 +0000
parents 9cc1031e1864
children f59c3f66363b
comparison
equal deleted inserted replaced
1032:8f440ca8e0b0 1033:b4172ff70d27
118 if (misal) { 118 if (misal) {
119 ((unsigned long*)blocks)[0] = 0L; 119 ((unsigned long*)blocks)[0] = 0L;
120 ((unsigned long*)blocks)[1] = 0L; 120 ((unsigned long*)blocks)[1] = 0L;
121 ((unsigned long*)blocks)[2] = 0L; 121 ((unsigned long*)blocks)[2] = 0L;
122 ((unsigned long*)blocks)[3] = 0L; 122 ((unsigned long*)blocks)[3] = 0L;
123 vec_st((vector short)(0), 0, blocks);
124 i += 16; 123 i += 16;
125 } 124 }
126 for ( ; i < sizeof(DCTELEM)*6*64 ; i += 32) { 125 for ( ; i < sizeof(DCTELEM)*6*64 ; i += 32) {
127 asm volatile("dcbz %0,%1" : : "r" (blocks), "r" (i) : "memory"); 126 asm volatile("dcbz %0,%1" : : "r" (blocks), "r" (i) : "memory");
128 } 127 }
140 } 139 }
141 140
142 /* check dcbz report how many bytes are set to 0 by dcbz */ 141 /* check dcbz report how many bytes are set to 0 by dcbz */
143 long check_dcbz_effect(void) 142 long check_dcbz_effect(void)
144 { 143 {
145 register char *fakedata = (char*)malloc(1024); 144 register char *fakedata = (char*)av_malloc(1024);
146 register char *fakedata_middle; 145 register char *fakedata_middle;
147 register long zero = 0; 146 register long zero = 0;
148 register long i = 0; 147 register long i = 0;
149 long count = 0; 148 long count = 0;
150 149
151 if (fakedata == NULL) 150 if (!fakedata)
152 { 151 {
153 return 0L; 152 return 0L;
154 } 153 }
155
156 154
157 fakedata_middle = (fakedata + 512); 155 fakedata_middle = (fakedata + 512);
158 156
159 memset(fakedata, 0xFF, 1024); 157 memset(fakedata, 0xFF, 1024);
160 158
164 { 162 {
165 if (fakedata[i] == (char)0) 163 if (fakedata[i] == (char)0)
166 count++; 164 count++;
167 } 165 }
168 166
169 free(fakedata); 167 av_free(fakedata);
170 168
171 return count; 169 return count;
172 } 170 }
173 171
174 void dsputil_init_ppc(DSPContext* c, unsigned mask) 172 void dsputil_init_ppc(DSPContext* c, unsigned mask)