Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(579)

Side by Side Diff: include/libyuv/row.h

Issue 2285683002: Add MIPS SIMD Arch (MSA) optimized MirrorRow function (Closed)
Patch Set: Changes as per review comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2011 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 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 #define HAS_SOBELROW_NEON 355 #define HAS_SOBELROW_NEON
356 #define HAS_SOBELTOPLANEROW_NEON 356 #define HAS_SOBELTOPLANEROW_NEON
357 #define HAS_SOBELXROW_NEON 357 #define HAS_SOBELXROW_NEON
358 #define HAS_SOBELXYROW_NEON 358 #define HAS_SOBELXYROW_NEON
359 #define HAS_SOBELYROW_NEON 359 #define HAS_SOBELYROW_NEON
360 #endif 360 #endif
361 361
362 // The following are available on Mips platforms: 362 // The following are available on Mips platforms:
363 #if !defined(LIBYUV_DISABLE_MIPS) && defined(__mips__) && \ 363 #if !defined(LIBYUV_DISABLE_MIPS) && defined(__mips__) && \
364 (_MIPS_SIM == _MIPS_SIM_ABI32) && (__mips_isa_rev < 6) 364 (_MIPS_SIM == _MIPS_SIM_ABI32) && (__mips_isa_rev < 6)
365 #if defined(__mips_dsp) && (__mips_dsp_rev >= 2)
365 #define HAS_COPYROW_MIPS 366 #define HAS_COPYROW_MIPS
366 #if defined(__mips_dsp) && (__mips_dsp_rev >= 2)
367 #define HAS_I422TOARGBROW_DSPR2 367 #define HAS_I422TOARGBROW_DSPR2
368 #define HAS_INTERPOLATEROW_DSPR2 368 #define HAS_INTERPOLATEROW_DSPR2
369 #define HAS_MIRRORROW_DSPR2 369 #define HAS_MIRRORROW_DSPR2
370 #define HAS_MIRRORUVROW_DSPR2 370 #define HAS_MIRRORUVROW_DSPR2
371 #define HAS_SPLITUVROW_DSPR2 371 #define HAS_SPLITUVROW_DSPR2
372 #endif 372 #endif
373 #endif 373 #endif
374 374
375 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips__) && \
376 defined(__mips_msa)
fbarchard1 2016/09/14 01:48:04 indent should be 4 for line continuations. you cou
manojkumar.bhosale 2016/09/14 12:45:29 Done.
377 #define HAS_MIRRORROW_MSA
378 #endif
379
375 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__) 380 #if defined(_MSC_VER) && !defined(__CLR_VER) && !defined(__clang__)
376 #if defined(VISUALC_HAS_AVX2) 381 #if defined(VISUALC_HAS_AVX2)
377 #define SIMD_ALIGNED(var) __declspec(align(32)) var 382 #define SIMD_ALIGNED(var) __declspec(align(32)) var
378 #else 383 #else
379 #define SIMD_ALIGNED(var) __declspec(align(16)) var 384 #define SIMD_ALIGNED(var) __declspec(align(16)) var
380 #endif 385 #endif
381 typedef __declspec(align(16)) int16 vec16[8]; 386 typedef __declspec(align(16)) int16 vec16[8];
382 typedef __declspec(align(16)) int32 vec32[4]; 387 typedef __declspec(align(16)) int32 vec32[4];
383 typedef __declspec(align(16)) int8 vec8[16]; 388 typedef __declspec(align(16)) int8 vec8[16];
384 typedef __declspec(align(16)) uint16 uvec16[8]; 389 typedef __declspec(align(16)) uint16 uvec16[8];
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 807
803 void ARGBToUV444Row_C(const uint8* src_argb, 808 void ARGBToUV444Row_C(const uint8* src_argb,
804 uint8* dst_u, uint8* dst_v, int width); 809 uint8* dst_u, uint8* dst_v, int width);
805 void ARGBToUV411Row_C(const uint8* src_argb, 810 void ARGBToUV411Row_C(const uint8* src_argb,
806 uint8* dst_u, uint8* dst_v, int width); 811 uint8* dst_u, uint8* dst_v, int width);
807 812
808 void MirrorRow_AVX2(const uint8* src, uint8* dst, int width); 813 void MirrorRow_AVX2(const uint8* src, uint8* dst, int width);
809 void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width); 814 void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width);
810 void MirrorRow_NEON(const uint8* src, uint8* dst, int width); 815 void MirrorRow_NEON(const uint8* src, uint8* dst, int width);
811 void MirrorRow_DSPR2(const uint8* src, uint8* dst, int width); 816 void MirrorRow_DSPR2(const uint8* src, uint8* dst, int width);
817 void MirrorRow_MSA(const uint8* src, uint8* dst, int width);
812 void MirrorRow_C(const uint8* src, uint8* dst, int width); 818 void MirrorRow_C(const uint8* src, uint8* dst, int width);
813 void MirrorRow_Any_AVX2(const uint8* src, uint8* dst, int width); 819 void MirrorRow_Any_AVX2(const uint8* src, uint8* dst, int width);
814 void MirrorRow_Any_SSSE3(const uint8* src, uint8* dst, int width); 820 void MirrorRow_Any_SSSE3(const uint8* src, uint8* dst, int width);
815 void MirrorRow_Any_SSE2(const uint8* src, uint8* dst, int width); 821 void MirrorRow_Any_SSE2(const uint8* src, uint8* dst, int width);
816 void MirrorRow_Any_NEON(const uint8* src, uint8* dst, int width); 822 void MirrorRow_Any_NEON(const uint8* src, uint8* dst, int width);
823 void MirrorRow_Any_MSA(const uint8* src, uint8* dst, int width);
817 824
818 void MirrorUVRow_SSSE3(const uint8* src_uv, uint8* dst_u, uint8* dst_v, 825 void MirrorUVRow_SSSE3(const uint8* src_uv, uint8* dst_u, uint8* dst_v,
819 int width); 826 int width);
820 void MirrorUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v, 827 void MirrorUVRow_NEON(const uint8* src_uv, uint8* dst_u, uint8* dst_v,
821 int width); 828 int width);
822 void MirrorUVRow_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v, 829 void MirrorUVRow_DSPR2(const uint8* src_uv, uint8* dst_u, uint8* dst_v,
823 int width); 830 int width);
824 void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int width); 831 void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int width);
825 832
826 void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width); 833 void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width);
(...skipping 1108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1935 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, 1942 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb,
1936 int width, 1943 int width,
1937 const uint8* luma, uint32 lumacoeff); 1944 const uint8* luma, uint32 lumacoeff);
1938 1945
1939 #ifdef __cplusplus 1946 #ifdef __cplusplus
1940 } // extern "C" 1947 } // extern "C"
1941 } // namespace libyuv 1948 } // namespace libyuv
1942 #endif 1949 #endif
1943 1950
1944 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT 1951 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698