Combine simplify_set WORD_REGISTER_OPERATIONS
The comment says this test is supposed to prevent "a narrower operation than requested", but it actually only allows a larger subreg not one the same size. Fix that. * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test. From-SVN: r235852
This commit is contained in:
parent
475839b6db
commit
343d0287f2
|
@ -1,3 +1,7 @@
|
|||
2016-05-04 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
|
||||
|
||||
2016-05-04 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR target/70866
|
||||
|
|
|
@ -6736,7 +6736,7 @@ simplify_set (rtx x)
|
|||
+ (UNITS_PER_WORD - 1)) / UNITS_PER_WORD))
|
||||
&& (WORD_REGISTER_OPERATIONS
|
||||
|| (GET_MODE_SIZE (GET_MODE (src))
|
||||
< GET_MODE_SIZE (GET_MODE (SUBREG_REG (src)))))
|
||||
<= GET_MODE_SIZE (GET_MODE (SUBREG_REG (src)))))
|
||||
#ifdef CANNOT_CHANGE_MODE_CLASS
|
||||
&& ! (REG_P (dest) && REGNO (dest) < FIRST_PSEUDO_REGISTER
|
||||
&& REG_CANNOT_CHANGE_MODE_P (REGNO (dest),
|
||||
|
|
Loading…
Reference in New Issue