Skip to content

Commit cc2b792

Browse files
author
Andrew Haley
committed
8288992: AArch64: CMN should be handled the same way as CMP
Reviewed-by: adinn, ngasson
1 parent 75c0a5b commit cc2b792

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
@@ -3370,7 +3370,7 @@ void MacroAssembler::kernel_crc32_using_crc32(Register crc, Register buf,
33703370
crc32x(crc, crc, tmp2);
33713371
crc32x(crc, crc, tmp3);
33723372
br(Assembler::GE, CRC_by32_loop);
3373-
cmn(len, 32);
3373+
cmn(len, (u1)32);
33743374
br(Assembler::NE, CRC_less32);
33753375
b(L_exit);
33763376

@@ -3433,7 +3433,7 @@ void MacroAssembler::kernel_crc32_using_crc32(Register crc, Register buf,
34333433

34343434
sub(len, len, 64);
34353435
add(buf, buf, 8);
3436-
cmn(len, 128);
3436+
cmn(len, (u1)128);
34373437
br(Assembler::NE, CRC_less64);
34383438
BIND(L_exit);
34393439
mvnw(crc, crc);
@@ -3667,7 +3667,7 @@ void MacroAssembler::kernel_crc32c_using_crc32c(Register crc, Register buf,
36673667
crc32cx(crc, crc, tmp2);
36683668
crc32cx(crc, crc, tmp3);
36693669
br(Assembler::GE, CRC_by32_loop);
3670-
cmn(len, 32);
3670+
cmn(len, (u1)32);
36713671
br(Assembler::NE, CRC_less32);
36723672
b(L_exit);
36733673

@@ -3730,7 +3730,7 @@ void MacroAssembler::kernel_crc32c_using_crc32c(Register crc, Register buf,
37303730

37313731
sub(len, len, 64);
37323732
add(buf, buf, 8);
3733-
cmn(len, 128);
3733+
cmn(len, (u1)128);
37343734
br(Assembler::NE, CRC_less64);
37353735
BIND(L_exit);
37363736
}

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)