This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: DImode operations
daniel tian wrote:
> ../../../rice-gcc-4.3.0/libgcc/../gcc/libgcc2.c: In function '__muldi3':
> ../../../rice-gcc-4.3.0/libgcc/../gcc/libgcc2.c:557: internal compiler
> error: in emit_move_insn, at expr.c:3379
> make[2]: *** [_muldi3.o] Error 1
> gcc_assert (mode != BLKmode
> && (GET_MODE (y) == mode || GET_MODE (y) == VOIDmode));
>
> in function emit_move_insn cause the error. Because the machine mode
> in rtx x, y are different. X is SImode, while y is DImode.
Well, you need to establish why this insn is being generated. Is it coming
from your expanders perhaps? Now that you've figured out debugging cc1, set a
breakpoint on "internal_compiler_error" and take a look at the backtrace to
see what function has called emit_move_insn; the answer probably lies there.
cheers,
DaveK