Fix compare_double_and_swap_double for clang/x86 in PIC mode
authorIvan Maidanski <ivmai@mail.ru>
Wed, 5 Sep 2012 04:25:24 +0000 (08:25 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 5 Sep 2012 12:03:04 +0000 (16:03 +0400)
commit64d81cd475b07c8a01b91a3be25e20eeca2d27ec
tree6b6fe39432b4233311480d7322956dcb70f7b15a
parent6a7ee55fe250657a2227f3d86395dced8ea10f2e
Fix compare_double_and_swap_double for clang/x86 in PIC mode

* src/atomic_ops/sysdeps/gcc/x86.h
(AO_compare_double_and_swap_double_full): Re-implement for PIC mode
saving EBX to a local variable (instead of pushing it to stack) and
saving memory operand address to a register (edi which is manually
preserved), so that the whole code could also work even if EBX points
to memory operand (e.g., in Clang); test __PIC__ using ifdef (instead
of "if"); update comments; reformat code.
src/atomic_ops/sysdeps/gcc/x86.h