------- Comment #10 from steven at gcc dot gnu dot org 2008-01-18 17:14 -------
The problem is IMHO in the div<mode>3 define_expand in mips.md:
(define_expand "div<mode>3"
[(set (match_operand:ANYF 0 "register_operand")
(div:ANYF (match_operand:ANYF 1 "reg_or_1_operand")
(match_operand:ANYF 2 "register_operand")))]
"<divide_condition>"
{
if (const_1_operand (operands[1], <MODE>mode))
if (!(ISA_HAS_FP4 && flag_unsafe_math_optimizations))
operands[1] = force_reg (<MODE>mode, operands[1]);
})
If SB1 can't handle CONST1_RTX in operand 1, then the expander shouldn't
generate an insn like that for it.
So either the define_expand is wrong, or there is a mismatch between this and a
define_insn (at least, AFAIU -- not being a MIPS guru and a below-par back-end
hacker ;-)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34831