------- 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