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:
Jason W Kim 2010-09-30 02:45:56 +00:00
parent b96b2d8e4d
commit 645f6c2bef
5 changed files with 17 additions and 1 deletions

View File

@ -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)
}; };

View File

@ -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();

View File

@ -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;

View File

@ -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()) {

View File

@ -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
}