--- ORIG/trunk/gcc/mode-switching.c	2012-11-05 08:07:55.000000000 +0900
+++ trunk/gcc/mode-switching.c	2012-11-05 19:22:56.000000000 +0900
@@ -324,7 +324,10 @@ create_pre_exit (int n_entities, int *en
 		    else
 		      break;
 		    if (copy_start >= FIRST_PSEUDO_REGISTER)
-		      break;
+		      {
+			last_insn = return_copy;
+			continue;
+		      }
 		    copy_num
 		      = hard_regno_nregs[copy_start][GET_MODE (copy_reg)];
 
