re PR rtl-optimization/65401 (make_field_assignment broken for big-endian)
authorJakub Jelinek <jakub@redhat.com>
Sat, 14 Mar 2015 08:54:08 +0000 (09:54 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 14 Mar 2015 08:54:08 +0000 (09:54 +0100)
commita4b55f2a303636e3491250e1499e88454cb4ed2f
treebc114b2b6eba0116cb808d58d4045446b9a73fd8
parentefdea4d54b2af7ad3ef5dd3f1a0ca5284e60a33c
re PR rtl-optimization/65401 (make_field_assignment broken for big-endian)

PR rtl-optimization/65401
* combine.c (rtx_equal_for_field_assignment_p): Add widen_x
argument.  If true, adjust_address_nv of x with big-endian
correction for the mode widening to GET_MODE (y).
(make_field_assignment): Don't do MEM mode widening here.
Use MEM_P instead of GET_CODE == MEM.

* gcc.c-torture/execute/pr65401.c: New test.

From-SVN: r221433
gcc/ChangeLog
gcc/combine.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr65401.c [new file with mode: 0644]