Michael Collison
2014-09-25 03:45:51 UTC
On certain patterns in atomics.md the constraint 'n' is used in
combination with the predicate atomic_op_operand. The constraint is too
general and allows constants that are disallowed by the predicate. This
causes an ICE In final_scan_insn when the insn cannot be split because
the constraint and predicate do not match.
Tested on aarch64-none-elf, aarch64-linux-gnu. Additionally the
originally reporter of the bug, (***@ubuntu.com), applied the patch and
successfully bootstrapped and tested with no regressions.
2014-09-23 Michael Collison <***@linaro.org>
* config/aarch64/iterators.md (lconst_atomic): New mode attribute to
support constraints for CONST_INT in atomic operations.
* config/aarch64/atomics.md
(atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
(atomic_nand<mode>): Likewise.
(atomic_fetch_<atomic_optab><mode>): Likewise.
(atomic_fetch_nand<mode>): Likewise.
(atomic_<atomic_optab>_fetch<mode>): Likewise.
(atomic_nand_fetch<mode>): Likewise.
combination with the predicate atomic_op_operand. The constraint is too
general and allows constants that are disallowed by the predicate. This
causes an ICE In final_scan_insn when the insn cannot be split because
the constraint and predicate do not match.
Tested on aarch64-none-elf, aarch64-linux-gnu. Additionally the
originally reporter of the bug, (***@ubuntu.com), applied the patch and
successfully bootstrapped and tested with no regressions.
2014-09-23 Michael Collison <***@linaro.org>
* config/aarch64/iterators.md (lconst_atomic): New mode attribute to
support constraints for CONST_INT in atomic operations.
* config/aarch64/atomics.md
(atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
(atomic_nand<mode>): Likewise.
(atomic_fetch_<atomic_optab><mode>): Likewise.
(atomic_fetch_nand<mode>): Likewise.
(atomic_<atomic_optab>_fetch<mode>): Likewise.
(atomic_nand_fetch<mode>): Likewise.
--
Michael Collison
Linaro Toolchain Working Group
***@linaro.org
Michael Collison
Linaro Toolchain Working Group
***@linaro.org