The attach patch fixes a problem causing block/blk-merge.c in the linux kernel to be miscompiled. As a result, block segments were not properly split and boot failed since linux 4.3.
The problem was found by a regression search. The patch reverts a change in the handling of the Q and T constraints. Tested on hppa-unknown-linux-gnu, hppa2.0w-hp-hpux11.11and hppa64-hp-hpux11.11. Committed to trunk, 4.9 and 5 branches. Dave -- John David Anglin dave.ang...@bell.net
2016-03-17 John David Anglin <dang...@gcc.gnu.org> PR target/70188 * config/pa/constraints.md: Revert 2015-02-13 change. Use define_constraint for "Q" and "T" constraints. Index: config/pa/constraints.md =================================================================== --- config/pa/constraints.md (revision 234201) +++ config/pa/constraints.md (working copy) @@ -106,7 +106,7 @@ (and (match_code "mem") (match_test "IS_LO_SUM_DLT_ADDR_P (XEXP (op, 0))"))) -(define_memory_constraint "Q" +(define_constraint "Q" "A memory operand that can be used as the destination operand of an integer store, or the source operand of an integer load. That is any memory operand that isn't a symbolic, indexed or lo_sum memory @@ -122,7 +122,7 @@ (and (match_code "mem") (match_test "IS_INDEX_ADDR_P (XEXP (op, 0))"))) -(define_memory_constraint "T" +(define_constraint "T" "A memory operand for floating-point loads and stores." (match_test "floating_point_store_memory_operand (op, mode)"))