OSDN Git Service

PR target/39431
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Mar 2009 20:45:39 +0000 (20:45 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Mar 2009 20:45:39 +0000 (20:45 +0000)
commit1f477a18c46bb6c3901cb019cd1bfdd8242dc2aa
treebeadbfad946cf940235a072c010af8519bd6c4cf
parent7e17a1bfc7f21e9492b3e5178258e34012fbd3be
PR target/39431
* config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
predicate.
* config/i386/sync.md (sync_compare_and_swap<mode>,
sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
into a register.
(sync_double_compare_and_swapdi_pic,
sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
cmpxchg8b_pic_memory_operand instead of just memory_operand.

* gcc.target/i386/pr39431.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144825 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/predicates.md
gcc/config/i386/sync.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr39431.c [new file with mode: 0644]