[NDS32] Handle subreg correctly in wext_odd_dep_p.

gcc/
	* config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
	subreg.

From-SVN: r270382
This commit is contained in:
Chung-Ju Wu 2019-04-16 09:22:26 +00:00 committed by Chung-Ju Wu
parent 8feb61a3c5
commit 7f85e52c40
2 changed files with 17 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
* config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
subreg.
2019-04-16 Jakub Jelinek <jakub@redhat.com>
PR target/90096

View File

@ -363,14 +363,19 @@ wext_odd_dep_p (rtx insn, rtx def_reg)
return reg_overlap_p (def_reg, use_reg);
gcc_assert (REG_P (def_reg) || GET_CODE (def_reg) == SUBREG);
gcc_assert (REG_P (use_reg));
gcc_assert (REG_P (use_reg) || GET_CODE (use_reg) == SUBREG);
if (REG_P (def_reg))
{
if (!TARGET_BIG_ENDIAN)
return REGNO (def_reg) == REGNO (use_reg) + 1;
if REG_P (use_reg)
{
if (!TARGET_BIG_ENDIAN)
return REGNO (def_reg) == REGNO (use_reg) + 1;
else
return REGNO (def_reg) == REGNO (use_reg);
}
else
return REGNO (def_reg) == REGNO (use_reg);
return true;
}
if (GET_CODE (def_reg) == SUBREG)
@ -378,6 +383,9 @@ wext_odd_dep_p (rtx insn, rtx def_reg)
if (!reg_overlap_p (def_reg, use_reg))
return false;
if (GET_CODE (use_reg) == SUBREG)
return true;
if (!TARGET_BIG_ENDIAN)
return SUBREG_BYTE (def_reg) == 4;
else