< prev index next >

src/hotspot/cpu/sparc/vm_version_sparc.cpp

Print this page




  50   AllocatePrefetchDistance = allocate_prefetch_distance();
  51   AllocatePrefetchStyle    = allocate_prefetch_style();
  52 
  53   intx cache_line_size = prefetch_data_size();
  54 
  55   if (FLAG_IS_DEFAULT(AllocatePrefetchStepSize)) {
  56     AllocatePrefetchStepSize = MAX2(AllocatePrefetchStepSize, cache_line_size);
  57   }
  58 
  59   if (AllocatePrefetchInstr == 1) {
  60     if (!has_blk_init()) {
  61       warning("BIS instructions required for AllocatePrefetchInstr 1 unavailable");
  62       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
  63     }
  64     if (cache_line_size <= 0) {
  65       warning("Cache-line size must be known for AllocatePrefetchInstr 1 to work");
  66       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
  67     }
  68   }
  69 
  70   UseSSE = false;                   // Only used on x86 and x64.
  71 
  72   _supports_cx8 = true;             // All SPARC V9 implementations.
  73   _supports_atomic_getset4 = true;  // Using the 'swap' instruction.
  74 
  75   if (has_fast_ind_br() && FLAG_IS_DEFAULT(UseInlineCaches)) {
  76     // Indirect and direct branches are cost equivalent.
  77     FLAG_SET_DEFAULT(UseInlineCaches, false);
  78   }
  79   // Align loops on the proper instruction boundary to fill the instruction
  80   // fetch buffer.
  81   if (FLAG_IS_DEFAULT(OptoLoopAlignment)) {
  82     FLAG_SET_DEFAULT(OptoLoopAlignment, VM_Version::insn_fetch_alignment);
  83   }
  84 
  85   // 32-bit oops don't make sense for the 64-bit VM on SPARC since the 32-bit
  86   // VM has the same registers and smaller objects.
  87   Universe::set_narrow_oop_shift(LogMinObjAlignmentInBytes);
  88   Universe::set_narrow_klass_shift(LogKlassAlignmentInBytes);
  89 
  90 #ifdef COMPILER2
  91   if (has_fast_ind_br() && FLAG_IS_DEFAULT(UseJumpTables)) {




  50   AllocatePrefetchDistance = allocate_prefetch_distance();
  51   AllocatePrefetchStyle    = allocate_prefetch_style();
  52 
  53   intx cache_line_size = prefetch_data_size();
  54 
  55   if (FLAG_IS_DEFAULT(AllocatePrefetchStepSize)) {
  56     AllocatePrefetchStepSize = MAX2(AllocatePrefetchStepSize, cache_line_size);
  57   }
  58 
  59   if (AllocatePrefetchInstr == 1) {
  60     if (!has_blk_init()) {
  61       warning("BIS instructions required for AllocatePrefetchInstr 1 unavailable");
  62       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
  63     }
  64     if (cache_line_size <= 0) {
  65       warning("Cache-line size must be known for AllocatePrefetchInstr 1 to work");
  66       FLAG_SET_DEFAULT(AllocatePrefetchInstr, 0);
  67     }
  68   }
  69 


  70   _supports_cx8 = true;             // All SPARC V9 implementations.
  71   _supports_atomic_getset4 = true;  // Using the 'swap' instruction.
  72 
  73   if (has_fast_ind_br() && FLAG_IS_DEFAULT(UseInlineCaches)) {
  74     // Indirect and direct branches are cost equivalent.
  75     FLAG_SET_DEFAULT(UseInlineCaches, false);
  76   }
  77   // Align loops on the proper instruction boundary to fill the instruction
  78   // fetch buffer.
  79   if (FLAG_IS_DEFAULT(OptoLoopAlignment)) {
  80     FLAG_SET_DEFAULT(OptoLoopAlignment, VM_Version::insn_fetch_alignment);
  81   }
  82 
  83   // 32-bit oops don't make sense for the 64-bit VM on SPARC since the 32-bit
  84   // VM has the same registers and smaller objects.
  85   Universe::set_narrow_oop_shift(LogMinObjAlignmentInBytes);
  86   Universe::set_narrow_klass_shift(LogKlassAlignmentInBytes);
  87 
  88 #ifdef COMPILER2
  89   if (has_fast_ind_br() && FLAG_IS_DEFAULT(UseJumpTables)) {


< prev index next >