fix for loop-4 on a 32-bit -> 64-bit crosscompile

Geoff Keating geoffk@cygnus.com
Sat Jul 15 20:24:00 GMT 2000


This patch fixes the loop-4 regression when a 32-bit host is being
used for a 64-bit target.

Bootstrap & test on alpha running; it was originally tested on an
older egcs version (+cygnus hacks) on AIX32 and AIX64.

OK to commit (assuming no test failures)?

-- 
- Geoffrey Keating <geoffk@cygnus.com>

===File ~/patches/cygnus/rs6000-loop4.patch=================
2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>

	* unroll.c (copy_loop_body): Fix one instance of using host
	arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
	cross-compile.

Index: unroll.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gcc/unroll.c,v
retrieving revision 1.123
retrieving revision 1.123.8.1
diff -u -p -r1.123 -r1.123.8.1
--- unroll.c	2000/01/11 15:00:02	1.123
+++ unroll.c	2000/07/09 20:55:57	1.123.8.1
@@ -1922,8 +1922,9 @@ copy_loop_body (copy_start, copy_end, ma
 #endif
 
 		  splittable_regs[regno]
-		    = GEN_INT (INTVAL (giv_inc)
-			       + INTVAL (splittable_regs[src_regno]));
+		    = simplify_gen_binary (PLUS, GET_MODE (giv_src_reg),
+					   giv_inc,
+					   splittable_regs[src_regno]);
 		  giv_inc = splittable_regs[regno];
 
 		  /* Now split the induction variable by changing the dest
============================================================


More information about the Gcc-patches mailing list