comparison ppc/dsputil_altivec.c @ 1980:a6972a4f90c8 libavcodec

use the AVV macro from gcc_fixes.h instead ifdefs
author alex
date Mon, 26 Apr 2004 08:48:28 +0000
parents 96cfc6393b1f
children 1ba490d60bb9
comparison
equal deleted inserted replaced
1979:96cfc6393b1f 1980:a6972a4f90c8
1306 POWERPC_PERF_DECLARE(altivec_hadamard8_diff8x8_num, 1); 1306 POWERPC_PERF_DECLARE(altivec_hadamard8_diff8x8_num, 1);
1307 int sum; 1307 int sum;
1308 POWERPC_PERF_START_COUNT(altivec_hadamard8_diff8x8_num, 1); 1308 POWERPC_PERF_START_COUNT(altivec_hadamard8_diff8x8_num, 1);
1309 register const_vector unsigned char vzero = (const_vector unsigned char)vec_splat_u8(0); 1309 register const_vector unsigned char vzero = (const_vector unsigned char)vec_splat_u8(0);
1310 register vector signed short temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7; 1310 register vector signed short temp0, temp1, temp2, temp3, temp4, temp5, temp6, temp7;
1311 #ifdef CONFIG_DARWIN
1312 { 1311 {
1313 register const_vector signed short vprod1 = (const_vector signed short)( 1,-1, 1,-1, 1,-1, 1,-1); 1312 register const_vector signed short vprod1 = (const_vector signed short)AVV( 1,-1, 1,-1, 1,-1, 1,-1);
1314 register const_vector signed short vprod2 = (const_vector signed short)( 1, 1,-1,-1, 1, 1,-1,-1); 1313 register const_vector signed short vprod2 = (const_vector signed short)AVV( 1, 1,-1,-1, 1, 1,-1,-1);
1315 register const_vector signed short vprod3 = (const_vector signed short)( 1, 1, 1, 1,-1,-1,-1,-1); 1314 register const_vector signed short vprod3 = (const_vector signed short)AVV( 1, 1, 1, 1,-1,-1,-1,-1);
1316 register const_vector unsigned char perm1 = (const_vector unsigned char) 1315 register const_vector unsigned char perm1 = (const_vector unsigned char)
1317 (0x02, 0x03, 0x00, 0x01, 1316 AVV(0x02, 0x03, 0x00, 0x01,
1318 0x06, 0x07, 0x04, 0x05, 1317 0x06, 0x07, 0x04, 0x05,
1319 0x0A, 0x0B, 0x08, 0x09, 1318 0x0A, 0x0B, 0x08, 0x09,
1320 0x0E, 0x0F, 0x0C, 0x0D); 1319 0x0E, 0x0F, 0x0C, 0x0D);
1321 register const_vector unsigned char perm2 = (const_vector unsigned char) 1320 register const_vector unsigned char perm2 = (const_vector unsigned char)
1322 (0x04, 0x05, 0x06, 0x07, 1321 AVV(0x04, 0x05, 0x06, 0x07,
1323 0x00, 0x01, 0x02, 0x03, 1322 0x00, 0x01, 0x02, 0x03,
1324 0x0C, 0x0D, 0x0E, 0x0F, 1323 0x0C, 0x0D, 0x0E, 0x0F,
1325 0x08, 0x09, 0x0A, 0x0B); 1324 0x08, 0x09, 0x0A, 0x0B);
1326 register const_vector unsigned char perm3 = (const_vector unsigned char) 1325 register const_vector unsigned char perm3 = (const_vector unsigned char)
1327 (0x08, 0x09, 0x0A, 0x0B, 1326 AVV(0x08, 0x09, 0x0A, 0x0B,
1328 0x0C, 0x0D, 0x0E, 0x0F, 1327 0x0C, 0x0D, 0x0E, 0x0F,
1329 0x00, 0x01, 0x02, 0x03, 1328 0x00, 0x01, 0x02, 0x03,
1330 0x04, 0x05, 0x06, 0x07); 1329 0x04, 0x05, 0x06, 0x07);
1331 #else
1332 {
1333 register const_vector signed short vprod1 = (const_vector signed short){ 1,-1, 1,-1, 1,-1, 1,-1};
1334 register const_vector signed short vprod2 = (const_vector signed short){ 1, 1,-1,-1, 1, 1,-1,-1};
1335 register const_vector signed short vprod3 = (const_vector signed short){ 1, 1, 1, 1,-1,-1,-1,-1};
1336 register const_vector unsigned char perm1 = (const_vector unsigned char)
1337 {0x02, 0x03, 0x00, 0x01,
1338 0x06, 0x07, 0x04, 0x05,
1339 0x0A, 0x0B, 0x08, 0x09,
1340 0x0E, 0x0F, 0x0C, 0x0D};
1341 register const_vector unsigned char perm2 = (const_vector unsigned char)
1342 {0x04, 0x05, 0x06, 0x07,
1343 0x00, 0x01, 0x02, 0x03,
1344 0x0C, 0x0D, 0x0E, 0x0F,
1345 0x08, 0x09, 0x0A, 0x0B};
1346 register const_vector unsigned char perm3 = (const_vector unsigned char)
1347 {0x08, 0x09, 0x0A, 0x0B,
1348 0x0C, 0x0D, 0x0E, 0x0F,
1349 0x00, 0x01, 0x02, 0x03,
1350 0x04, 0x05, 0x06, 0x07};
1351 #endif
1352 1330
1353 #define ONEITERBUTTERFLY(i, res) \ 1331 #define ONEITERBUTTERFLY(i, res) \
1354 { \ 1332 { \
1355 register vector unsigned char src1, src2, srcO; \ 1333 register vector unsigned char src1, src2, srcO; \
1356 register vector unsigned char dst1, dst2, dstO; \ 1334 register vector unsigned char dst1, dst2, dstO; \
1474 temp5S asm ("v13"), 1452 temp5S asm ("v13"),
1475 temp6S asm ("v14"), 1453 temp6S asm ("v14"),
1476 temp7S asm ("v15"); 1454 temp7S asm ("v15");
1477 register const_vector unsigned char vzero asm ("v31")= (const_vector unsigned char)vec_splat_u8(0); 1455 register const_vector unsigned char vzero asm ("v31")= (const_vector unsigned char)vec_splat_u8(0);
1478 { 1456 {
1479 #ifdef CONFIG_DARWIN 1457 register const_vector signed short vprod1 asm ("v16")= (const_vector signed short)AVV( 1,-1, 1,-1, 1,-1, 1,-1);
1480 register const_vector signed short vprod1 asm ("v16")= (const_vector signed short)( 1,-1, 1,-1, 1,-1, 1,-1); 1458 register const_vector signed short vprod2 asm ("v17")= (const_vector signed short)AVV( 1, 1,-1,-1, 1, 1,-1,-1);
1481 register const_vector signed short vprod2 asm ("v17")= (const_vector signed short)( 1, 1,-1,-1, 1, 1,-1,-1); 1459 register const_vector signed short vprod3 asm ("v18")= (const_vector signed short)AVV( 1, 1, 1, 1,-1,-1,-1,-1);
1482 register const_vector signed short vprod3 asm ("v18")= (const_vector signed short)( 1, 1, 1, 1,-1,-1,-1,-1);
1483 register const_vector unsigned char perm1 asm ("v19")= (const_vector unsigned char) 1460 register const_vector unsigned char perm1 asm ("v19")= (const_vector unsigned char)
1484 (0x02, 0x03, 0x00, 0x01, 1461 AVV(0x02, 0x03, 0x00, 0x01,
1485 0x06, 0x07, 0x04, 0x05, 1462 0x06, 0x07, 0x04, 0x05,
1486 0x0A, 0x0B, 0x08, 0x09, 1463 0x0A, 0x0B, 0x08, 0x09,
1487 0x0E, 0x0F, 0x0C, 0x0D); 1464 0x0E, 0x0F, 0x0C, 0x0D);
1488 register const_vector unsigned char perm2 asm ("v20")= (const_vector unsigned char) 1465 register const_vector unsigned char perm2 asm ("v20")= (const_vector unsigned char)
1489 (0x04, 0x05, 0x06, 0x07, 1466 AVV(0x04, 0x05, 0x06, 0x07,
1490 0x00, 0x01, 0x02, 0x03, 1467 0x00, 0x01, 0x02, 0x03,
1491 0x0C, 0x0D, 0x0E, 0x0F, 1468 0x0C, 0x0D, 0x0E, 0x0F,
1492 0x08, 0x09, 0x0A, 0x0B); 1469 0x08, 0x09, 0x0A, 0x0B);
1493 register const_vector unsigned char perm3 asm ("v21")= (const_vector unsigned char) 1470 register const_vector unsigned char perm3 asm ("v21")= (const_vector unsigned char)
1494 (0x08, 0x09, 0x0A, 0x0B, 1471 AVV(0x08, 0x09, 0x0A, 0x0B,
1495 0x0C, 0x0D, 0x0E, 0x0F, 1472 0x0C, 0x0D, 0x0E, 0x0F,
1496 0x00, 0x01, 0x02, 0x03, 1473 0x00, 0x01, 0x02, 0x03,
1497 0x04, 0x05, 0x06, 0x07); 1474 0x04, 0x05, 0x06, 0x07);
1498 #else 1475
1499 register const_vector signed short vprod1 = (const_vector signed short){ 1,-1, 1,-1, 1,-1, 1,-1};
1500 register const_vector signed short vprod2 = (const_vector signed short){ 1, 1,-1,-1, 1, 1,-1,-1};
1501 register const_vector signed short vprod3 = (const_vector signed short){ 1, 1, 1, 1,-1,-1,-1,-1};
1502 register const_vector unsigned char perm1 = (const_vector unsigned char)
1503 {0x02, 0x03, 0x00, 0x01,
1504 0x06, 0x07, 0x04, 0x05,
1505 0x0A, 0x0B, 0x08, 0x09,
1506 0x0E, 0x0F, 0x0C, 0x0D};
1507 register const_vector unsigned char perm2 = (const_vector unsigned char)
1508 {0x04, 0x05, 0x06, 0x07,
1509 0x00, 0x01, 0x02, 0x03,
1510 0x0C, 0x0D, 0x0E, 0x0F,
1511 0x08, 0x09, 0x0A, 0x0B};
1512 register const_vector unsigned char perm3 = (const_vector unsigned char)
1513 {0x08, 0x09, 0x0A, 0x0B,
1514 0x0C, 0x0D, 0x0E, 0x0F,
1515 0x00, 0x01, 0x02, 0x03,
1516 0x04, 0x05, 0x06, 0x07};
1517 #endif
1518 #define ONEITERBUTTERFLY(i, res1, res2) \ 1476 #define ONEITERBUTTERFLY(i, res1, res2) \
1519 { \ 1477 { \
1520 register vector unsigned char src1 asm ("v22"), src2 asm ("v23"); \ 1478 register vector unsigned char src1 asm ("v22"), src2 asm ("v23"); \
1521 register vector unsigned char dst1 asm ("v24"), dst2 asm ("v25"); \ 1479 register vector unsigned char dst1 asm ("v24"), dst2 asm ("v25"); \
1522 src1 = vec_ld(stride * i, src); \ 1480 src1 = vec_ld(stride * i, src); \