Skip to content
This repository was archived by the owner on Sep 19, 2023. It is now read-only.

Commit d0b021b

Browse files
committed
8288992: AArch64: CMN should be handled the same way as CMP
Backport-of: cc2b792
1 parent e6bd2c9 commit d0b021b

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
@@ -3355,7 +3355,7 @@ void MacroAssembler::kernel_crc32_using_crc32(Register crc, Register buf,
33553355
crc32x(crc, crc, tmp2);
33563356
crc32x(crc, crc, tmp3);
33573357
br(Assembler::GE, CRC_by32_loop);
3358-
cmn(len, 32);
3358+
cmn(len, (u1)32);
33593359
br(Assembler::NE, CRC_less32);
33603360
b(L_exit);
33613361

@@ -3418,7 +3418,7 @@ void MacroAssembler::kernel_crc32_using_crc32(Register crc, Register buf,
34183418

34193419
sub(len, len, 64);
34203420
add(buf, buf, 8);
3421-
cmn(len, 128);
3421+
cmn(len, (u1)128);
34223422
br(Assembler::NE, CRC_less64);
34233423
BIND(L_exit);
34243424
mvnw(crc, crc);
@@ -3652,7 +3652,7 @@ void MacroAssembler::kernel_crc32c_using_crc32c(Register crc, Register buf,
36523652
crc32cx(crc, crc, tmp2);
36533653
crc32cx(crc, crc, tmp3);
36543654
br(Assembler::GE, CRC_by32_loop);
3655-
cmn(len, 32);
3655+
cmn(len, (u1)32);
36563656
br(Assembler::NE, CRC_less32);
36573657
b(L_exit);
36583658

@@ -3715,7 +3715,7 @@ void MacroAssembler::kernel_crc32c_using_crc32c(Register crc, Register buf,
37153715

37163716
sub(len, len, 64);
37173717
add(buf, buf, 8);
3718-
cmn(len, 128);
3718+
cmn(len, (u1)128);
37193719
br(Assembler::NE, CRC_less64);
37203720
BIND(L_exit);
37213721
}

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

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

200-
inline void cmnw(Register Rd, unsigned imm) { addsw(zr, Rd, imm); }
201-
inline void cmn(Register Rd, unsigned imm) { adds(zr, Rd, imm); }
200+
template<class T>
201+
inline void cmnw(Register Rd, T imm) { addsw(zr, Rd, imm); }
202+
203+
inline void cmn(Register Rd, unsigned char imm8) { adds(zr, Rd, imm8); }
204+
inline void cmn(Register Rd, unsigned imm) = delete;
202205

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

0 commit comments

Comments
 (0)