Skip to content

Commit b9749f4

Browse files
committed
8288992: AArch64: CMN should be handled the same way as CMP
Backport-of: cc2b79270445ccfb2181894fed2edfd4518a2904
1 parent 3822bbd commit b9749f4

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3361,7 +3361,7 @@ void MacroAssembler::kernel_crc32_using_crc32(Register crc, Register buf,
33613361
crc32x(crc, crc, tmp2);
33623362
crc32x(crc, crc, tmp3);
33633363
br(Assembler::GE, CRC_by32_loop);
3364-
cmn(len, 32);
3364+
cmn(len, (u1)32);
33653365
br(Assembler::NE, CRC_less32);
33663366
b(L_exit);
33673367

@@ -3424,7 +3424,7 @@ void MacroAssembler::kernel_crc32_using_crc32(Register crc, Register buf,
34243424

34253425
sub(len, len, 64);
34263426
add(buf, buf, 8);
3427-
cmn(len, 128);
3427+
cmn(len, (u1)128);
34283428
br(Assembler::NE, CRC_less64);
34293429
BIND(L_exit);
34303430
mvnw(crc, crc);
@@ -3658,7 +3658,7 @@ void MacroAssembler::kernel_crc32c_using_crc32c(Register crc, Register buf,
36583658
crc32cx(crc, crc, tmp2);
36593659
crc32cx(crc, crc, tmp3);
36603660
br(Assembler::GE, CRC_by32_loop);
3661-
cmn(len, 32);
3661+
cmn(len, (u1)32);
36623662
br(Assembler::NE, CRC_less32);
36633663
b(L_exit);
36643664

@@ -3721,7 +3721,7 @@ void MacroAssembler::kernel_crc32c_using_crc32c(Register crc, Register buf,
37213721

37223722
sub(len, len, 64);
37233723
add(buf, buf, 8);
3724-
cmn(len, 128);
3724+
cmn(len, (u1)128);
37253725
br(Assembler::NE, CRC_less64);
37263726
BIND(L_exit);
37273727
}

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,11 @@ class MacroAssembler: public Assembler {
206206
inline void cmp(Register Rd, unsigned char imm8) { subs(zr, Rd, imm8); }
207207
inline void cmp(Register Rd, unsigned imm) = delete;
208208

209-
inline void cmnw(Register Rd, unsigned imm) { addsw(zr, Rd, imm); }
210-
inline void cmn(Register Rd, unsigned imm) { adds(zr, Rd, imm); }
209+
template<class T>
210+
inline void cmnw(Register Rd, T imm) { addsw(zr, Rd, imm); }
211+
212+
inline void cmn(Register Rd, unsigned char imm8) { adds(zr, Rd, imm8); }
213+
inline void cmn(Register Rd, unsigned imm) = delete;
211214

212215
void cset(Register Rd, Assembler::Condition cond) {
213216
csinc(Rd, zr, zr, ~cond);

0 commit comments

Comments
 (0)