By default, UseBlockZeroing is set to true and BlockZeroingLowLimit is initialized to 256. If DC ZVA is supported, BlockZeroingLowLimit is later updated to 4 * VM_Version::zva_length(). When UseBlockZeroing is set to false, all related conditional checks should ignore BlockZeroingLowLimit. However, the function MacroAssembler::zero_words(Register base, uint64_t cnt) still evaluates the lower limit and bases its code generation logic on it, which is incorrect.
This change corrects that logic by ensuring BlockZeroingLowLimit is disregarded when UseBlockZeroing is disabled. As a result, it improves the code generation process’s efficiency, although it may not directly benefit the execution time.
This change corrects that logic by ensuring BlockZeroingLowLimit is disregarded when UseBlockZeroing is disabled. As a result, it improves the code generation process’s efficiency, although it may not directly benefit the execution time.
- links to
-
Review(master) openjdk/jdk/26917