------- Comment #6 from jsm28 at gcc dot gnu dot org 2006-11-23 00:16 ------- Patch was discussed at http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00451.html and had some objections from Geoff Keating.
I've come across another problem case and am testing another possible patch to address both cases. If you take an SImode subreg of a DFmode register, offset 4, that is the low word of the register and so is representable and subreg_regno_offset should return 0. But the conversion to integer units means that it acts like taking an SImode subreg of a DImode value (and so returns 1, taking the wrong register). I think the conversion to integer units is simply wrong in these cases. -- jsm28 at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jsm28 at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24036