------- Additional Comments From danglin at gcc dot gnu dot org 2005-08-07 01:46 ------- The problem is that emit_move_insn_1 is generating a move instruction with a CONST_INT source that's invalid (i.e., LEGITIMATE_CONST_P is false). This occurs here:
/* Try using a move pattern for the corresponding integer mode. This is only safe when simplify_subreg can convert MODE constants into integer constants. At present, it can only do this reliably if the value fits within a HOST_WIDE_INT. */ else if (GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT && (submode = int_mode_for_mode (mode)) != BLKmode && mov_optab->handlers[submode].insn_code != CODE_FOR_nothing) return emit_insn (GEN_FCN (mov_optab->handlers[submode].insn_code) (simplify_gen_subreg (submode, x, mode, 0), simplify_gen_subreg (submode, y, mode, 0))); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19770