This patch will fix the m68k-elf builds on AMD64 machines. But don't use it, because it is unclear if the assertion or the code calling do_SUBST is at fault. You have been warned. diff -ur gcc-3.4.6.orig/gcc/combine.c gcc-3.4.6/gcc/combine.c --- gcc-3.4.6.orig/gcc/combine.c 2005-08-08 14:41:04.000000000 -0400 +++ gcc-3.4.6/gcc/combine.c 2006-04-22 20:35:58.000000000 -0400 @@ -442,9 +442,11 @@ { /* Sanity check that we're replacing oldval with a CONST_INT that is a valid sign-extension for the original mode. */ - if (INTVAL (newval) != trunc_int_for_mode (INTVAL (newval), + /* + if (INTVAL (newval) != trunc_int_for_mode (INTVAL (newval), GET_MODE (oldval))) abort (); + */ /* Replacing the operand of a SUBREG or a ZERO_EXTEND with a CONST_INT is not valid, because after the replacement, the