aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/lra.c')
-rw-r--r--gcc/lra.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/lra.c b/gcc/lra.c
index 04acf88..66fbfd5 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -832,12 +832,11 @@ collect_non_operand_hard_regs (rtx *x, lra_insn_recog_data_t data,
subreg_p = false;
if (code == SUBREG)
{
+ mode = wider_subreg_mode (op);
if (read_modify_subreg_p (op))
subreg_p = true;
op = SUBREG_REG (op);
code = GET_CODE (op);
- if (GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (op)))
- mode = GET_MODE (op);
}
if (REG_P (op))
{
@@ -1425,12 +1424,11 @@ add_regs_to_insn_regno_info (lra_insn_recog_data_t data, rtx x, int uid,
subreg_p = false;
if (GET_CODE (x) == SUBREG)
{
+ mode = wider_subreg_mode (x);
if (read_modify_subreg_p (x))
subreg_p = true;
x = SUBREG_REG (x);
code = GET_CODE (x);
- if (GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (x)))
- mode = GET_MODE (x);
}
if (REG_P (x))
{