8164002: Add a new CPU family (S_family) for SPARC S7 and above processors

Tue, 04 Apr 2017 02:49:51 -0700

author
kevinw
date
Tue, 04 Apr 2017 02:49:51 -0700
changeset 8733
92cb89e23f3e
parent 8732
ef91cb539697
child 8734
c73c5d205d0a

8164002: Add a new CPU family (S_family) for SPARC S7 and above processors
Reviewed-by: dholmes, ecaspole, kvn

src/cpu/sparc/vm/vm_version_sparc.cpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/vm_version_sparc.hpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/sparc/vm/vm_version_sparc.cpp	Fri Mar 31 07:46:19 2017 -0700
     1.2 +++ b/src/cpu/sparc/vm/vm_version_sparc.cpp	Tue Apr 04 02:49:51 2017 -0700
     1.3 @@ -449,9 +449,10 @@
     1.4  
     1.5  unsigned int VM_Version::calc_parallel_worker_threads() {
     1.6    unsigned int result;
     1.7 -  if (is_M_series()) {
     1.8 -    // for now, use same gc thread calculation for M-series as for niagara-plus
     1.9 -    // in future, we may want to tweak parameters for nof_parallel_worker_thread
    1.10 +  if (is_M_series() || is_S_series()) {
    1.11 +    // for now, use same gc thread calculation for M-series and S-series as for
    1.12 +    // niagara-plus. In future, we may want to tweak parameters for
    1.13 +    // nof_parallel_worker_thread
    1.14      result = nof_parallel_worker_threads(5, 16, 8);
    1.15    } else if (is_niagara_plus()) {
    1.16      result = nof_parallel_worker_threads(5, 16, 8);
    1.17 @@ -475,6 +476,9 @@
    1.18    } else if (strstr(impl, "SPARC-M") != NULL) {
    1.19      // M-series SPARC is based on T-series.
    1.20      features |= (M_family_m | T_family_m);
    1.21 +  } else if (strstr(impl, "SPARC-S") != NULL) {
    1.22 +    // S-series SPARC is based on T-series.
    1.23 +    features |= (S_family_m | T_family_m);
    1.24    } else if (strstr(impl, "SPARC-T") != NULL) {
    1.25      features |= T_family_m;
    1.26      if (strstr(impl, "SPARC-T1") != NULL) {
     2.1 --- a/src/cpu/sparc/vm/vm_version_sparc.hpp	Fri Mar 31 07:46:19 2017 -0700
     2.2 +++ b/src/cpu/sparc/vm/vm_version_sparc.hpp	Tue Apr 04 02:49:51 2017 -0700
     2.3 @@ -47,13 +47,14 @@
     2.4      cbcond_instructions  = 13,
     2.5      sparc64_family       = 14,
     2.6      M_family             = 15,
     2.7 -    T_family             = 16,
     2.8 -    T1_model             = 17,
     2.9 -    sparc5_instructions  = 18,
    2.10 -    aes_instructions     = 19,
    2.11 -    sha1_instruction     = 20,
    2.12 -    sha256_instruction   = 21,
    2.13 -    sha512_instruction   = 22
    2.14 +    S_family             = 16,
    2.15 +    T_family             = 17,
    2.16 +    T1_model             = 18,
    2.17 +    sparc5_instructions  = 19,
    2.18 +    aes_instructions     = 20,
    2.19 +    sha1_instruction     = 21,
    2.20 +    sha256_instruction   = 22,
    2.21 +    sha512_instruction   = 23
    2.22    };
    2.23  
    2.24    enum Feature_Flag_Set {
    2.25 @@ -76,6 +77,7 @@
    2.26      cbcond_instructions_m   = 1 << cbcond_instructions,
    2.27      sparc64_family_m        = 1 << sparc64_family,
    2.28      M_family_m              = 1 << M_family,
    2.29 +    S_family_m              = 1 << S_family,
    2.30      T_family_m              = 1 << T_family,
    2.31      T1_model_m              = 1 << T1_model,
    2.32      sparc5_instructions_m   = 1 << sparc5_instructions,
    2.33 @@ -105,6 +107,7 @@
    2.34  
    2.35    // Returns true if the platform is in the niagara line (T series)
    2.36    static bool is_M_family(int features) { return (features & M_family_m) != 0; }
    2.37 +  static bool is_S_family(int features) { return (features & S_family_m) != 0; }
    2.38    static bool is_T_family(int features) { return (features & T_family_m) != 0; }
    2.39    static bool is_niagara() { return is_T_family(_features); }
    2.40  #ifdef ASSERT
    2.41 @@ -152,6 +155,7 @@
    2.42    static bool is_niagara_plus()         { return is_T_family(_features) && !is_T1_model(_features); }
    2.43  
    2.44    static bool is_M_series()             { return is_M_family(_features); }
    2.45 +  static bool is_S_series()             { return is_S_family(_features); }
    2.46    static bool is_T4()                   { return is_T_family(_features) && has_cbcond(); }
    2.47    static bool is_T7()                   { return is_T_family(_features) && has_sparc5_instr(); }
    2.48  

mercurial