OSDN Git Service

2010-11-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
authorkrebbel <krebbel>
Thu, 25 Nov 2010 18:33:50 +0000 (18:33 +0000)
committerkrebbel <krebbel>
Thu, 25 Nov 2010 18:33:50 +0000 (18:33 +0000)
* config/tc-s390.c (current_cpu): Initialize with latest CPU.
(init_default_arch): Default to z/Architecture mode if CPU provides it.
Remove the check setting the CPU default.

2010-11-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* opcode/s390.h (enum s390_opcode_cpu_val): Add S390_OPCODE_MAXCPU.

gas/ChangeLog
gas/config/tc-s390.c
include/ChangeLog
include/opcode/s390.h

index fcce43c..60cb1b0 100644 (file)
@@ -1,3 +1,9 @@
+2010-11-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/tc-s390.c (current_cpu): Initialize with latest CPU.
+       (init_default_arch): Default to z/Architecture mode if CPU provides it.
+       Remove the check setting the CPU default.
+
 2010-11-25  Alan Modra  <amodra@gmail.com>
 
        * po/es.po: Update.
index 273ddd6..ca7ad3b 100644 (file)
@@ -38,8 +38,11 @@ static char *default_arch = DEFAULT_ARCH;
 /* Either 32 or 64, selects file format.  */
 static int s390_arch_size = 0;
 
+/* If no -march option was given default to the highest available CPU.
+   Since with S/390 a newer CPU always supports everything from its
+   predecessors this will accept every valid asm input.  */
+static unsigned int current_cpu = S390_OPCODE_MAXCPU - 1;
 static unsigned int current_mode_mask = 0;
-static unsigned int current_cpu = -1U;
 
 /* Whether to use user friendly register names. Default is TRUE.  */
 #ifndef TARGET_REG_NAMES_P
@@ -328,18 +331,12 @@ init_default_arch (void)
 
   if (current_mode_mask == 0)
     {
-      if (s390_arch_size == 32)
+      /* Default to z/Architecture mode if the CPU supports it.  */
+      if (current_cpu < S390_OPCODE_Z900)
        current_mode_mask = 1 << S390_OPCODE_ESA;
       else
        current_mode_mask = 1 << S390_OPCODE_ZARCH;
     }
-  if (current_cpu == -1U)
-    {
-      if (current_mode_mask == (1 << S390_OPCODE_ESA))
-       current_cpu = S390_OPCODE_G5;
-      else
-       current_cpu = S390_OPCODE_Z900;
-    }
 }
 
 /* Called by TARGET_FORMAT.  */
index bcaf5f2..1cff893 100644 (file)
@@ -1,3 +1,7 @@
+2010-11-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * opcode/s390.h (enum s390_opcode_cpu_val): Add S390_OPCODE_MAXCPU.
+
 2010-11-16  Ian Lance Taylor  <iant@google.com>
 
        * simple-object.h (simple_object_attributes_merge): Declare,
index 399904c..2cbe5f5 100644 (file)
@@ -39,7 +39,8 @@ enum s390_opcode_cpu_val
     S390_OPCODE_Z9_109,
     S390_OPCODE_Z9_EC,
     S390_OPCODE_Z10,
-    S390_OPCODE_Z196
+    S390_OPCODE_Z196,
+    S390_OPCODE_MAXCPU
   };
 
 /* The opcode table is an array of struct s390_opcode.  */