gas/
authorJan Beulich <jbeulich@novell.com>
Fri, 11 Jun 2010 15:07:53 +0000 (15:07 +0000)
committerJan Beulich <jbeulich@novell.com>
Fri, 11 Jun 2010 15:07:53 +0000 (15:07 +0000)
2010-06-11  Jan Beulich  <jbeulich@novell.com>

* config/tc-i386.c (md_parse_option): Ignore impossible processor
types.
(show_arch): New parameter 'check'.
(md_show_usage): Adjust calls to show_arch().

gas/ChangeLog
gas/config/tc-i386.c

index 4b2a357d0b9323682c5c69da313ca4822c2df07f..894b0ab3a69f93cbfa4d4b40f9f199246328cda8 100644 (file)
@@ -1,3 +1,10 @@
+2010-06-11  Jan Beulich  <jbeulich@novell.com>
+
+       * config/tc-i386.c (md_parse_option): Ignore impossible processor
+       types.
+       (show_arch): New parameter 'check'.
+       (md_show_usage): Adjust calls to show_arch().
+
 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/tc-i386.c (update_code_flag): New.
index d62c3a1f3ed78ea4462e0f0cc23fd397169eed59..f5c249ada48098dd714776b344dabea0369bbba7 100644 (file)
@@ -8187,6 +8187,9 @@ md_parse_option (int c, char *arg)
              if (strcmp (arch, cpu_arch [j].name) == 0)
                {
                  /* Processor.  */
+                 if (! cpu_arch[j].flags.bitfield.cpui386)
+                   continue;
+
                  cpu_arch_name = cpu_arch[j].name;
                  cpu_sub_arch_name = NULL;
                  cpu_arch_flags = cpu_arch[j].flags;
@@ -8318,7 +8321,7 @@ md_parse_option (int c, char *arg)
 "                                                                                "
 
 static void
-show_arch (FILE *stream, int ext)
+show_arch (FILE *stream, int ext, int check)
 {
   static char message[] = MESSAGE_TEMPLATE;
   char *start = message + 27;
@@ -8355,6 +8358,11 @@ show_arch (FILE *stream, int ext)
          /* It is an processor.  Skip if we show only extension.  */
          continue;
        }
+      else if (check && ! cpu_arch[j].flags.bitfield.cpui386)
+       {
+         /* It is an impossible processor - skip.  */
+         continue;
+       }
 
       /* Reserve 2 spaces for ", " or ",\0" */
       left -= len + 2;
@@ -8419,13 +8427,13 @@ md_show_usage (FILE *stream)
   fprintf (stream, _("\
   -march=CPU[,+EXTENSION...]\n\
                           generate code for CPU and EXTENSION, CPU is one of:\n"));
-  show_arch (stream, 0);
+  show_arch (stream, 0, 1);
   fprintf (stream, _("\
                           EXTENSION is combination of:\n"));
-  show_arch (stream, 1);
+  show_arch (stream, 1, 0);
   fprintf (stream, _("\
   -mtune=CPU              optimize for CPU, CPU is one of:\n"));
-  show_arch (stream, 0);
+  show_arch (stream, 0, 0);
   fprintf (stream, _("\
   -msse2avx               encode SSE instructions with VEX prefix\n"));
   fprintf (stream, _("\