Skip to content

Commit 638abc2

Browse files
committed
[RISCV] Make 'c.addi x0, imm' an alias for 'c.nop imm'.
Instead of making it an AsmParserOnly instruction, make it an alias. This makes printing consistent with disassembly. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D143362
1 parent c89c31a commit 638abc2

File tree

2 files changed

+9
-15
lines changed

2 files changed

+9
-15
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfoC.td

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -614,16 +614,6 @@ def C_NOP_HINT : RVInst16CI<0b000, 0b01, (outs), (ins simm6nonzero:$imm),
614614
let DecoderMethod = "decodeRVCInstrSImm";
615615
}
616616

617-
// Just a different syntax for the c.nop hint: c.addi x0, simm6 vs c.nop simm6.
618-
def C_ADDI_HINT_X0 : RVInst16CI<0b000, 0b01, (outs GPRX0:$rd_wb),
619-
(ins GPRX0:$rd, simm6nonzero:$imm),
620-
"c.addi", "$rd, $imm">,
621-
Sched<[WriteIALU, ReadIALU]> {
622-
let Constraints = "$rd = $rd_wb";
623-
let Inst{6-2} = imm{4-0};
624-
let isAsmParserOnly = 1;
625-
}
626-
627617
def C_ADDI_HINT_IMM_ZERO : RVInst16CI<0b000, 0b01, (outs GPRNoX0:$rd_wb),
628618
(ins GPRNoX0:$rd, immzero:$imm),
629619
"c.addi", "$rd, $imm">,
@@ -712,6 +702,11 @@ def C_SRAI64_HINT : RVInst16CI<0b100, 0b01, (outs GPRC:$rd_wb),
712702
// Assembler Pseudo Instructions
713703
//===----------------------------------------------------------------------===//
714704

705+
let Predicates = [HasStdExtCOrZca, HasRVCHints] in {
706+
// Just a different syntax for the c.nop hint: c.addi x0, simm6 vs c.nop simm6.
707+
def : InstAlias<"c.addi x0, $imm", (C_NOP_HINT simm6nonzero:$imm), 0>;
708+
}
709+
715710
let Predicates = [HasStdExtC, HasRVCHints, HasStdExtZihintntl] in {
716711
def : InstAlias<"c.ntl.p1", (C_ADD_HINT X0, X2)>;
717712
def : InstAlias<"c.ntl.pall", (C_ADD_HINT X0, X3)>;

llvm/test/MC/RISCV/rvc-hints-valid.s

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,20 @@
44
# RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s
55
# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+c < %s \
66
# RUN: | llvm-objdump -M no-aliases -d -r - \
7-
# RUN: | FileCheck -check-prefixes=CHECK-OBJ,CHECK-ASM-AND-OBJ %s
7+
# RUN: | FileCheck -check-prefixes=CHECK-ASM-AND-OBJ %s
88
# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+c < %s \
99
# RUN: | llvm-objdump -M no-aliases -d -r - \
10-
# RUN: | FileCheck -check-prefixes=CHECK-OBJ,CHECK-ASM-AND-OBJ %s
10+
# RUN: | FileCheck -check-prefixes=CHECK-ASM-AND-OBJ %s
1111
# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+c < %s \
1212
# RUN: | llvm-objdump -d -r - \
13-
# RUN: | FileCheck -check-prefixes=CHECK-OBJ,CHECK-ASM-AND-OBJ %s
13+
# RUN: | FileCheck -check-prefixes=CHECK-ASM-AND-OBJ %s
1414

1515
# CHECK-ASM-AND-OBJ: c.nop 8
1616
# CHECK-ASM: encoding: [0x21,0x00]
1717
c.nop 8
1818

19-
# CHECK-ASM: c.addi zero, 7
19+
# CHECK-ASM-AND-OBJ: c.nop 7
2020
# CHECK-ASM: encoding: [0x1d,0x00]
21-
# CHECK-OBJ: c.nop 7
2221
c.addi x0, 7
2322

2423
# CHECK-ASM-AND-OBJ: c.addi a0, 0

0 commit comments

Comments
 (0)