src/cpu/sparc/vm/macroAssembler_sparc.cpp

changeset 8944
072770c9a6b9
parent 8940
eb9e617d6f64
child 8997
f8a45a60bc6b
equal deleted inserted replaced
8943:c5ff0a4b9532 8944:072770c9a6b9
4259 // Use BIS for zeroing (count is in bytes). 4259 // Use BIS for zeroing (count is in bytes).
4260 void MacroAssembler::bis_zeroing(Register to, Register count, Register temp, Label& Ldone) { 4260 void MacroAssembler::bis_zeroing(Register to, Register count, Register temp, Label& Ldone) {
4261 assert(UseBlockZeroing && VM_Version::has_block_zeroing(), "only works with BIS zeroing"); 4261 assert(UseBlockZeroing && VM_Version::has_block_zeroing(), "only works with BIS zeroing");
4262 Register end = count; 4262 Register end = count;
4263 int cache_line_size = VM_Version::prefetch_data_size(); 4263 int cache_line_size = VM_Version::prefetch_data_size();
4264 assert(cache_line_size > 0, "cache line size should be known for this code");
4264 // Minimum count when BIS zeroing can be used since 4265 // Minimum count when BIS zeroing can be used since
4265 // it needs membar which is expensive. 4266 // it needs membar which is expensive.
4266 int block_zero_size = MAX2(cache_line_size*3, (int)BlockZeroingLowLimit); 4267 int block_zero_size = MAX2(cache_line_size*3, (int)BlockZeroingLowLimit);
4267 4268
4268 Label small_loop; 4269 Label small_loop;

mercurial