A bug in tbb? windows_ia32.h cannot be compiled

A bug in tbb? windows_ia32.h cannot be compiled

Hi,

I have decided to try out atomic template class but I have not got far.
All I did that I included #include "tbb/atomic.h" in the file.

I get this error in MSC9:
>d:\libs\tbb21_20080605oss\include\tbb\machine\windows_ia32.h(169) : error C2400: inline assembler syntax error in 'opcode'; found 'bad token'

static inline void __TBB_machine_OR( volatile void *operand, unsigned __int32 addend ) {
   __asm 
   {
       mov eax, addend
       mov edx, [operand]
       lock or [edx], eax <-- this is the problem
   }
}
Can someone tell me what may be wrong












4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

A lot of fixes has been made in TBB since the version you use (despite it being the last in "Stable" download area). Could you please take a more fresh version, e.g. tbb21_017oss, the last commercially aligned release, and check if it will work?
If it does not work either, more information about your environment would be necessary. TBB is tested every day with VS 2008, so we could not miss the issue like that.

Quoting - Alexey Kukanov (Intel)

A lot of fixes has been made in TBB since the version you use (despite it being the last in "Stable" download area). Could you please take a more fresh version, e.g. tbb21_017oss, the last commercially aligned release, and check if it will work?
If it does not work either, more information about your environment would be necessary. TBB is tested every day with VS 2008, so we could not miss the issue like that.

I have just done so. I am Windows 7. What information do you need?

I still get an error:
d:libstbb21_017oss_wintbb21_017ossincludetbbmachine/windows_ia32.h(171) : error C2400: inline assembler syntax error in 'opcode'; found 'bad token'

I have Microsoft C++ 2008.
Here it is more.

Microsoft Visual Studio 2008
Version 9.0.30729.1 SP
Microsoft .NET Framework
Version 3.5 SP1

Installed Edition: VC Express

Microsoft Visual C++ 2008 91909-152-0000052-60779
Microsoft Visual C++ 2008

Hotfix for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU (KB945282) KB945282
This hotfix is for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http://support.microsoft.com/kb/945282.

Hotfix for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU (KB946040) KB946040
This hotfix is for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http://support.microsoft.com/kb/946040.

Hotfix for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU (KB946308) KB946308
This hotfix is for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http://support.microsoft.com/kb/946308.

Hotfix for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU (KB947540) KB947540
This hotfix is for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http://support.microsoft.com/kb/947540.

Hotfix for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU (KB947789) KB947789
This hotfix is for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http://support.microsoft.com/kb/947789.

Hotfix for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU (KB948127) KB948127
This hotfix is for Microsoft Visual C++ 2008 Express Edition with SP1 - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http://support.microsoft.com/kb/948127.

Hi,

I have found out what is wrong.
I included iso646.h which redefines or and and and which breaks and and or in asm.

Leave a Comment

Please sign in to add a comment. Not a member? Join today