| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The LibYuv project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The LibYuv project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 491 "3: \n" | 491 "3: \n" |
| 492 ".set pop \n" | 492 ".set pop \n" |
| 493 : [src] "+r" (src), [dst] "+r" (dst) | 493 : [src] "+r" (src), [dst] "+r" (dst) |
| 494 : [width] "r" (width) | 494 : [width] "r" (width) |
| 495 : "t0", "t1", "t2", "t3", "t4", "t5" | 495 : "t0", "t1", "t2", "t3", "t4", "t5" |
| 496 ); | 496 ); |
| 497 } | 497 } |
| 498 | 498 |
| 499 void MirrorUVRow_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, | 499 void MirrorUVRow_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, |
| 500 int width) { | 500 int width) { |
| 501 int x = 0; | 501 int x; |
| 502 int y = 0; | 502 int y; |
| 503 __asm__ __volatile__ ( | 503 __asm__ __volatile__ ( |
| 504 ".set push \n" | 504 ".set push \n" |
| 505 ".set noreorder \n" | 505 ".set noreorder \n" |
| 506 | 506 |
| 507 "addu $t4, %[width], %[width] \n" | 507 "addu $t4, %[width], %[width] \n" |
| 508 "srl %[x], %[width], 4 \n" | 508 "srl %[x], %[width], 4 \n" |
| 509 "andi %[y], %[width], 0xf \n" | 509 "andi %[y], %[width], 0xf \n" |
| 510 "blez %[x], 2f \n" | 510 "blez %[x], 2f \n" |
| 511 " addu %[src_uv], %[src_uv], $t4 \n" | 511 " addu %[src_uv], %[src_uv], $t4 \n" |
| 512 | 512 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 572 "addiu %[dst_u], %[dst_u], 1 \n" | 572 "addiu %[dst_u], %[dst_u], 1 \n" |
| 573 "bgtz %[y], 2b \n" | 573 "bgtz %[y], 2b \n" |
| 574 " addiu %[dst_v], %[dst_v], 1 \n" | 574 " addiu %[dst_v], %[dst_v], 1 \n" |
| 575 | 575 |
| 576 "3: \n" | 576 "3: \n" |
| 577 ".set pop \n" | 577 ".set pop \n" |
| 578 : [src_uv] "+r" (src_uv), | 578 : [src_uv] "+r" (src_uv), |
| 579 [dst_u] "+r" (dst_u), | 579 [dst_u] "+r" (dst_u), |
| 580 [dst_v] "+r" (dst_v), | 580 [dst_v] "+r" (dst_v), |
| 581 [x] "=&r" (x), | 581 [x] "=&r" (x), |
| 582 [y] "+r" (y) | 582 [y] "=&r" (y) |
| 583 : [width] "r" (width) | 583 : [width] "r" (width) |
| 584 : "t0", "t1", "t2", "t3", "t4", | 584 : "t0", "t1", "t2", "t3", "t4", |
| 585 "t5", "t7", "t8", "t9" | 585 "t5", "t7", "t8", "t9" |
| 586 ); | 586 ); |
| 587 } | 587 } |
| 588 | 588 |
| 589 // Convert (4 Y and 2 VU) I422 and arrange RGB values into | 589 // Convert (4 Y and 2 VU) I422 and arrange RGB values into |
| 590 // t5 = | 0 | B0 | 0 | b0 | | 590 // t5 = | 0 | B0 | 0 | b0 | |
| 591 // t4 = | 0 | B1 | 0 | b1 | | 591 // t4 = | 0 | B1 | 0 | b1 | |
| 592 // t9 = | 0 | G0 | 0 | g0 | | 592 // t9 = | 0 | G0 | 0 | g0 | |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 773 ); | 773 ); |
| 774 } | 774 } |
| 775 #endif // __mips_dsp_rev >= 2 | 775 #endif // __mips_dsp_rev >= 2 |
| 776 | 776 |
| 777 #endif // defined(__mips__) | 777 #endif // defined(__mips__) |
| 778 | 778 |
| 779 #ifdef __cplusplus | 779 #ifdef __cplusplus |
| 780 } // extern "C" | 780 } // extern "C" |
| 781 } // namespace libyuv | 781 } // namespace libyuv |
| 782 #endif | 782 #endif |
| OLD | NEW |