> > If I understand correctly it complains about a move instruction where src > > memory location should be (reg22+reg23). My arch defines: > > #define MAX_REGS_PER_ADDRESS 1 > > the first pseudo reg is 13 > > > > I think the wording of the second sentence in the M_R_P_A documentation > (beginning 'Note that ...'): > > -- Macro: MAX_REGS_PER_ADDRESS > A number, the maximum number of registers that can appear in a > valid memory address. Note that it is up to you to specify a > value equal to the maximum number that > `TARGET_LEGITIMATE_ADDRESS_P' would ever accept.
Yeah I finally found that yesterday. Sorry that I could not find it in the docs before ;) It's open all the time but I just slipped through it... I don't really understand why this define exists anyway if finally only the LEGITIMATE_ADDRESS_P matters. The doc doesn't say (or at least I could not find it) what it is good for, if it is not the decision maker piece. Anyway, the libgcc is cross compiled. The "only" problem I face now that two object files do not compile with -O or -O2 switch. There is an ICE in reload_combine_not_use. But I'll try to figure that out. Thank, Gabor