Tiny patch for proof-of-concept cleanup of ARMAsmPrinter::EmitStartOfAsmFile()
Small test for sanity check of resulting ARM .s file. Tested against -r115129. llvm-svn: 115133
This commit is contained in:
parent
b96b2d8e4d
commit
645f6c2bef
|
@ -43,6 +43,7 @@ enum MCSymbolAttr {
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MCAssemblerFlag {
|
enum MCAssemblerFlag {
|
||||||
|
MCAF_SyntaxUnified, ///< .syntax (ARM/ELF)
|
||||||
MCAF_SubsectionsViaSymbols ///< .subsections_via_symbols (MachO)
|
MCAF_SubsectionsViaSymbols ///< .subsections_via_symbols (MachO)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -244,6 +244,7 @@ void MCAsmStreamer::EmitLabel(MCSymbol *Symbol) {
|
||||||
void MCAsmStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) {
|
void MCAsmStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) {
|
||||||
switch (Flag) {
|
switch (Flag) {
|
||||||
default: assert(0 && "Invalid flag!");
|
default: assert(0 && "Invalid flag!");
|
||||||
|
case MCAF_SyntaxUnified: OS << "\t.syntax unified"; break;
|
||||||
case MCAF_SubsectionsViaSymbols: OS << ".subsections_via_symbols"; break;
|
case MCAF_SubsectionsViaSymbols: OS << ".subsections_via_symbols"; break;
|
||||||
}
|
}
|
||||||
EmitEOL();
|
EmitEOL();
|
||||||
|
|
|
@ -197,6 +197,7 @@ void MCELFStreamer::EmitLabel(MCSymbol *Symbol) {
|
||||||
|
|
||||||
void MCELFStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) {
|
void MCELFStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) {
|
||||||
switch (Flag) {
|
switch (Flag) {
|
||||||
|
case MCAF_SyntaxUnified: return; // no-op here?
|
||||||
case MCAF_SubsectionsViaSymbols:
|
case MCAF_SubsectionsViaSymbols:
|
||||||
getAssembler().setSubsectionsViaSymbols(true);
|
getAssembler().setSubsectionsViaSymbols(true);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -416,7 +416,7 @@ void ARMAsmPrinter::EmitStartOfAsmFile(Module &M) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use unified assembler syntax.
|
// Use unified assembler syntax.
|
||||||
OutStreamer.EmitRawText(StringRef("\t.syntax unified"));
|
OutStreamer.EmitAssemblerFlag(MCAF_SyntaxUnified);
|
||||||
|
|
||||||
// Emit ARM Build Attributes
|
// Emit ARM Build Attributes
|
||||||
if (Subtarget->isTargetELF()) {
|
if (Subtarget->isTargetELF()) {
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
; RUN: llc < %s -mtriple=arm-linux-gnueabi | FileCheck %s
|
||||||
|
; This tests that MC/asm header conversion is smooth
|
||||||
|
;
|
||||||
|
; CHECK: .syntax unified
|
||||||
|
; CHECK-NEXT: .eabi_attribute 20, 1
|
||||||
|
; CHECK-NEXT: .eabi_attribute 21, 1
|
||||||
|
; CHECK-NEXT: .eabi_attribute 23, 3
|
||||||
|
; CHECK-NEXT: .eabi_attribute 24, 1
|
||||||
|
; CHECK-NEXT: .eabi_attribute 25, 1
|
||||||
|
|
||||||
|
define i32 @f(i64 %z) {
|
||||||
|
ret i32 0
|
||||||
|
}
|
Loading…
Reference in New Issue