src/cpu/sparc/vm/vm_version_sparc.hpp

changeset 6325
031b06eac1a9
parent 6312
04d32e7fad07
child 6876
710a3c8b516e
child 7027
b20a35eae442
     1.1 --- a/src/cpu/sparc/vm/vm_version_sparc.hpp	Thu Jan 23 09:33:50 2014 +0000
     1.2 +++ b/src/cpu/sparc/vm/vm_version_sparc.hpp	Tue Feb 11 08:49:37 2014 -0800
     1.3 @@ -49,7 +49,8 @@
     1.4      M_family             = 15,
     1.5      T_family             = 16,
     1.6      T1_model             = 17,
     1.7 -    aes_instructions     = 18
     1.8 +    sparc5_instructions  = 18,
     1.9 +    aes_instructions     = 19
    1.10    };
    1.11  
    1.12    enum Feature_Flag_Set {
    1.13 @@ -74,6 +75,7 @@
    1.14      M_family_m              = 1 << M_family,
    1.15      T_family_m              = 1 << T_family,
    1.16      T1_model_m              = 1 << T1_model,
    1.17 +    sparc5_instructions_m   = 1 << sparc5_instructions,
    1.18      aes_instructions_m      = 1 << aes_instructions,
    1.19  
    1.20      generic_v8_m        = v8_instructions_m | hardware_mul32_m | hardware_div32_m | hardware_fsmuld_m,
    1.21 @@ -125,6 +127,7 @@
    1.22    static bool has_vis3()                { return (_features & vis3_instructions_m) != 0; }
    1.23    static bool has_blk_init()            { return (_features & blk_init_instructions_m) != 0; }
    1.24    static bool has_cbcond()              { return (_features & cbcond_instructions_m) != 0; }
    1.25 +  static bool has_sparc5_instr()        { return (_features & sparc5_instructions_m) != 0; }
    1.26    static bool has_aes()                 { return (_features & aes_instructions_m) != 0; }
    1.27  
    1.28    static bool supports_compare_and_exchange()
    1.29 @@ -136,6 +139,7 @@
    1.30  
    1.31    static bool is_M_series()             { return is_M_family(_features); }
    1.32    static bool is_T4()                   { return is_T_family(_features) && has_cbcond(); }
    1.33 +  static bool is_T7()                   { return is_T_family(_features) && has_sparc5_instr(); }
    1.34  
    1.35    // Fujitsu SPARC64
    1.36    static bool is_sparc64()              { return (_features & sparc64_family_m) != 0; }
    1.37 @@ -155,7 +159,7 @@
    1.38    static const char* cpu_features()     { return _features_str; }
    1.39  
    1.40    static intx prefetch_data_size()  {
    1.41 -    return is_T4() ? 32 : 64;  // default prefetch block size on sparc
    1.42 +    return is_T4() && !is_T7() ? 32 : 64;  // default prefetch block size on sparc
    1.43    }
    1.44  
    1.45    // Prefetch

mercurial