This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Fix for postreload


On 2010/9/14 äå 02:13, Eric Botcazou wrote:
I think it's because the second else-if clause exchanges base_reg (which
is here known to be a constant) and XEXP(src,1), the latter becoming the
new "base reg" below. So reg_mode[REGNO(XEXP(src,1))] is what matters here.

I think that reg_mode should be checked whenever reg_offset is used as a replacement, so the first check is correct and the second should be changed.


From the surrounding context, I think reg_mode[] is checked in accordance with updating reg_base_reg[], not reg_offset[].


That said, this discussion is sort of diverging off my patch :)
My fix was only to add the required reg_symbol_ref[] tests, to ensure the case is 'offset' instead of 'sym + offset'. How the mode checks should be modified can be a later patch.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]