8288992: AArch64: CMN should be handled the same way as CMP

Reviewed-by: adinn, ngasson
This commit is contained in:
Andrew Haley 2022-07-06 13:49:46 +00:00
parent 75c0a5b828
commit cc2b792704
2 changed files with 9 additions and 6 deletions

@ -3370,7 +3370,7 @@ void MacroAssembler::kernel_crc32_using_crc32(Register crc, Register buf,
crc32x(crc, crc, tmp2);
crc32x(crc, crc, tmp3);
br(Assembler::GE, CRC_by32_loop);
cmn(len, 32);
cmn(len, (u1)32);
br(Assembler::NE, CRC_less32);
b(L_exit);
@ -3433,7 +3433,7 @@ void MacroAssembler::kernel_crc32_using_crc32(Register crc, Register buf,
sub(len, len, 64);
add(buf, buf, 8);
cmn(len, 128);
cmn(len, (u1)128);
br(Assembler::NE, CRC_less64);
BIND(L_exit);
mvnw(crc, crc);
@ -3667,7 +3667,7 @@ void MacroAssembler::kernel_crc32c_using_crc32c(Register crc, Register buf,
crc32cx(crc, crc, tmp2);
crc32cx(crc, crc, tmp3);
br(Assembler::GE, CRC_by32_loop);
cmn(len, 32);
cmn(len, (u1)32);
br(Assembler::NE, CRC_less32);
b(L_exit);
@ -3730,7 +3730,7 @@ void MacroAssembler::kernel_crc32c_using_crc32c(Register crc, Register buf,
sub(len, len, 64);
add(buf, buf, 8);
cmn(len, 128);
cmn(len, (u1)128);
br(Assembler::NE, CRC_less64);
BIND(L_exit);
}

@ -197,8 +197,11 @@ class MacroAssembler: public Assembler {
inline void cmp(Register Rd, unsigned char imm8) { subs(zr, Rd, imm8); }
inline void cmp(Register Rd, unsigned imm) = delete;
inline void cmnw(Register Rd, unsigned imm) { addsw(zr, Rd, imm); }
inline void cmn(Register Rd, unsigned imm) { adds(zr, Rd, imm); }
template<class T>
inline void cmnw(Register Rd, T imm) { addsw(zr, Rd, imm); }
inline void cmn(Register Rd, unsigned char imm8) { adds(zr, Rd, imm8); }
inline void cmn(Register Rd, unsigned imm) = delete;
void cset(Register Rd, Assembler::Condition cond) {
csinc(Rd, zr, zr, ~cond);