CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2015/12/01 08:18:29
Modified files:
gnu/gcc/gcc/config/i386: constraints.md i386.c sync.md
Log message:
Fix __sync_val_compare_and_swap_8() on i386 for code compiled with -fPIC.
In some cases GCC would generate a cmpxchg8b instruction with a memory
reference that used %ebx. This is wrong (and will almost certainly result
in SIGSEGV). This fix uses a new memory constraint "W" to prevent the use
of %ebx in this case. This differs from the approach taken by upstream so
there are no GPLv3 issues here.
Fixes the Mesa i965 dri module on i386.
ok jsg@