Fix for mips bootstrap failure

Andreas Jaeger aj@sgi.com
Mon Apr 10 17:03:00 GMT 2000


As reported on gcc-bugs (with subject "align bug? in mips.c" in
< http://gcc.gnu.org/ml/gcc-bugs/2000-04/msg00173.html >), we're passing
the wrong alignment to move_by_pieces.  The appended patch fixes this
bug.  

Please add this patch to gcc.

Thanks,
Andreas

2000-04-10  Andreas Jaeger  <aj@suse.de>

	* config/mips/mips.c (expand_block_move): Pass alignment
	argument to move_by_pieces in bits, not bytes.


Index: gcc/config/mips/mips.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/mips/mips.c,v
retrieving revision 1.86
diff -u -r1.86 mips.c
--- mips.c	2000/03/26 16:46:27	1.86
+++ mips.c	2000/04/10 23:53:30
@@ -3167,7 +3167,7 @@
 
   else if (constp && bytes <= 2 * MAX_MOVE_BYTES
 	   && align == UNITS_PER_WORD)
-    move_by_pieces (orig_dest, orig_src, bytes, align);
+    move_by_pieces (orig_dest, orig_src, bytes, align* BITS_PER_WORD);
 	
   else if (constp && bytes <= 2 * MAX_MOVE_BYTES)
     emit_insn (gen_movstrsi_internal (change_address (orig_dest, BLKmode,

-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.rhein-neckar.de
    currently: aj@oss.sgi.com


More information about the Gcc-patches mailing list