1

I'm trying to compile (visual studio 2005) ffmpeg with mmx flag enabled (HAVE_MMX) but get the following error: "error C2400: inline assembler syntax error in ‘opcode’" And it's complaining about xpor_r2r

Ideas?

[Update] Jester pointed out that it's probably a problem with the macro: #define mmx_r2r(op,regs,regd) \ __asm__ volatile (#op " %" #regs ", %" #regd)

Directly using: __asm__ pxor mm7 mm7 works Adding volatile (as in the macro mentioned) gives the same error, syntax error as before in 'opcode' found 'data_type'.

Just removing volatile from the macro does not work, instead gives error in 'opcode' found '('

Removing the paranthesis instead gives error in 'opcode' found 'bad_token'

Kristofer
  • 3,201
  • 23
  • 28
  • Maybe you could try a newer version of Visual Studio? – Paul R Oct 02 '13 at 16:13
  • @Paul: Do you know for sure that visual studio 2005 does not support it? – Kristofer Oct 03 '13 at 06:38
  • No, but unless there is some good reason to stick with such an old version I would expect that a newer version would have better support for SIMD extensions. – Paul R Oct 03 '13 at 09:22
  • Agree, all other parts of the system is built using vs2005 and we are moving to a newer compiler but have not reached that point yet. We could of course move to a newer compiler for this specific lib to se if that helps. – Kristofer Oct 03 '13 at 09:32
  • Yes - it would certainly be worth checking - I think you can still get free "Express" versions of Visual Studio 2008 and later which is useful for checking compatibility issues etc. – Paul R Oct 03 '13 at 09:37
  • `xpor_r2r` is not a valid instruction in x86, but `pxor` is. If you really have that in the code maybe it's a macro that's not expanded for some reason? – Jester Oct 03 '13 at 11:53
  • @Jester: You are right, #define pxor_r2r(regs, regd) mmx_r2r (pxor, regs, regd). I'll dig deeper into it. – Kristofer Oct 03 '13 at 13:22

0 Answers0