diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c38eb767bac2d866d0a813dd82593ff90527414..ce11083950effd5ed26f1306d3c3a3aaa07e441e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-07-24  Michael Matz  <matz@suse.de>
+
+	* ra-colorize.c (INV_REG_ALLOC_ORDER): New macro.
+	(free_reg): Use it.
+
 2002-07-24  Richard Earnshaw  <rearnsha@arm.com>
 
 	* arm.md (arm_buneq, arm_bltgt): put '\' before ';' in output
diff --git a/gcc/ra-colorize.c b/gcc/ra-colorize.c
index 297b419e9006e69e4cfed4660ad65c275e1e3b02..f101eaa736311e7036199e9fda678d452b868e06 100644
--- a/gcc/ra-colorize.c
+++ b/gcc/ra-colorize.c
@@ -1031,6 +1031,13 @@ color_usable_p (c, dont_begin_colors, free_colors, mode)
   return 0;
 }
 
+/* I don't want to clutter up the actual code with ifdef's.  */
+#ifdef REG_ALLOC_ORDER
+#define INV_REG_ALLOC_ORDER(c) inv_reg_alloc_order[c]
+#else
+#define INV_REG_ALLOC_ORDER(c) c
+#endif
+
 /* Searches in FREE_COLORS for a block of hardregs of the right length
    for MODE, which doesn't begin at a hardreg mentioned in DONT_BEGIN_COLORS.
    If it needs more than one hardreg it prefers blocks beginning
@@ -1065,16 +1072,16 @@ get_free_reg (dont_begin_colors, free_colors, mode)
 	  {
 	    if (size < 2 || (c & 1) == 0)
 	      {
-		if (inv_reg_alloc_order[c] < pref_reg_order)
+		if (INV_REG_ALLOC_ORDER (c) < pref_reg_order)
 		  {
 		    pref_reg = c;
-		    pref_reg_order = inv_reg_alloc_order[c];
+		    pref_reg_order = INV_REG_ALLOC_ORDER (c);
 		  }
 	      }
-	    else if (inv_reg_alloc_order[c] < last_resort_reg_order)
+	    else if (INV_REG_ALLOC_ORDER (c) < last_resort_reg_order)
 	      {
 		last_resort_reg = c;
-		last_resort_reg_order = inv_reg_alloc_order[c];
+		last_resort_reg_order = INV_REG_ALLOC_ORDER (c);
 	      }
 	  }
 	else