< prev index next >

src/hotspot/cpu/s390/vm_version_s390.cpp

Print this page

        

@@ -251,45 +251,52 @@
   }
 }
 
 
 void VM_Version::set_features_string() {
-
+  // A note on the _features_string format:
+  //   There are jtreg tests checking the _features_string for various properties.
+  //   For some strange reason, these tests require the string to contain
+  //   only _lowercase_ characters. Keep that in mind when being surprised
+  //   about the unusual notation of features - and when adding new ones.
+  //   Features may have one comma at the end.
+  //   Furthermore, use one, and only one, separator space between features.
+  //   Multiple spaces are considered separate tokens, messing up everything.
   unsigned int ambiguity = 0;
   _model_string = z_name[0];
   if (is_z13()) {
-    _features_string = "System z G7-z13  (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update, TxM, VectorInstr)";
+    _features_string = "system-z, g7-z13, ldisp_fast, extimm, pcrel_load/store, cmpb, cond_load/store, interlocked_update, txm, vectorinstr";
     _model_string = z_name[7];
     ambiguity++;
   }
   if (is_ec12()) {
-    _features_string = "System z G6-EC12 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update, TxM)";
+    _features_string = "system-z, g6-ec12, ldisp_fast, extimm, pcrel_load/store, cmpb, cond_load/store, interlocked_update, txm";
     _model_string = z_name[6];
     ambiguity++;
   }
   if (is_z196()) {
-    _features_string = "System z G5-z196 (LDISP_fast, ExtImm, PCrel Load/Store, CmpB, Cond Load/Store, Interlocked Update)";
+    _features_string = "system-z, g5-z196, ldisp_fast, extimm, pcrel_load/store, cmpb, cond_load/store, interlocked_update";
     _model_string = z_name[5];
     ambiguity++;
   }
   if (is_z10()) {
-    _features_string = "System z G4-z10  (LDISP_fast, ExtImm, PCrel Load/Store, CmpB)";
+    _features_string = "system-z, g4-z10, ldisp_fast, extimm, pcrel_load/store, cmpb";
     _model_string = z_name[4];
     ambiguity++;
   }
   if (is_z9()) {
-    _features_string = "System z G3-z9   (LDISP_fast, ExtImm), out-of-support as of 2016-04-01";
+    _features_string = "system-z, g3-z9, ldisp_fast, extimm, out-of-support as of 2016-04-01";
     _model_string = z_name[3];
     ambiguity++;
   }
   if (is_z990()) {
-    _features_string = "System z G2-z990 (LDISP_fast), out-of-support as of 2014-07-01";
+    _features_string = "system-z, g2-z990, ldisp_fast, out-of-support as of 2014-07-01";
     _model_string = z_name[2];
     ambiguity++;
   }
   if (is_z900()) {
-    _features_string = "System z G1-z900 (LDISP), out-of-support as of 2014-07-01";
+    _features_string = "system-z, g1-z900, ldisp, out-of-support as of 2014-07-01";
     _model_string = z_name[1];
     ambiguity++;
   }
 
   if (ambiguity == 0) {

@@ -300,29 +307,28 @@
     _features_string = "z/Architecture (ambiguous detection)";
   }
 
   if (has_Crypto_AES()) {
     char buf[256];
-    assert(strlen(_features_string) + 4 + 3*4 + 1 < sizeof(buf), "increase buffer size");
-    jio_snprintf(buf, sizeof(buf), "%s aes%s%s%s", // String 'aes' must be surrounded by spaces so that jtreg tests recognize it.
+    assert(strlen(_features_string) + 3*8 < sizeof(buf), "increase buffer size");
+    jio_snprintf(buf, sizeof(buf), "%s%s%s%s",
                  _features_string,
-                 has_Crypto_AES128() ? " 128" : "",
-                 has_Crypto_AES192() ? " 192" : "",
-                 has_Crypto_AES256() ? " 256" : "");
+                 has_Crypto_AES128() ? ", aes128" : "",
+                 has_Crypto_AES192() ? ", aes192" : "",
+                 has_Crypto_AES256() ? ", aes256" : "");
     _features_string = os::strdup(buf);
   }
 
   if (has_Crypto_SHA()) {
     char buf[256];
-    assert(strlen(_features_string) + 4 + 2 + 2*4 + 6 + 1 < sizeof(buf), "increase buffer size");
-    // String 'sha1' etc must be surrounded by spaces so that jtreg tests recognize it.
-    jio_snprintf(buf, sizeof(buf), "%s %s%s%s%s",
+    assert(strlen(_features_string) + 6 + 2*8 + 7 < sizeof(buf), "increase buffer size");
+    jio_snprintf(buf, sizeof(buf), "%s%s%s%s%s",
                  _features_string,
-                 has_Crypto_SHA1()   ? " sha1"   : "",
-                 has_Crypto_SHA256() ? " sha256" : "",
-                 has_Crypto_SHA512() ? " sha512" : "",
-                 has_Crypto_GHASH()  ? " ghash"  : "");
+                 has_Crypto_SHA1()   ? ", sha1"   : "",
+                 has_Crypto_SHA256() ? ", sha256" : "",
+                 has_Crypto_SHA512() ? ", sha512" : "",
+                 has_Crypto_GHASH()  ? ", ghash"  : "");
     if (has_Crypto_AES()) { os::free((void *)_features_string); }
     _features_string = os::strdup(buf);
   }
 }
 
< prev index next >