fix powerpc toolchain build failure on x86_64 hosts
SVN-Revision: 14036
This commit is contained in:
		@@ -19382,136 +19382,6 @@ diff -Nur gcc-4.1.2/gcc/expr.c gcc-4.1.2-owrt/gcc/expr.c
 | 
			
		||||
   dest = gen_rtx_MEM (mode, dest_addr);
 | 
			
		||||
 
 | 
			
		||||
   if (type != 0)
 | 
			
		||||
diff -Nur gcc-4.1.2/gcc/genemit.c gcc-4.1.2-owrt/gcc/genemit.c
 | 
			
		||||
--- gcc-4.1.2/gcc/genemit.c	2005-06-25 04:02:01.000000000 +0200
 | 
			
		||||
+++ gcc-4.1.2-owrt/gcc/genemit.c	2007-05-24 12:03:28.000000000 +0200
 | 
			
		||||
@@ -122,6 +122,24 @@
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 static void
 | 
			
		||||
+gen_vararg_prologue(int operands)
 | 
			
		||||
+{
 | 
			
		||||
+  int i;
 | 
			
		||||
+
 | 
			
		||||
+  if (operands > 1)
 | 
			
		||||
+    {
 | 
			
		||||
+      for (i = 1; i < operands; i++)
 | 
			
		||||
+	printf("  rtx operand%d ATTRIBUTE_UNUSED;\n", i);
 | 
			
		||||
+
 | 
			
		||||
+      printf("  va_list args;\n\n");
 | 
			
		||||
+      printf("  va_start(args, operand0);\n");
 | 
			
		||||
+      for (i = 1; i < operands; i++)
 | 
			
		||||
+	printf("  operand%d = va_arg(args, rtx);\n", i);
 | 
			
		||||
+      printf("  va_end(args);\n\n");
 | 
			
		||||
+    }
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+static void
 | 
			
		||||
 print_code (RTX_CODE code)
 | 
			
		||||
 {
 | 
			
		||||
   const char *p1;
 | 
			
		||||
@@ -406,18 +424,16 @@
 | 
			
		||||
     fatal ("match_dup operand number has no match_operand");
 | 
			
		||||
 
 | 
			
		||||
   /* Output the function name and argument declarations.  */
 | 
			
		||||
-  printf ("rtx\ngen_%s (", XSTR (insn, 0));
 | 
			
		||||
+  printf ("rtx\ngen_%s ", XSTR (insn, 0));
 | 
			
		||||
+
 | 
			
		||||
   if (operands)
 | 
			
		||||
-    for (i = 0; i < operands; i++)
 | 
			
		||||
-      if (i)
 | 
			
		||||
-	printf (",\n\trtx operand%d ATTRIBUTE_UNUSED", i);
 | 
			
		||||
-      else
 | 
			
		||||
-	printf ("rtx operand%d ATTRIBUTE_UNUSED", i);
 | 
			
		||||
+    printf("(rtx operand0 ATTRIBUTE_UNUSED, ...)\n");
 | 
			
		||||
   else
 | 
			
		||||
-    printf ("void");
 | 
			
		||||
-  printf (")\n");
 | 
			
		||||
+    printf("(void)\n");
 | 
			
		||||
   printf ("{\n");
 | 
			
		||||
 
 | 
			
		||||
+  gen_vararg_prologue(operands);
 | 
			
		||||
+
 | 
			
		||||
   /* Output code to construct and return the rtl for the instruction body.  */
 | 
			
		||||
 
 | 
			
		||||
   if (XVECLEN (insn, 1) == 1)
 | 
			
		||||
@@ -457,16 +473,12 @@
 | 
			
		||||
   operands = max_operand_vec (expand, 1);
 | 
			
		||||
 
 | 
			
		||||
   /* Output the function name and argument declarations.  */
 | 
			
		||||
-  printf ("rtx\ngen_%s (", XSTR (expand, 0));
 | 
			
		||||
+  printf ("rtx\ngen_%s ", XSTR (expand, 0));
 | 
			
		||||
   if (operands)
 | 
			
		||||
-    for (i = 0; i < operands; i++)
 | 
			
		||||
-      if (i)
 | 
			
		||||
-	printf (",\n\trtx operand%d", i);
 | 
			
		||||
-      else
 | 
			
		||||
-	printf ("rtx operand%d", i);
 | 
			
		||||
+    printf("(rtx operand0 ATTRIBUTE_UNUSED, ...)\n");
 | 
			
		||||
   else
 | 
			
		||||
-    printf ("void");
 | 
			
		||||
-  printf (")\n");
 | 
			
		||||
+    printf("(void)\n");
 | 
			
		||||
+
 | 
			
		||||
   printf ("{\n");
 | 
			
		||||
 
 | 
			
		||||
   /* If we don't have any C code to write, only one insn is being written,
 | 
			
		||||
@@ -476,6 +488,8 @@
 | 
			
		||||
       && operands > max_dup_opno
 | 
			
		||||
       && XVECLEN (expand, 1) == 1)
 | 
			
		||||
     {
 | 
			
		||||
+      gen_vararg_prologue(operands);
 | 
			
		||||
+
 | 
			
		||||
       printf ("  return ");
 | 
			
		||||
       gen_exp (XVECEXP (expand, 1, 0), DEFINE_EXPAND, NULL);
 | 
			
		||||
       printf (";\n}\n\n");
 | 
			
		||||
@@ -489,6 +503,7 @@
 | 
			
		||||
   for (; i <= max_scratch_opno; i++)
 | 
			
		||||
     printf ("  rtx operand%d ATTRIBUTE_UNUSED;\n", i);
 | 
			
		||||
   printf ("  rtx _val = 0;\n");
 | 
			
		||||
+  gen_vararg_prologue(operands);
 | 
			
		||||
   printf ("  start_sequence ();\n");
 | 
			
		||||
 
 | 
			
		||||
   /* The fourth operand of DEFINE_EXPAND is some code to be executed
 | 
			
		||||
diff -Nur gcc-4.1.2/gcc/genflags.c gcc-4.1.2-owrt/gcc/genflags.c
 | 
			
		||||
--- gcc-4.1.2/gcc/genflags.c	2005-06-25 04:02:01.000000000 +0200
 | 
			
		||||
+++ gcc-4.1.2-owrt/gcc/genflags.c	2007-05-24 12:03:28.000000000 +0200
 | 
			
		||||
@@ -128,7 +128,6 @@
 | 
			
		||||
 gen_proto (rtx insn)
 | 
			
		||||
 {
 | 
			
		||||
   int num = num_operands (insn);
 | 
			
		||||
-  int i;
 | 
			
		||||
   const char *name = XSTR (insn, 0);
 | 
			
		||||
   int truth = maybe_eval_c_test (XSTR (insn, 2));
 | 
			
		||||
 
 | 
			
		||||
@@ -159,12 +158,7 @@
 | 
			
		||||
   if (num == 0)
 | 
			
		||||
     fputs ("void", stdout);
 | 
			
		||||
   else
 | 
			
		||||
-    {
 | 
			
		||||
-      for (i = 1; i < num; i++)
 | 
			
		||||
-	fputs ("rtx, ", stdout);
 | 
			
		||||
-
 | 
			
		||||
-      fputs ("rtx", stdout);
 | 
			
		||||
-    }
 | 
			
		||||
+    fputs("rtx, ...", stdout);
 | 
			
		||||
 
 | 
			
		||||
   puts (");");
 | 
			
		||||
 
 | 
			
		||||
@@ -174,12 +168,7 @@
 | 
			
		||||
     {
 | 
			
		||||
       printf ("static inline rtx\ngen_%s", name);
 | 
			
		||||
       if (num > 0)
 | 
			
		||||
-	{
 | 
			
		||||
-	  putchar ('(');
 | 
			
		||||
-	  for (i = 0; i < num-1; i++)
 | 
			
		||||
-	    printf ("rtx ARG_UNUSED (%c), ", 'a' + i);
 | 
			
		||||
-	  printf ("rtx ARG_UNUSED (%c))\n", 'a' + i);
 | 
			
		||||
-	}
 | 
			
		||||
+	puts("(rtx ARG_UNUSED(a), ...)");
 | 
			
		||||
       else
 | 
			
		||||
 	puts ("(void)");
 | 
			
		||||
       puts ("{\n  return 0;\n}");
 | 
			
		||||
diff -Nur gcc-4.1.2/gcc/genoutput.c gcc-4.1.2-owrt/gcc/genoutput.c
 | 
			
		||||
--- gcc-4.1.2/gcc/genoutput.c	2005-06-25 04:02:01.000000000 +0200
 | 
			
		||||
+++ gcc-4.1.2-owrt/gcc/genoutput.c	2007-05-24 12:03:28.000000000 +0200
 | 
			
		||||
@@ -19567,18 +19437,6 @@ diff -Nur gcc-4.1.2/gcc/longlong.h gcc-4.1.2-owrt/gcc/longlong.h
 | 
			
		||||
 #if defined (__hppa) && W_TYPE_SIZE == 32
 | 
			
		||||
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 | 
			
		||||
   __asm__ ("add %4,%5,%1\n\taddc %2,%3,%0"				\
 | 
			
		||||
diff -Nur gcc-4.1.2/gcc/optabs.h gcc-4.1.2-owrt/gcc/optabs.h
 | 
			
		||||
--- gcc-4.1.2/gcc/optabs.h	2005-08-19 23:20:02.000000000 +0200
 | 
			
		||||
+++ gcc-4.1.2-owrt/gcc/optabs.h	2007-05-24 12:03:28.000000000 +0200
 | 
			
		||||
@@ -415,7 +415,7 @@
 | 
			
		||||
 extern GTY(()) optab code_to_optab[NUM_RTX_CODE + 1];
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
-typedef rtx (*rtxfun) (rtx);
 | 
			
		||||
+typedef rtx (*rtxfun) (rtx, ...);
 | 
			
		||||
 
 | 
			
		||||
 /* Indexed by the rtx-code for a conditional (e.g. EQ, LT,...)
 | 
			
		||||
    gives the gen_function to make a branch to test that condition.  */
 | 
			
		||||
diff -Nur gcc-4.1.2/libstdc++-v3/acinclude.m4 gcc-4.1.2-owrt/libstdc++-v3/acinclude.m4
 | 
			
		||||
--- gcc-4.1.2/libstdc++-v3/acinclude.m4	2007-01-29 11:51:01.000000000 +0100
 | 
			
		||||
+++ gcc-4.1.2-owrt/libstdc++-v3/acinclude.m4	2007-05-24 12:03:28.000000000 +0200
 | 
			
		||||
 
 | 
			
		||||
@@ -21943,145 +21943,6 @@
 | 
			
		||||
     {
 | 
			
		||||
       int save_tree_used;
 | 
			
		||||
 
 | 
			
		||||
--- a/gcc/genemit.c
 | 
			
		||||
+++ b/gcc/genemit.c
 | 
			
		||||
@@ -121,6 +121,24 @@ max_operand_vec (rtx insn, int arg)
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 static void
 | 
			
		||||
+gen_vararg_prologue(int operands)
 | 
			
		||||
+{
 | 
			
		||||
+  int i;
 | 
			
		||||
+
 | 
			
		||||
+  if (operands > 1)
 | 
			
		||||
+    {
 | 
			
		||||
+      for (i = 1; i < operands; i++)
 | 
			
		||||
+	printf("  rtx operand%d ATTRIBUTE_UNUSED;\n", i);
 | 
			
		||||
+
 | 
			
		||||
+      printf("  va_list args;\n\n");
 | 
			
		||||
+      printf("  va_start(args, operand0);\n");
 | 
			
		||||
+      for (i = 1; i < operands; i++)
 | 
			
		||||
+	printf("  operand%d = va_arg(args, rtx);\n", i);
 | 
			
		||||
+      printf("  va_end(args);\n\n");
 | 
			
		||||
+    }
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+static void
 | 
			
		||||
 print_code (RTX_CODE code)
 | 
			
		||||
 {
 | 
			
		||||
   const char *p1;
 | 
			
		||||
@@ -405,18 +423,16 @@ gen_insn (rtx insn, int lineno)
 | 
			
		||||
     fatal ("match_dup operand number has no match_operand");
 | 
			
		||||
 
 | 
			
		||||
   /* Output the function name and argument declarations.  */
 | 
			
		||||
-  printf ("rtx\ngen_%s (", XSTR (insn, 0));
 | 
			
		||||
+  printf ("rtx\ngen_%s ", XSTR (insn, 0));
 | 
			
		||||
+
 | 
			
		||||
   if (operands)
 | 
			
		||||
-    for (i = 0; i < operands; i++)
 | 
			
		||||
-      if (i)
 | 
			
		||||
-	printf (",\n\trtx operand%d ATTRIBUTE_UNUSED", i);
 | 
			
		||||
-      else
 | 
			
		||||
-	printf ("rtx operand%d ATTRIBUTE_UNUSED", i);
 | 
			
		||||
+    printf("(rtx operand0 ATTRIBUTE_UNUSED, ...)\n");
 | 
			
		||||
   else
 | 
			
		||||
-    printf ("void");
 | 
			
		||||
-  printf (")\n");
 | 
			
		||||
+    printf("(void)\n");
 | 
			
		||||
   printf ("{\n");
 | 
			
		||||
 
 | 
			
		||||
+  gen_vararg_prologue(operands);
 | 
			
		||||
+
 | 
			
		||||
   /* Output code to construct and return the rtl for the instruction body.  */
 | 
			
		||||
 
 | 
			
		||||
   if (XVECLEN (insn, 1) == 1)
 | 
			
		||||
@@ -456,16 +472,12 @@ gen_expand (rtx expand)
 | 
			
		||||
   operands = max_operand_vec (expand, 1);
 | 
			
		||||
 
 | 
			
		||||
   /* Output the function name and argument declarations.  */
 | 
			
		||||
-  printf ("rtx\ngen_%s (", XSTR (expand, 0));
 | 
			
		||||
+  printf ("rtx\ngen_%s ", XSTR (expand, 0));
 | 
			
		||||
   if (operands)
 | 
			
		||||
-    for (i = 0; i < operands; i++)
 | 
			
		||||
-      if (i)
 | 
			
		||||
-	printf (",\n\trtx operand%d", i);
 | 
			
		||||
-      else
 | 
			
		||||
-	printf ("rtx operand%d", i);
 | 
			
		||||
+    printf("(rtx operand0 ATTRIBUTE_UNUSED, ...)\n");
 | 
			
		||||
   else
 | 
			
		||||
-    printf ("void");
 | 
			
		||||
-  printf (")\n");
 | 
			
		||||
+    printf("(void)\n");
 | 
			
		||||
+
 | 
			
		||||
   printf ("{\n");
 | 
			
		||||
 
 | 
			
		||||
   /* If we don't have any C code to write, only one insn is being written,
 | 
			
		||||
@@ -475,6 +487,8 @@ gen_expand (rtx expand)
 | 
			
		||||
       && operands > max_dup_opno
 | 
			
		||||
       && XVECLEN (expand, 1) == 1)
 | 
			
		||||
     {
 | 
			
		||||
+      gen_vararg_prologue(operands);
 | 
			
		||||
+
 | 
			
		||||
       printf ("  return ");
 | 
			
		||||
       gen_exp (XVECEXP (expand, 1, 0), DEFINE_EXPAND, NULL);
 | 
			
		||||
       printf (";\n}\n\n");
 | 
			
		||||
@@ -488,6 +502,7 @@ gen_expand (rtx expand)
 | 
			
		||||
   for (; i <= max_scratch_opno; i++)
 | 
			
		||||
     printf ("  rtx operand%d ATTRIBUTE_UNUSED;\n", i);
 | 
			
		||||
   printf ("  rtx _val = 0;\n");
 | 
			
		||||
+  gen_vararg_prologue(operands);
 | 
			
		||||
   printf ("  start_sequence ();\n");
 | 
			
		||||
 
 | 
			
		||||
   /* The fourth operand of DEFINE_EXPAND is some code to be executed
 | 
			
		||||
--- a/gcc/genflags.c
 | 
			
		||||
+++ b/gcc/genflags.c
 | 
			
		||||
@@ -127,7 +127,6 @@ static void
 | 
			
		||||
 gen_proto (rtx insn)
 | 
			
		||||
 {
 | 
			
		||||
   int num = num_operands (insn);
 | 
			
		||||
-  int i;
 | 
			
		||||
   const char *name = XSTR (insn, 0);
 | 
			
		||||
   int truth = maybe_eval_c_test (XSTR (insn, 2));
 | 
			
		||||
 
 | 
			
		||||
@@ -158,12 +157,7 @@ gen_proto (rtx insn)
 | 
			
		||||
   if (num == 0)
 | 
			
		||||
     fputs ("void", stdout);
 | 
			
		||||
   else
 | 
			
		||||
-    {
 | 
			
		||||
-      for (i = 1; i < num; i++)
 | 
			
		||||
-	fputs ("rtx, ", stdout);
 | 
			
		||||
-
 | 
			
		||||
-      fputs ("rtx", stdout);
 | 
			
		||||
-    }
 | 
			
		||||
+    fputs("rtx, ...", stdout);
 | 
			
		||||
 
 | 
			
		||||
   puts (");");
 | 
			
		||||
 
 | 
			
		||||
@@ -173,12 +167,7 @@ gen_proto (rtx insn)
 | 
			
		||||
     {
 | 
			
		||||
       printf ("static inline rtx\ngen_%s", name);
 | 
			
		||||
       if (num > 0)
 | 
			
		||||
-	{
 | 
			
		||||
-	  putchar ('(');
 | 
			
		||||
-	  for (i = 0; i < num-1; i++)
 | 
			
		||||
-	    printf ("rtx ARG_UNUSED (%c), ", 'a' + i);
 | 
			
		||||
-	  printf ("rtx ARG_UNUSED (%c))\n", 'a' + i);
 | 
			
		||||
-	}
 | 
			
		||||
+	puts("(rtx ARG_UNUSED(a), ...)");
 | 
			
		||||
       else
 | 
			
		||||
 	puts ("(void)");
 | 
			
		||||
       puts ("{\n  return 0;\n}");
 | 
			
		||||
--- a/gcc/genoutput.c
 | 
			
		||||
+++ b/gcc/genoutput.c
 | 
			
		||||
@@ -386,7 +386,7 @@ output_insn_data (void)
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
       if (d->name && d->name[0] != '*')
 | 
			
		||||
-	printf ("    (insn_gen_fn) gen_%s,\n", d->name);
 | 
			
		||||
+	printf ("    gen_%s,\n", d->name);
 | 
			
		||||
       else
 | 
			
		||||
 	printf ("    0,\n");
 | 
			
		||||
 
 | 
			
		||||
--- a/gcc/ifcvt.c
 | 
			
		||||
+++ b/gcc/ifcvt.c
 | 
			
		||||
@@ -77,7 +77,7 @@ static int num_possible_if_blocks;
 | 
			
		||||
@@ -22231,17 +22092,6 @@
 | 
			
		||||
 #if defined (__hppa) && W_TYPE_SIZE == 32
 | 
			
		||||
 #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
 | 
			
		||||
   __asm__ ("add %4,%5,%1\n\taddc %2,%3,%0"				\
 | 
			
		||||
--- a/gcc/optabs.h
 | 
			
		||||
+++ b/gcc/optabs.h
 | 
			
		||||
@@ -431,7 +431,7 @@ extern enum insn_code reload_out_optab[N
 | 
			
		||||
 extern GTY(()) optab code_to_optab[NUM_RTX_CODE + 1];
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
-typedef rtx (*rtxfun) (rtx);
 | 
			
		||||
+typedef rtx (*rtxfun) (rtx, ...);
 | 
			
		||||
 
 | 
			
		||||
 /* Indexed by the rtx-code for a conditional (e.g. EQ, LT,...)
 | 
			
		||||
    gives the gen_function to make a branch to test that condition.  */
 | 
			
		||||
--- a/gcc/regrename.c
 | 
			
		||||
+++ b/gcc/regrename.c
 | 
			
		||||
@@ -1592,6 +1592,9 @@ copyprop_hardreg_forward_1 (basic_block 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user