Mercurial > libavcodec.hg
comparison ps2/idct_mmi.c @ 8031:eebc7209c47f libavcodec
Convert asm keyword into __asm__.
Neither the asm() nor the __asm__() keyword is part of the C99
standard, but while GCC accepts the former in C89 syntax, it is not
accepted in C99 unless GNU extensions are turned on (with -fasm). The
latter form is accepted in any syntax as an extension (without
requiring further command-line options).
Sun Studio C99 compiler also does not accept asm() while accepting
__asm__(), albeit reporting warnings that it's not valid C99 syntax.
author | flameeyes |
---|---|
date | Thu, 16 Oct 2008 13:34:09 +0000 |
parents | f7cbb7733146 |
children |
comparison
equal
deleted
inserted
replaced
8030:a512ac8fa540 | 8031:eebc7209c47f |
---|---|
255 #define PUT(rs) \ | 255 #define PUT(rs) \ |
256 pminh(rs, $11, $2); \ | 256 pminh(rs, $11, $2); \ |
257 pmaxh($2, $0, $2); \ | 257 pmaxh($2, $0, $2); \ |
258 ppacb($0, $2, $2); \ | 258 ppacb($0, $2, $2); \ |
259 sd3(2, 0, 4); \ | 259 sd3(2, 0, 4); \ |
260 asm volatile ("add $4, $5, $4"); | 260 __asm__ volatile ("add $4, $5, $4"); |
261 | 261 |
262 #define DCT_8_INV_COL8_PUT() \ | 262 #define DCT_8_INV_COL8_PUT() \ |
263 PUT($16); \ | 263 PUT($16); \ |
264 PUT($17); \ | 264 PUT($17); \ |
265 PUT($18); \ | 265 PUT($18); \ |
275 paddh($2, rs, $2); \ | 275 paddh($2, rs, $2); \ |
276 pminh($2, $11, $2); \ | 276 pminh($2, $11, $2); \ |
277 pmaxh($2, $0, $2); \ | 277 pmaxh($2, $0, $2); \ |
278 ppacb($0, $2, $2); \ | 278 ppacb($0, $2, $2); \ |
279 sd3(2, 0, 4); \ | 279 sd3(2, 0, 4); \ |
280 asm volatile ("add $4, $5, $4"); | 280 __asm__ volatile ("add $4, $5, $4"); |
281 | 281 |
282 /*fixme: schedule*/ | 282 /*fixme: schedule*/ |
283 #define DCT_8_INV_COL8_ADD() \ | 283 #define DCT_8_INV_COL8_ADD() \ |
284 ADD($16); \ | 284 ADD($16); \ |
285 ADD($17); \ | 285 ADD($17); \ |
292 | 292 |
293 | 293 |
294 void ff_mmi_idct(int16_t * block) | 294 void ff_mmi_idct(int16_t * block) |
295 { | 295 { |
296 /* $4 = block */ | 296 /* $4 = block */ |
297 asm volatile("la $24, %0"::"m"(consttable[0])); | 297 __asm__ volatile("la $24, %0"::"m"(consttable[0])); |
298 lq($24, ROUNDER_0, $8); | 298 lq($24, ROUNDER_0, $8); |
299 lq($24, ROUNDER_1, $7); | 299 lq($24, ROUNDER_1, $7); |
300 DCT_8_INV_ROW1($4, 0, TAB_i_04, $8, $8); | 300 DCT_8_INV_ROW1($4, 0, TAB_i_04, $8, $8); |
301 DCT_8_INV_ROW1($4, 16, TAB_i_17, $7, $9); | 301 DCT_8_INV_ROW1($4, 16, TAB_i_17, $7, $9); |
302 DCT_8_INV_ROW1($4, 32, TAB_i_26, $7, $10); | 302 DCT_8_INV_ROW1($4, 32, TAB_i_26, $7, $10); |
307 DCT_8_INV_ROW1($4, 112, TAB_i_17, $7, $15); | 307 DCT_8_INV_ROW1($4, 112, TAB_i_17, $7, $15); |
308 DCT_8_INV_COL8(); | 308 DCT_8_INV_COL8(); |
309 DCT_8_INV_COL8_STORE($4); | 309 DCT_8_INV_COL8_STORE($4); |
310 | 310 |
311 //let savedtemp regs be saved | 311 //let savedtemp regs be saved |
312 asm volatile(" ":::"$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23"); | 312 __asm__ volatile(" ":::"$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23"); |
313 } | 313 } |
314 | 314 |
315 | 315 |
316 void ff_mmi_idct_put(uint8_t *dest, int line_size, DCTELEM *block) | 316 void ff_mmi_idct_put(uint8_t *dest, int line_size, DCTELEM *block) |
317 { | 317 { |
318 /* $4 = dest, $5 = line_size, $6 = block */ | 318 /* $4 = dest, $5 = line_size, $6 = block */ |
319 asm volatile("la $24, %0"::"m"(consttable[0])); | 319 __asm__ volatile("la $24, %0"::"m"(consttable[0])); |
320 lq($24, ROUNDER_0, $8); | 320 lq($24, ROUNDER_0, $8); |
321 lq($24, ROUNDER_1, $7); | 321 lq($24, ROUNDER_1, $7); |
322 DCT_8_INV_ROW1($6, 0, TAB_i_04, $8, $8); | 322 DCT_8_INV_ROW1($6, 0, TAB_i_04, $8, $8); |
323 DCT_8_INV_ROW1($6, 16, TAB_i_17, $7, $9); | 323 DCT_8_INV_ROW1($6, 16, TAB_i_17, $7, $9); |
324 DCT_8_INV_ROW1($6, 32, TAB_i_26, $7, $10); | 324 DCT_8_INV_ROW1($6, 32, TAB_i_26, $7, $10); |
331 lq($24, CLIPMAX, $11); | 331 lq($24, CLIPMAX, $11); |
332 DCT_8_INV_COL8_PMS(); | 332 DCT_8_INV_COL8_PMS(); |
333 DCT_8_INV_COL8_PUT(); | 333 DCT_8_INV_COL8_PUT(); |
334 | 334 |
335 //let savedtemp regs be saved | 335 //let savedtemp regs be saved |
336 asm volatile(" ":::"$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23"); | 336 __asm__ volatile(" ":::"$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23"); |
337 } | 337 } |
338 | 338 |
339 | 339 |
340 void ff_mmi_idct_add(uint8_t *dest, int line_size, DCTELEM *block) | 340 void ff_mmi_idct_add(uint8_t *dest, int line_size, DCTELEM *block) |
341 { | 341 { |
342 /* $4 = dest, $5 = line_size, $6 = block */ | 342 /* $4 = dest, $5 = line_size, $6 = block */ |
343 asm volatile("la $24, %0"::"m"(consttable[0])); | 343 __asm__ volatile("la $24, %0"::"m"(consttable[0])); |
344 lq($24, ROUNDER_0, $8); | 344 lq($24, ROUNDER_0, $8); |
345 lq($24, ROUNDER_1, $7); | 345 lq($24, ROUNDER_1, $7); |
346 DCT_8_INV_ROW1($6, 0, TAB_i_04, $8, $8); | 346 DCT_8_INV_ROW1($6, 0, TAB_i_04, $8, $8); |
347 DCT_8_INV_ROW1($6, 16, TAB_i_17, $7, $9); | 347 DCT_8_INV_ROW1($6, 16, TAB_i_17, $7, $9); |
348 DCT_8_INV_ROW1($6, 32, TAB_i_26, $7, $10); | 348 DCT_8_INV_ROW1($6, 32, TAB_i_26, $7, $10); |
355 lq($24, CLIPMAX, $11); | 355 lq($24, CLIPMAX, $11); |
356 DCT_8_INV_COL8_PMS(); | 356 DCT_8_INV_COL8_PMS(); |
357 DCT_8_INV_COL8_ADD(); | 357 DCT_8_INV_COL8_ADD(); |
358 | 358 |
359 //let savedtemp regs be saved | 359 //let savedtemp regs be saved |
360 asm volatile(" ":::"$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23"); | 360 __asm__ volatile(" ":::"$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23"); |
361 } | 361 } |
362 | 362 |