mirror of git://gcc.gnu.org/git/gcc.git
re PR target/52481 (m68k-*: internal compiler error: in extract_insn, at recog.c:2123)
PR target/52481 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop instead of calling negqi2 directly. From-SVN: r184948
This commit is contained in:
parent
ab6497549a
commit
b7313c309d
|
@ -1,3 +1,9 @@
|
||||||
|
2012-03-05 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
|
PR target/52481
|
||||||
|
* config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
|
||||||
|
instead of calling negqi2 directly.
|
||||||
|
|
||||||
2012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
|
2012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
|
||||||
|
|
||||||
* config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
|
* config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
|
||||||
|
|
|
@ -62,8 +62,11 @@
|
||||||
(match_operand:SI 2 "const_int_operand" "")] ;; model
|
(match_operand:SI 2 "const_int_operand" "")] ;; model
|
||||||
""
|
""
|
||||||
{
|
{
|
||||||
emit_insn (gen_atomic_test_and_set_1 (operands[0], operands[1]));
|
rtx t = gen_reg_rtx (QImode);
|
||||||
emit_insn (gen_negqi2 (operands[0], operands[0]));
|
emit_insn (gen_atomic_test_and_set_1 (t, operands[1]));
|
||||||
|
t = expand_simple_unop (QImode, NEG, t, operands[0], 0);
|
||||||
|
if (t != operands[0])
|
||||||
|
emit_move_insn (operands[0], t);
|
||||||
DONE;
|
DONE;
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue