------- Comment #5 from pinskia at gcc dot gnu dot org 2006-06-30 05:46 -------
The problem comes from:
1537 if (GET_CODE (return_reg) == PARALLEL)
1538 emit_group_load (return_reg, val, type, int_size_in_bytes
(type));
1539 else
1540 emit_move_insn (return_reg, val);
return_reg is:
(parallel:DF [
(expr_list:REG_DEP_TRUE (reg:DI 119 [ <result> ])
(const_int 0 [0x0]))
])
But I don't understand why it is DImode. Because the return type is double,
shouldn't this also be DI.
To me the mode should be DF and there should be a move without access to memory
to change the mode.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27875