ARGBMirror for AVX had wrong loop counting. This fixes it to match windows, and reenables the function.

BUG=269
TESTED=try bots
R=tpsiaki@google.com

Review URL: https://webrtc-codereview.appspot.com/33639004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1196 16f28f9a-4ce2-e073-06de-1de4eb20be90
This commit is contained in:
fbarchard@google.com 2014-12-12 22:43:55 +00:00
parent 08daa3e22b
commit a9734a4492
4 changed files with 4 additions and 4 deletions

View File

@ -1,6 +1,6 @@
Name: libyuv
URL: http://code.google.com/p/libyuv/
Version: 1195
Version: 1196
License: BSD
License File: LICENSE

View File

@ -186,7 +186,7 @@ extern "C" {
defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2))
#define HAS_ARGBCOPYALPHAROW_AVX2
#define HAS_ARGBCOPYYTOALPHAROW_AVX2
//#define HAS_ARGBMIRRORROW_AVX2
#define HAS_ARGBMIRRORROW_AVX2
#define HAS_ARGBPOLYNOMIALROW_AVX2
#define HAS_ARGBSHUFFLEROW_AVX2
//#define HAS_ARGBTOUVROW_AVX2

View File

@ -11,6 +11,6 @@
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
#define INCLUDE_LIBYUV_VERSION_H_
#define LIBYUV_VERSION 1195
#define LIBYUV_VERSION 1196
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT

View File

@ -2667,7 +2667,7 @@ void ARGBMirrorRow_AVX2(const uint8* src, uint8* dst, int width) {
VMEMOPREG(vpermd,-0x20,0,2,4,ymm5,ymm0) // vpermd -0x20(%0,%2,4),ymm5,ymm0
"vmovdqu %%ymm0," MEMACCESS(1) " \n"
"lea " MEMLEA(0x20,1) ",%1 \n"
"sub $0x20,%2 \n"
"sub $0x8,%2 \n"
"jg 1b \n"
"vzeroupper \n"
: "+r"(src), // %0