diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2012-08-27 23:13:07 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2012-08-27 23:13:07 +0200 |
commit | 28591f4a8cbfab06692dcd8ae9a69ef95ecdf378 (patch) | |
tree | b4bfc575aa3d64996935f92d5870b3d297d870c0 /gcc/fortran/data.c | |
parent | d7920cf0719e3cc28e61a98d640f6d1cb46d797e (diff) | |
download | gcc-28591f4a8cbfab06692dcd8ae9a69ef95ecdf378.zip gcc-28591f4a8cbfab06692dcd8ae9a69ef95ecdf378.tar.gz gcc-28591f4a8cbfab06692dcd8ae9a69ef95ecdf378.tar.bz2 |
re PR target/46254 (ICE: in find_reloads, at reload.c:3806 (unable to generate reloads) with -fPIC -mcmodel={medium|large} and __sync_val_compare_and_swap)
PR target/46254
* config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Return
true for TARGET_64BIT or !flag_pic.
* config/i386/sync.md (*atomic_compare_and_swap_doubledi_pic): Remove.
(atomic_compare_and_swap_double<mode>): Change operand 2 predicate
to cmpxchg8b_pic_memory_operand. Use DWIH mode iterator.
Add insn constraint. Conditionally emit xchg asm insns.
(atomic_compare_and_swap<mode>): Update calls. Check only
cmpxchg8b_pic_memory_operand in memory address fixup.
(DCASMODE): Remove.
(CASHMODE): Rename from DCASHMODE.
(doublemodesuffix): Update modes.
(regprefix): New mode attribute.
(unspecv) <UNSPECV_CMPXCHG_{1,2,3,4}>: Remove.
<UNSPECV_CMPXCHG>: New constant.
(atomic_compare_and_swap<mode>_1): Rename from
atomic_compare_and_swap_single<mode>. Update calls and
unspec_volatile constants.
(atomic_compare_and_swap<mode>_doubleword): Rename from
atomic_compare_and_swap_double<mode>. Update calls and
unspec_volatile constants.
testsuite/ChangeLog:
PR target/46254
* gcc.target/i386/pr46254.c: New test.
From-SVN: r190732
Diffstat (limited to 'gcc/fortran/data.c')
0 files changed, 0 insertions, 0 deletions