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

Side by Side Diff: lib/Target/Mips/MipsAsmPrinter.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: reviews, and add initialization to llvm-mc 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 //===-- MipsAsmPrinter.cpp - Mips LLVM Assembly Printer -------------------===// 1 //===-- MipsAsmPrinter.cpp - Mips LLVM Assembly Printer -------------------===//
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 16 matching lines...) Expand all
27 #include "llvm/CodeGen/MachineFrameInfo.h" 27 #include "llvm/CodeGen/MachineFrameInfo.h"
28 #include "llvm/CodeGen/MachineFunctionPass.h" 28 #include "llvm/CodeGen/MachineFunctionPass.h"
29 #include "llvm/CodeGen/MachineInstr.h" 29 #include "llvm/CodeGen/MachineInstr.h"
30 #include "llvm/CodeGen/MachineMemOperand.h" 30 #include "llvm/CodeGen/MachineMemOperand.h"
31 #include "llvm/IR/BasicBlock.h" 31 #include "llvm/IR/BasicBlock.h"
32 #include "llvm/IR/DataLayout.h" 32 #include "llvm/IR/DataLayout.h"
33 #include "llvm/IR/InlineAsm.h" 33 #include "llvm/IR/InlineAsm.h"
34 #include "llvm/IR/Instructions.h" 34 #include "llvm/IR/Instructions.h"
35 #include "llvm/MC/MCAsmInfo.h" 35 #include "llvm/MC/MCAsmInfo.h"
36 #include "llvm/MC/MCInst.h" 36 #include "llvm/MC/MCInst.h"
37 #include "llvm/MC/MCNaCl.h"
37 #include "llvm/MC/MCStreamer.h" 38 #include "llvm/MC/MCStreamer.h"
38 #include "llvm/MC/MCSymbol.h" 39 #include "llvm/MC/MCSymbol.h"
39 #include "llvm/Support/ELF.h" 40 #include "llvm/Support/ELF.h"
40 #include "llvm/Support/TargetRegistry.h" 41 #include "llvm/Support/TargetRegistry.h"
41 #include "llvm/Support/raw_ostream.h" 42 #include "llvm/Support/raw_ostream.h"
42 #include "llvm/Target/Mangler.h" 43 #include "llvm/Target/Mangler.h"
43 #include "llvm/Target/TargetLoweringObjectFile.h" 44 #include "llvm/Target/TargetLoweringObjectFile.h"
44 #include "llvm/Target/TargetOptions.h" 45 #include "llvm/Target/TargetOptions.h"
45 46
46 using namespace llvm; 47 using namespace llvm;
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 else 562 else
562 OutStreamer.EmitRawText(StringRef("\t.section .gcc_compiled_long64")); 563 OutStreamer.EmitRawText(StringRef("\t.section .gcc_compiled_long64"));
563 } 564 }
564 } 565 }
565 566
566 // return to previous section 567 // return to previous section
567 if (OutStreamer.hasRawTextSupport()) 568 if (OutStreamer.hasRawTextSupport())
568 OutStreamer.EmitRawText(StringRef("\t.previous")); 569 OutStreamer.EmitRawText(StringRef("\t.previous"));
569 570
570 // @LOCALMOD-START 571 // @LOCALMOD-START
571 if (Subtarget->isTargetNaCl() && OutStreamer.hasRawTextSupport()) { 572 if (Subtarget->isTargetNaCl()) {
572 std::string str; 573 if (OutStreamer.hasRawTextSupport()) {
573 raw_string_ostream OS(str); 574 std::string str;
574 EmitMipsSFIHeaders(OS); 575 raw_string_ostream OS(str);
575 OutStreamer.EmitRawText(StringRef(OS.str())); 576 EmitMipsSFIHeaders(OS);
577 OutStreamer.EmitRawText(StringRef(OS.str()));
578 }
579 initializeNaClMCStreamer(OutStreamer, OutContext,
580 Triple(Subtarget->getTargetTriple()));
576 } 581 }
577 // @LOCALMOD-END 582 // @LOCALMOD-END
578 } 583 }
579 584
580 // @LOCALMOD-START 585 // @LOCALMOD-START
581 unsigned MipsAsmPrinter::GetTargetLabelAlign(const MachineInstr *MI) const { 586 unsigned MipsAsmPrinter::GetTargetLabelAlign(const MachineInstr *MI) const {
582 if (Subtarget->isTargetNaCl()) { 587 if (Subtarget->isTargetNaCl()) {
583 switch (MI->getOpcode()) { 588 switch (MI->getOpcode()) {
584 default: return 0; 589 default: return 0;
585 // These labels may indicate an indirect entry point that is 590 // These labels may indicate an indirect entry point that is
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 // TODO: implement 627 // TODO: implement
623 } 628 }
624 629
625 // Force static initialization. 630 // Force static initialization.
626 extern "C" void LLVMInitializeMipsAsmPrinter() { 631 extern "C" void LLVMInitializeMipsAsmPrinter() {
627 RegisterAsmPrinter<MipsAsmPrinter> X(TheMipsTarget); 632 RegisterAsmPrinter<MipsAsmPrinter> X(TheMipsTarget);
628 RegisterAsmPrinter<MipsAsmPrinter> Y(TheMipselTarget); 633 RegisterAsmPrinter<MipsAsmPrinter> Y(TheMipselTarget);
629 RegisterAsmPrinter<MipsAsmPrinter> A(TheMips64Target); 634 RegisterAsmPrinter<MipsAsmPrinter> A(TheMips64Target);
630 RegisterAsmPrinter<MipsAsmPrinter> B(TheMips64elTarget); 635 RegisterAsmPrinter<MipsAsmPrinter> B(TheMips64elTarget);
631 } 636 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698