src/cpu/sparc/vm/vm_version_sparc.hpp

changeset 3052
1af104d6cf99
parent 3037
3d42f82cd811
child 3092
baf763f388e6
     1.1 --- a/src/cpu/sparc/vm/vm_version_sparc.hpp	Tue Aug 16 11:53:57 2011 -0700
     1.2 +++ b/src/cpu/sparc/vm/vm_version_sparc.hpp	Tue Aug 16 16:59:46 2011 -0700
     1.3 @@ -121,6 +121,7 @@
     1.4    // Returns true if the platform is in the niagara line (T series)
     1.5    // and newer than the niagara1.
     1.6    static bool is_niagara_plus()         { return is_T_family(_features) && !is_T1_model(_features); }
     1.7 +  static bool is_T4()                   { return is_T_family(_features) && has_cbcond(); }
     1.8  
     1.9    // Fujitsu SPARC64
    1.10    static bool is_sparc64()              { return (_features & sparc64_family_m) != 0; }
    1.11 @@ -130,13 +131,17 @@
    1.12  
    1.13    static bool has_fast_fxtof()          { return is_niagara() || is_sparc64() || has_v9() && !is_ultra3(); }
    1.14    static bool has_fast_idiv()           { return is_niagara_plus() || is_sparc64(); }
    1.15 +
    1.16    // T4 and newer Sparc have fast RDPC instruction.
    1.17 -  static bool has_fast_rdpc()           { return is_niagara_plus() && has_cbcond(); }
    1.18 +  static bool has_fast_rdpc()           { return is_T4(); }
    1.19 +
    1.20 +  // T4 and newer Sparc have Most-Recently-Used (MRU) BIS.
    1.21 +  static bool has_mru_blk_init()        { return has_blk_init() && is_T4(); }
    1.22  
    1.23    static const char* cpu_features()     { return _features_str; }
    1.24  
    1.25 -  static intx L1_data_cache_line_size()  {
    1.26 -    return 64;  // default prefetch block size on sparc
    1.27 +  static intx prefetch_data_size()  {
    1.28 +    return is_T4() ? 32 : 64;  // default prefetch block size on sparc
    1.29    }
    1.30  
    1.31    // Prefetch

mercurial