8184900: AArch64: Fix overflow in immediate cmp instruction
Use subs instead of cmp to compare BlockZeroingLowLimit. Reviewed-by: aph
This commit is contained in:
parent
0c193dfdad
commit
415f7bea0b
hotspot/src/cpu/aarch64/vm
@ -169,6 +169,7 @@ class MacroAssembler: public Assembler {
|
||||
|
||||
template<class T>
|
||||
inline void cmpw(Register Rd, T imm) { subsw(zr, Rd, imm); }
|
||||
// imm is limited to 12 bits.
|
||||
inline void cmp(Register Rd, unsigned imm) { subs(zr, Rd, imm); }
|
||||
|
||||
inline void cmnw(Register Rd, unsigned imm) { addsw(zr, Rd, imm); }
|
||||
|
@ -764,7 +764,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
// alignment.
|
||||
Label small;
|
||||
int low_limit = MAX2(zva_length * 2, (int)BlockZeroingLowLimit);
|
||||
__ cmp(cnt, low_limit >> 3);
|
||||
__ subs(rscratch1, cnt, low_limit >> 3);
|
||||
__ br(Assembler::LT, small);
|
||||
__ zero_dcache_blocks(base, cnt);
|
||||
__ bind(small);
|
||||
|
Loading…
x
Reference in New Issue
Block a user