Skip to content

Commit f8e0518

Browse files
committed
MC: Adjust -show-inst output for MCExpr
This dump feature does not pass MCAsmInfo to the printer function. When we remove MCSpecifierExpr subclasses (and the printImpl overrides), we will not be able to print target-specific specifier strings. Just print a textual representation.
1 parent 29fcad0 commit f8e0518

File tree

7 files changed

+2075
-2070
lines changed

7 files changed

+2075
-2070
lines changed

llvm/lib/MC/MCExpr.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,15 @@ void MCExpr::print(raw_ostream &OS, const MCAsmInfo *MAI,
173173
return;
174174
}
175175

176-
case MCExpr::Specifier:
177-
// TODO: Remove after all targets that use MCSpecifierExpr migrate to
178-
// MCAsmInfo::printSpecifierExpr.
179-
return cast<MCSpecifierExpr>(this)->printImpl(OS, MAI);
176+
case MCExpr::Specifier: {
177+
auto &SE = cast<MCSpecifierExpr>(*this);
178+
if (MAI)
179+
return MAI->printSpecifierExpr(OS, SE);
180+
// Used by dump features like -show-inst. Regular MCAsmStreamer output must
181+
// set MAI.
182+
OS << "specifier(" << SE.getSpecifier() << ',' << *SE.getSubExpr() << ')';
183+
return;
184+
}
180185
}
181186

182187
llvm_unreachable("Invalid expression kind!");

llvm/lib/MC/MCInst.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ void MCOperand::print(raw_ostream &OS, const MCRegisterInfo *RegInfo) const {
3535
else if (isDFPImm())
3636
OS << "DFPImm:" << bit_cast<double>(getDFPImm());
3737
else if (isExpr()) {
38-
OS << "Expr:(" << *getExpr() << ")";
38+
OS << "Expr:" << *getExpr();
3939
} else if (isInst()) {
4040
OS << "Inst:(";
4141
if (const auto *Inst = getInst())

llvm/test/CodeGen/Mips/llvm-ir/fptosi.ll

Lines changed: 248 additions & 248 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/Mips/llvm-ir/load.ll

Lines changed: 1158 additions & 1158 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/Mips/llvm-ir/store.ll

Lines changed: 654 additions & 654 deletions
Large diffs are not rendered by default.

llvm/test/MC/Lanai/conditional_inst.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ jump2:
2727
! CHECK: encoding: [0b1110110A,A,A,0x01'A']
2828
! CHECK-NEXT: fixup A - offset: 0, value: jump1, kind: FIXUP_LANAI_25
2929
! CHECK-NEXT: <MCInst #{{[0-9]+}} BRCC{{$}}
30-
! CHECK-NEXT: <MCOperand Expr:(jump1)>
30+
! CHECK-NEXT: <MCOperand Expr:specifier(0,jump1)>
3131
! CHECK-NEXT: <MCOperand Imm:13>
3232

3333
bpl jump2
3434
! CHECK: encoding: [0b1110101A,A,A,A]
3535
! CHECK-NEXT: fixup A - offset: 0, value: jump2, kind: FIXUP_LANAI_25
3636
! CHECK-NEXT: <MCInst #{{[0-9]+}} BRCC{{$}}
37-
! CHECK-NEXT: <MCOperand Expr:(jump2)>
37+
! CHECK-NEXT: <MCOperand Expr:specifier(0,jump2)>
3838
! CHECK-NEXT: <MCOperand Imm:10>
3939

4040
bt .
@@ -43,7 +43,7 @@ jump2:
4343
! CHECK: encoding: [0b1110000A,A,A,A]
4444
! CHECK-NEXT: fixup A - offset: 0, value: .Ltmp0, kind: FIXUP_LANAI_25
4545
! CHECK-NEXT: <MCInst #{{[0-9]+}} BT{{$}}
46-
! CHECK-NEXT: <MCOperand Expr:(.Ltmp0)>
46+
! CHECK-NEXT: <MCOperand Expr:.Ltmp0>
4747

4848
! SCC
4949
spl %r19

llvm/test/MC/Lanai/memory.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,13 +235,13 @@
235235
! CHECK-NEXT: <MCInst #{{[0-9]+}} ADD_I_HI
236236
! CHECK-NEXT: <MCOperand Reg:11>
237237
! CHECK-NEXT: <MCOperand Reg:7>
238-
! CHECK-NEXT: <MCOperand Expr:(hi(x))>
238+
! CHECK-NEXT: <MCOperand Expr:specifier(1,x)>
239239

240240
mov hi(l+4), %r7
241241
! CHECK: encoding: [0x03,0x81,A,A]
242242
! CHECK-NEXT: fixup A - offset: 0, value: hi(l)+4, kind: FIXUP_LANAI_HI16{{$}}
243243
! CHECK-NEXT: <MCInst #{{[0-9]+}} ADD_I_HI
244244
! CHECK-NEXT: <MCOperand Reg:14>
245245
! CHECK-NEXT: <MCOperand Reg:7>
246-
! CHECK-NEXT: <MCOperand Expr:(hi(l)+4)>
246+
! CHECK-NEXT: <MCOperand Expr:specifier(1,l)+4>
247247

0 commit comments

Comments
 (0)