Markus Franke wrote:
Does anybody have an idea what could be wrong in the machine description or to where start finding the error?
Compile with -da, and starting looking at the RTL dumps, mainly the greg and lreg ones. The greg one will have a section listing all of the reloads generated, find the list of reloads generated for this insn 45.
lreg will have info about register class preferencing. It will tell you what register class the compiler wants to use for this insn.
The fact that this insn doesn't do FP isn't important. What is important is how the pseudo-regs are used. If the pseudo-reg 92 is used in 10 insns, and 8 of them are FP insns and 2 are integer move insns, then the register allocator will prefer an FP reg, since that should give the best overall result, as only 2 insns will need reloads. If it used an integer reg, then 8 insns would need reloads.
-- Jim Wilson, GNU Tools Support, http://www.specifix.com