
23 Oct
2012
23 Oct
'12
12:23 p.m.
On 23/10/12 13:46, Tim Blechmann wrote:
using boost.atomic on ia32/gcc causes me quite some headaches these days, as the cmpxchg8b instruction is enabled via the __i686__ or __x86_64__ macros. however on debian for example, the compiler defaults to generate code for i486. cmpxchg8b has been introduced with the p5 architecture, though, so compiling without specifying a -march flag won't generate the instruction.
GCC will not let you use instructions outside of the target architecture.
fyi, boost.atomic is using inline assembly
While inline assembly may allow to circumvent that restriction, I do not think it is a good idea to force a design that requires their usage.