daiyanbao / libyuv

Automatically exported from code.google.com/p/libyuv
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

row_win.cc(2321): error C2400: inline assembler syntax error in 'opcode'; found 'ymm0' #531

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Windows using VS2010 and it's failing x86 build with the following error:
1>..\..\libyuv\source\row_win.cc(2321): warning C4405: 'ymm0' : identifier is 
reserved word
1>..\..\libyuv\source\row_win.cc(2321): error C2400: inline assembler syntax 
error in 'opcode'; found 'ymm0'
1>..\..\libyuv\source\row_win.cc(2321): error C2415: improper operand type
1>..\..\libyuv\source\row_win.cc(2321): warning C4405: 'ymm2' : identifier is 
reserved word
1>..\..\libyuv\source\row_win.cc(2321): error C2400: inline assembler syntax 
error in 'opcode'; found 'ymm2'

Looks like this was introduced with this change:
commit 000cf89ca8b03b107b62f2e8a4db81c290850562
Author: Frank Barchard <fbarchard@google.com>
Date:   Wed Sep 23 11:15:18 2015 -0700

    YUY2ToARGB avx2 in 1 step conversion.
    Includes UYVYToARGB ssse3 fix.

    Was
    YUY2ToARGB_Opt (433 ms)
    69.79%  libyuv_unittest  libyuv_unittest      [.] I422ToARGBRow_AVX2
    20.73%  libyuv_unittest  libyuv_unittest      [.] YUY2ToUV422Row_AVX2
     6.04%  libyuv_unittest  libyuv_unittest      [.] YUY2ToYRow_AVX2
     0.77%  libyuv_unittest  libyuv_unittest      [.] YUY2ToARGBRow_AVX2

    Now
    YUY2ToARGB_Opt (280 ms)
    95.66%  libyuv_unittest  libyuv_unittest      [.] YUY2ToARGBRow_AVX2

    BUG=libyuv:494
    R=harryjin@google.com

    Review URL: https://codereview.chromium.org/1364813002 .

The fix is trivial, basically functions YUY2ToARGBRow_AVX2 and 
UYVYToARGBRow_AVX2 need to be guarded with HAS_* macros as before the change.

Original issue reported on code.google.com by fbarch...@google.com on 9 Dec 2015 at 11:13

GoogleCodeExporter commented 8 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/libyuv/libyuv.git/+/b3bbcc1f4e9a3468c0cb4ecb46547c77576883f5

commit b3bbcc1f4e9a3468c0cb4ecb46547c77576883f5
Author: Frank Barchard <fbarchard@google.com>
Date: Wed Dec 09 23:23:51 2015

add ifdef for AVX2 so vs2010 can still compile

R=harryjin@google.com
BUG=libyuv:531

Review URL: https://codereview.chromium.org/1515503005 .

[modify] 
http://crrev.com/b3bbcc1f4e9a3468c0cb4ecb46547c77576883f5/source/row_win.cc

Original comment by bugdroid1@chromium.org on 9 Dec 2015 at 11:24

GoogleCodeExporter commented 8 years ago
Fixed but untested.

Original comment by fbarch...@google.com on 9 Dec 2015 at 11:28

GoogleCodeExporter commented 8 years ago

Original comment by fbarch...@google.com on 10 Dec 2015 at 11:33