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

Reply via email to