Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: lib/Target/ARM/ARMAsmPrinter.cpp

Issue 15067009: LLVM: Add ELF Note section to NaCl object files identifying them as such to gold (Closed) Base URL: http://git.chromium.org/native_client/pnacl-llvm.git@master
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 //===-- ARMAsmPrinter.cpp - Print machine code to an ARM .s file ----------===// 1 //===-- ARMAsmPrinter.cpp - Print machine code to an ARM .s file ----------===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file contains a printer that converts from our internal representation 10 // This file contains a printer that converts from our internal representation
(...skipping 22 matching lines...) Expand all
33 #include "llvm/IR/Constants.h" 33 #include "llvm/IR/Constants.h"
34 #include "llvm/IR/DataLayout.h" 34 #include "llvm/IR/DataLayout.h"
35 #include "llvm/IR/Module.h" 35 #include "llvm/IR/Module.h"
36 #include "llvm/IR/Type.h" 36 #include "llvm/IR/Type.h"
37 #include "llvm/MC/MCAsmInfo.h" 37 #include "llvm/MC/MCAsmInfo.h"
38 #include "llvm/MC/MCAssembler.h" 38 #include "llvm/MC/MCAssembler.h"
39 #include "llvm/MC/MCContext.h" 39 #include "llvm/MC/MCContext.h"
40 #include "llvm/MC/MCELFStreamer.h" 40 #include "llvm/MC/MCELFStreamer.h"
41 #include "llvm/MC/MCInst.h" 41 #include "llvm/MC/MCInst.h"
42 #include "llvm/MC/MCInstBuilder.h" 42 #include "llvm/MC/MCInstBuilder.h"
43 #include "llvm/MC/MCNaCl.h"
43 #include "llvm/MC/MCObjectStreamer.h" 44 #include "llvm/MC/MCObjectStreamer.h"
44 #include "llvm/MC/MCSectionMachO.h" 45 #include "llvm/MC/MCSectionMachO.h"
45 #include "llvm/MC/MCStreamer.h" 46 #include "llvm/MC/MCStreamer.h"
46 #include "llvm/MC/MCSymbol.h" 47 #include "llvm/MC/MCSymbol.h"
47 #include "llvm/Support/CommandLine.h" 48 #include "llvm/Support/CommandLine.h"
48 #include "llvm/Support/Debug.h" 49 #include "llvm/Support/Debug.h"
49 #include "llvm/Support/ELF.h" 50 #include "llvm/Support/ELF.h"
50 #include "llvm/Support/ErrorHandling.h" 51 #include "llvm/Support/ErrorHandling.h"
51 #include "llvm/Support/TargetRegistry.h" 52 #include "llvm/Support/TargetRegistry.h"
52 #include "llvm/Support/raw_ostream.h" 53 #include "llvm/Support/raw_ostream.h"
(...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 } 727 }
727 728
728 // Use unified assembler syntax. 729 // Use unified assembler syntax.
729 OutStreamer.EmitAssemblerFlag(MCAF_SyntaxUnified); 730 OutStreamer.EmitAssemblerFlag(MCAF_SyntaxUnified);
730 731
731 // Emit ARM Build Attributes 732 // Emit ARM Build Attributes
732 if (Subtarget->isTargetELF()) 733 if (Subtarget->isTargetELF())
733 emitAttributes(); 734 emitAttributes();
734 735
735 // @LOCALMOD-BEGIN 736 // @LOCALMOD-BEGIN
736 if (Subtarget->isTargetNaCl() && OutStreamer.hasRawTextSupport()) { 737 if (Subtarget->isTargetNaCl()) {
737 std::string str; 738 if (OutStreamer.hasRawTextSupport()) {
738 raw_string_ostream OS(str); 739 std::string str;
739 EmitSFIHeaders(OS); 740 raw_string_ostream OS(str);
740 OutStreamer.EmitRawText(StringRef(OS.str())); 741 EmitSFIHeaders(OS);
742 OutStreamer.EmitRawText(StringRef(OS.str()));
743 }
744 initializeNaClMCStreamer(OutStreamer, OutContext,
745 Subtarget->getTargetTriple());
741 } 746 }
742 // @LOCALMOD-END 747 // @LOCALMOD-END
743 } 748 }
744 749
745 void ARMAsmPrinter::EmitEndOfAsmFile(Module &M) { 750 void ARMAsmPrinter::EmitEndOfAsmFile(Module &M) {
746 if (Subtarget->isTargetDarwin()) { 751 if (Subtarget->isTargetDarwin()) {
747 // All darwin targets use mach-o. 752 // All darwin targets use mach-o.
748 const TargetLoweringObjectFileMachO &TLOFMacho = 753 const TargetLoweringObjectFileMachO &TLOFMacho =
749 static_cast<const TargetLoweringObjectFileMachO &>(getObjFileLowering()); 754 static_cast<const TargetLoweringObjectFileMachO &>(getObjFileLowering());
750 MachineModuleInfoMachO &MMIMacho = 755 MachineModuleInfoMachO &MMIMacho =
(...skipping 1369 matching lines...) Expand 10 before | Expand all | Expand 10 after
2120 2125
2121 //===----------------------------------------------------------------------===// 2126 //===----------------------------------------------------------------------===//
2122 // Target Registry Stuff 2127 // Target Registry Stuff
2123 //===----------------------------------------------------------------------===// 2128 //===----------------------------------------------------------------------===//
2124 2129
2125 // Force static initialization. 2130 // Force static initialization.
2126 extern "C" void LLVMInitializeARMAsmPrinter() { 2131 extern "C" void LLVMInitializeARMAsmPrinter() {
2127 RegisterAsmPrinter<ARMAsmPrinter> X(TheARMTarget); 2132 RegisterAsmPrinter<ARMAsmPrinter> X(TheARMTarget);
2128 RegisterAsmPrinter<ARMAsmPrinter> Y(TheThumbTarget); 2133 RegisterAsmPrinter<ARMAsmPrinter> Y(TheThumbTarget);
2129 } 2134 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698