
Temporary fix for an m68k back-end bug with the reload phase.

Peter Barada is investigating better ways to fix it.

diff -Nru gcc-3.3.1.orig/gcc/reload1.c gcc-3.3.1/gcc/reload1.c
--- gcc-3.3.1.orig/gcc/reload1.c	2003-06-07 07:30:09.000000000 +0200
+++ gcc-3.3.1/gcc/reload1.c	2003-07-25 00:29:04.000000000 +0200
@@ -2836,7 +2836,12 @@
 	}
 
       elimination_effects (SET_DEST (x), 0);
-      elimination_effects (SET_SRC (x), 0);
+      /* In the case where we're pushing a parameter, use the memory
+         mode of the move, not VOIDmode. */
+      mem_mode = GET_MODE (SET_DEST (x));
+      elimination_effects (SET_SRC (x),
+                           push_operand (SET_DEST (x), mem_mode) ?
+                           mem_mode : 0);
       return;
 
     case MEM:
