I'm working on a port that has instructions to move bits between 64-bit floating-point and 64-bit general-purpose regs. I say "bits" because there's no conversion between float and int: the bit pattern is unaltered. Therefore, it's possible to use scratch FPRs for spilling GPRs & vice-versa, and float<->int conversions need not go through memory.
Among all the knobs to turn regarding register classes, reload classes, and modes+constraints on movM, floatMN2, fixMN2 patterns, I need some advice on how to do this properly. Thanks! Greg