Skip to content

Commit 6c2aa37

Browse files
committed
MCAsmStreamer: Print symbol equated to a register
GNU Assembler supports `a = %eax` for x86. We use X86MCExpr to support a register expression. https://reviews.llvm.org/D47545 added reassignment support but this code is not necessary.
1 parent 1108cf6 commit 6c2aa37

File tree

3 files changed

+10
-19
lines changed

3 files changed

+10
-19
lines changed

llvm/lib/MC/MCAsmStreamer.cpp

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -690,22 +690,14 @@ void MCAsmStreamer::emitDarwinTargetVariantBuildVersion(
690690
}
691691

692692
void MCAsmStreamer::emitAssignment(MCSymbol *Symbol, const MCExpr *Value) {
693-
// Do not emit a .set on inlined target assignments.
694-
bool EmitSet = true;
695-
if (auto *E = dyn_cast<MCTargetExpr>(Value))
696-
if (E->inlineAssignedExpr())
697-
EmitSet = false;
698-
if (EmitSet) {
699-
bool UseSet = MAI->usesSetToEquateSymbol();
700-
if (UseSet)
701-
OS << ".set ";
702-
Symbol->print(OS, MAI);
703-
OS << (UseSet ? ", " : " = ");
704-
MAI->printExpr(OS, *Value);
705-
706-
EmitEOL();
707-
}
693+
bool UseSet = MAI->usesSetToEquateSymbol();
694+
if (UseSet)
695+
OS << ".set ";
696+
Symbol->print(OS, MAI);
697+
OS << (UseSet ? ", " : " = ");
698+
MAI->printExpr(OS, *Value);
708699

700+
EmitEOL();
709701
MCStreamer::emitAssignment(Symbol, Value);
710702
}
711703

llvm/test/MC/X86/register-assignment.s

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
// RUN: llvm-mc -triple x86_64-unknown-unknown %s -o - | FileCheck %s
22
// RUN: not llvm-mc -triple x86_64 --defsym ERR=1 %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=ERR
33

4-
// CHECK-NOT: .set var_xdata
4+
// CHECK: var_xdata = %rcx
55
var_xdata = %rcx
66

77
// CHECK: xorq %rcx, %rcx
88
xorq var_xdata, var_xdata
99

10+
unused_reg = %xmm0
11+
1012
// CHECK: .data
1113
// CHECK-NEXT: .byte 1
1214
.data

llvm/test/MC/X86/unused_reg_var_assign.s

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)