diff options
Diffstat (limited to 'gcc/read-rtl-function.cc')
-rw-r--r-- | gcc/read-rtl-function.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/read-rtl-function.cc b/gcc/read-rtl-function.cc index fb9c955..1f08c50 100644 --- a/gcc/read-rtl-function.cc +++ b/gcc/read-rtl-function.cc @@ -1065,7 +1065,10 @@ function_reader::read_rtx_operand_r (rtx x) if (regno == -1) fatal_at (loc, "unrecognized register: '%s'", name.string); - set_regno_raw (x, regno, 1); + int nregs = 1; + if (HARD_REGISTER_NUM_P (regno)) + nregs = hard_regno_nregs (regno, GET_MODE (x)); + set_regno_raw (x, regno, nregs); /* Consolidate singletons. */ x = consolidate_singletons (x); |