On 11/02/2015 11:29 PM, Anatoly Sokolov wrote:
@@ -5522,12 +5516,7 @@
op0 = SUBREG_REG (op0);
code0 = GET_CODE (op0);
if (code0 == REG && REGNO (op0) < FIRST_PSEUDO_REGISTER)
- op0 = gen_rtx_REG (word_mode,
- (REGNO (op0) +
- subreg_regno_offset (REGNO (SUBREG_REG (orig_op0)),
- GET_MODE (SUBREG_REG (orig_op0)),
- SUBREG_BYTE (orig_op0),
- GET_MODE (orig_op0))));
+ op0 = gen_rtx_REG (word_mode, subreg_regno (op0));
}
Same problem as in the reg-stack code? The existing code was using
orig_op0 to get the subreg, you've changed it to use op0 which is
already the SUBREG_REG.
No promblens here. At this point op0 is equivalent orig_op0. New value
to op0 can be assigned later.
Err, what? Before the quoted code we have
rtx op0 = orig_op0;
and then
op0 = SUBREG_REG (op0);
Are you overlooking this line?
+ else if (REG_P (reg) + && HARD_REGISTER_P (reg))
I don't see how this would even compile.
- regno += subreg_regno_offset (regno, GET_MODE (SUBREG_REG (reg)),
- SUBREG_BYTE (reg), GET_MODE (reg));
+ regno = subreg_regno (reg); endregno = regno + subreg_nregs (reg);
This looks like you edited the patch? The endregno assignment is on its
own line after this.
NAK, a final one as far as I'm concerned.
Bernd