Hi, I'm trying to add the movdi/movdf patterns to my HI target. Everything is working without this pattern, but it will bring further optimizations. The problem is that I'm not able to make it work. I have several reload issues and some questions to figure out how to fix them. - I first try to define it with a post reload define_plit and the constraints actually supported by HImode. But I'm getting an "unable to find a register to spill in class DATA_REGS". This occurs around function calls or lib calls which use 4 DATA_REGS class registers for params amoung 7, what seems to make reload impossible if parameters are allocated before the failed reload (?). I'm not sure of this... Any opinion on this? And is there a minimum number of registers in the class to make reload work around some function calls? - So I tried another option which seems to be less greedy: splitting after reload with a scratch HI reg and more general constraints (such as m:DI->m:DI through the scratch:HI), so does the m68hc11 target. The generated code is better, but I'm facing another reload issue with the insn that does not match its constraints, whereas it does for the 2 operands. only the scratch register has not been allocated. Is it a matter of secondary_reload_info in TARGET_SECONDARY_RELOAD? What should be done? And once it will be fixed, should I define a tmp register and its associated constraint to pass to match_scratch to save a register when actually no scratch is needed ? Thank you by advance, Aurélien