diff mbox

IRA: Fix WORDS_BIG_ENDIAN usage

Message ID 4F42B6CF.7060804@codesourcery.com
State New
Headers show

Commit Message

Bernd Schmidt Feb. 20, 2012, 9:10 p.m. UTC
For C6X, I added a patch to separate out a REG_WORDS_BIG_ENDIAN macro
from WORDS_BIG_ENDIAN. Since the patch was originally for 4.5, it missed
a few new instances in IRA where we need to change which macro we use.
The following patch makes big-endian kernels boot.

Bootstrapped and regression tested on i686-linux; can't affect any
target other than C6X. Normally I'd check it in as obvious, but given
that we're in stage4 I'll ask for an OK.


Bernd
* ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
	WORDS_BIG_ENDIAN.
	* ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
	assign_hard_reg): Likewise.

Comments

Vladimir Makarov Feb. 21, 2012, 10:04 p.m. UTC | #1
On 02/20/2012 04:10 PM, Bernd Schmidt wrote:
> For C6X, I added a patch to separate out a REG_WORDS_BIG_ENDIAN macro
> from WORDS_BIG_ENDIAN. Since the patch was originally for 4.5, it missed
> a few new instances in IRA where we need to change which macro we use.
> The following patch makes big-endian kernels boot.
>
> Bootstrapped and regression tested on i686-linux; can't affect any
> target other than C6X. Normally I'd check it in as obvious, but given
> that we're in stage4 I'll ask for an OK.
>
Ok, Bernd.  Thanks.
diff mbox

Patch

Index: gcc/ira.c
===================================================================
--- gcc/ira.c	(revision 183969)
+++ gcc/ira.c	(working copy)
@@ -2089,7 +2089,7 @@  check_allocation (void)
 	  int this_regno = hard_regno;
 	  if (n > 1)
 	    {
-	      if (WORDS_BIG_ENDIAN)
+	      if (REG_WORDS_BIG_ENDIAN)
 		this_regno += n - i - 1;
 	      else
 		this_regno += i;
@@ -2108,7 +2108,7 @@  check_allocation (void)
 	      if (ALLOCNO_NUM_OBJECTS (conflict_a) > 1
 		  && conflict_nregs == ALLOCNO_NUM_OBJECTS (conflict_a))
 		{
-		  if (WORDS_BIG_ENDIAN)
+		  if (REG_WORDS_BIG_ENDIAN)
 		    conflict_hard_regno += (ALLOCNO_NUM_OBJECTS (conflict_a)
 					    - OBJECT_SUBWORD (conflict_obj) - 1);
 		  else
Index: gcc/ira-color.c
===================================================================
--- gcc/ira-color.c	(revision 183969)
+++ gcc/ira-color.c	(working copy)
@@ -1067,7 +1067,7 @@  setup_profitable_hard_regs (void)
 		{
 		  int num = OBJECT_SUBWORD (conflict_obj);
 		  
-		  if (WORDS_BIG_ENDIAN)
+		  if (REG_WORDS_BIG_ENDIAN)
 		    CLEAR_HARD_REG_BIT
 		      (ALLOCNO_COLOR_DATA (conflict_a)->profitable_hard_regs,
 		       hard_regno + nobj - num - 1);
@@ -1451,7 +1451,7 @@  check_hard_reg_p (ira_allocno_t a, int h
       
       if (nregs == nwords)
 	{
-	  if (WORDS_BIG_ENDIAN)
+	  if (REG_WORDS_BIG_ENDIAN)
 	    set_to_test_start = nwords - j - 1;
 	  else
 	    set_to_test_start = j;
@@ -1610,7 +1610,7 @@  assign_hard_reg (ira_allocno_t a, bool r
 		    {
 		      int num = OBJECT_SUBWORD (conflict_obj);
 
-		      if (WORDS_BIG_ENDIAN)
+		      if (REG_WORDS_BIG_ENDIAN)
 			SET_HARD_REG_BIT (conflicting_regs[word],
 					  hard_regno + n_objects - num - 1);
 		      else