diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-01-26 12:12:03 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-01-26 12:12:03 +0100 |
commit | 6c06e0e822db96b71c80e268260d2b4b4c1bc1f5 (patch) | |
tree | 13dabb40608100e7283aa3ad638031f8b5807728 /gcc/doc | |
parent | b96824c4848d33c8cc9b574ce29da98464feaabb (diff) | |
download | gcc-6c06e0e822db96b71c80e268260d2b4b4c1bc1f5.zip gcc-6c06e0e822db96b71c80e268260d2b4b4c1bc1f5.tar.gz gcc-6c06e0e822db96b71c80e268260d2b4b4c1bc1f5.tar.bz2 |
re PR target/69442 (wrong code with -Og and 64bit modulo @ armv7a)
PR target/69442
* combine.c (combine_instructions): For REG_EQUAL note with
SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
to the underlying register.
* doc/rtl.texi (REG_EQUAL): Document the behavior of
REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
* gcc.dg/pr69442.c: New test.
From-SVN: r232819
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/rtl.texi | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/doc/rtl.texi b/gcc/doc/rtl.texi index e44ef53..1b3f47e 100644 --- a/gcc/doc/rtl.texi +++ b/gcc/doc/rtl.texi @@ -3915,9 +3915,9 @@ indicates that that register will be equal to @var{op} at run time; the scope of this equivalence differs between the two types of notes. The value which the insn explicitly copies into the register may look different from @var{op}, but they will be equal at run time. If the -output of the single @code{set} is a @code{strict_low_part} expression, -the note refers to the register that is contained in @code{SUBREG_REG} -of the @code{subreg} expression. +output of the single @code{set} is a @code{strict_low_part} or +@code{zero_extract} expression, the note refers to the register that +is contained in its first operand. For @code{REG_EQUIV}, the register is equivalent to @var{op} throughout the entire function, and could validly be replaced in all its |