コード例 #1
0
ファイル: vm_version_sparc.cpp プロジェクト: gaoxiaojun/dync
int VM_Version::determine_features() {
  if (UseV8InstrsOnly) {
    if (PrintMiscellaneous && Verbose) { tty->print_cr("Version is Forced-V8"); }
    return generic_v8_m;
  }

  int features = platform_features(unknown_m); // platform_features() is os_arch specific

  if (features == unknown_m) {
    features = generic_v9_m;
    warning("Cannot recognize SPARC version. Default to V9");
  }

  assert(is_T_family(features) == is_niagara(features), "Niagara should be T series");
  if (UseNiagaraInstrs) { // Force code generation for Niagara
    if (is_T_family(features)) {
      // Happy to accomodate...
    } else {
      if (PrintMiscellaneous && Verbose) { tty->print_cr("Version is Forced-Niagara"); }
      features |= T_family_m;
    }
  } else {
    if (is_T_family(features) && !FLAG_IS_DEFAULT(UseNiagaraInstrs)) {
      if (PrintMiscellaneous && Verbose) { tty->print_cr("Version is Forced-Not-Niagara"); }
      features &= ~(T_family_m | T1_model_m);
    } else {
      // Happy to accomodate...
    }
  }

  return features;
}
コード例 #2
0
ファイル: vm_version_sparc.hpp プロジェクト: pombreda/graal
 static bool is_niagara() { return is_T_family(_features); }
コード例 #3
0
 static bool is_T4()                   { return is_T_family(_features) && has_cbcond(); }
コード例 #4
0
 // Returns true if the platform is in the niagara line (T series)
 // and newer than the niagara1.
 static bool is_niagara_plus()         { return is_T_family(_features) && !is_T1_model(_features); }
コード例 #5
0
 // Returns true if it is niagara1 (T1).
 static bool is_T1_model(int features) { return is_T_family(features) && ((features & T1_model_m) != 0); }
コード例 #6
0
 static bool is_T7()                   { return is_T_family(_features) && has_sparc5_instr(); }