diff options
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r-- | gcc/reg-stack.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 54c3f086a48..6c204467423 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -557,7 +557,11 @@ get_true_reg (pat) rtx subreg; if (FP_REG_P (subreg = SUBREG_REG (*pat))) { - *pat = FP_MODE_REG (REGNO (subreg) + SUBREG_WORD (*pat), + int regno_off = subreg_regno_offset (REGNO (subreg), + GET_MODE (subreg), + SUBREG_BYTE (*pat), + GET_MODE (*pat)); + *pat = FP_MODE_REG (REGNO (subreg) + regno_off, GET_MODE (subreg)); default: return pat; |