Yes I know gcc 3.4.6 is quite old :) but the backend work has started on this version for bad reasons and now we plan to make something work (pass a few test cases) before migrating to last gcc 4 version.
Concerning REGISTER_MOVE_COST, I don't know what can be fixed with it. The 3 params of REGISTER_MOVE_COST are (machine_mode mode, regclass from, reg_class to). So I can only write cost for register to register moves. I don't see any suitable macro to specify immediate to register moves. (in gcc3.4.6 internals ....) Nevertheless, the REGISTER_MOVE_COST is defined with costs 3 for all valid moves (C_REGS <-> R_REGS). Is there a way to prevent totally the allocation of a hard register in specific context using 'costs'? -----Message d'origine----- De : Ian Lance Taylor [mailto:i...@google.com] Envoyé : mercredi 14 septembre 2011 15:40 À : BELBACHIR Selim Cc : gcc@gcc.gnu.org Objet : Re: postreload problem using reload_inm and SECONDARY_RELOAD macros BELBACHIR Selim <selim.belbac...@fr.thalesgroup.com> writes: > I'm writing a backend for gcc3.4.6 and I'm a bit confused about reload passes. You know gcc 3.4.6 is really old, right? > I have no mean to express this limitation inside predicates (because > pseudo register don't known in which hard register they will be > allocated), reload pass create some moves from immediate to $R. : First guess would be REGISTER_MOVE_COST. Ian