Mercurial > libavcodec.hg
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); \ |