------- Additional Comments From uweigand at gcc dot gnu dot org 2004-12-02 16:14 ------- As to 1), this can be achieved by marking the 'f' alternatives in the *movdi_internal32 pattern as '!*f'; this will prevent both regclass and reload from using the alternatives unless there was a floating-point register involved already before reload.
As to 2), the proper way to go via memory would be to return NO_REGS from PREFERRED_RELOAD_CLASS when asked how to load a constant into (a superclass of) FLOAT_REGS. Then reload takes care of force_const_mem and everything related. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18641