cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor clean up.
gcc/ChangeLog: 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org> * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor clean up. From-SVN: r226134
This commit is contained in:
parent
46e82d43f1
commit
fa24123b0f
2 changed files with 10 additions and 5 deletions
|
@ -1,3 +1,8 @@
|
|||
2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
|
||||
|
||||
* cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
|
||||
clean up.
|
||||
|
||||
2015-07-23 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
|
||||
|
|
10
gcc/cse.c
10
gcc/cse.c
|
@ -4529,10 +4529,10 @@ cse_insn (rtx_insn *insn)
|
|||
this case, and if it isn't set, then there will be no equivalence
|
||||
for the destination. */
|
||||
if (n_sets == 1 && REG_NOTES (insn) != 0
|
||||
&& (tem = find_reg_note (insn, REG_EQUAL, NULL_RTX)) != 0)
|
||||
&& (tem = find_reg_note (insn, REG_EQUAL, NULL_RTX)) != 0
|
||||
&& (! rtx_equal_p (XEXP (tem, 0), SET_SRC (sets[0].rtl))))
|
||||
{
|
||||
if ((! rtx_equal_p (XEXP (tem, 0), SET_SRC (sets[0].rtl)))
|
||||
|| GET_CODE (SET_DEST (sets[0].rtl)) == STRICT_LOW_PART)
|
||||
if (GET_CODE (SET_DEST (sets[0].rtl)) == STRICT_LOW_PART)
|
||||
src_eqv = copy_rtx (XEXP (tem, 0));
|
||||
|
||||
/* If DEST is of the form ZERO_EXTACT, as in:
|
||||
|
@ -4544,14 +4544,14 @@ cse_insn (rtx_insn *insn)
|
|||
point. Note that this is different from SRC_EQV. We can however
|
||||
calculate SRC_EQV with the position and width of ZERO_EXTRACT. */
|
||||
else if (GET_CODE (SET_DEST (sets[0].rtl)) == ZERO_EXTRACT
|
||||
&& CONST_INT_P (src_eqv)
|
||||
&& CONST_INT_P (XEXP (tem, 0))
|
||||
&& CONST_INT_P (XEXP (SET_DEST (sets[0].rtl), 1))
|
||||
&& CONST_INT_P (XEXP (SET_DEST (sets[0].rtl), 2)))
|
||||
{
|
||||
rtx dest_reg = XEXP (SET_DEST (sets[0].rtl), 0);
|
||||
rtx width = XEXP (SET_DEST (sets[0].rtl), 1);
|
||||
rtx pos = XEXP (SET_DEST (sets[0].rtl), 2);
|
||||
HOST_WIDE_INT val = INTVAL (src_eqv);
|
||||
HOST_WIDE_INT val = INTVAL (XEXP (tem, 0));
|
||||
HOST_WIDE_INT mask;
|
||||
unsigned int shift;
|
||||
if (BITS_BIG_ENDIAN)
|
||||
|
|
Loading…
Add table
Reference in a new issue