comparison lib/Target/MSP430/MSP430MCInstLower.cpp @ 77:54457678186b LLVM3.6

LLVM 3.6
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Mon, 08 Sep 2014 22:06:00 +0900
parents 95c75e76d11b
children 60c9769439b8
comparison
equal deleted inserted replaced
34:e874dbf0ad9d 77:54457678186b
15 #include "MSP430MCInstLower.h" 15 #include "MSP430MCInstLower.h"
16 #include "llvm/ADT/SmallString.h" 16 #include "llvm/ADT/SmallString.h"
17 #include "llvm/CodeGen/AsmPrinter.h" 17 #include "llvm/CodeGen/AsmPrinter.h"
18 #include "llvm/CodeGen/MachineBasicBlock.h" 18 #include "llvm/CodeGen/MachineBasicBlock.h"
19 #include "llvm/CodeGen/MachineInstr.h" 19 #include "llvm/CodeGen/MachineInstr.h"
20 #include "llvm/IR/DataLayout.h"
21 #include "llvm/IR/Mangler.h"
20 #include "llvm/MC/MCAsmInfo.h" 22 #include "llvm/MC/MCAsmInfo.h"
21 #include "llvm/MC/MCContext.h" 23 #include "llvm/MC/MCContext.h"
22 #include "llvm/MC/MCExpr.h" 24 #include "llvm/MC/MCExpr.h"
23 #include "llvm/MC/MCInst.h" 25 #include "llvm/MC/MCInst.h"
24 #include "llvm/Support/ErrorHandling.h" 26 #include "llvm/Support/ErrorHandling.h"
25 #include "llvm/Support/raw_ostream.h" 27 #include "llvm/Support/raw_ostream.h"
26 #include "llvm/Target/Mangler.h" 28 #include "llvm/Target/TargetMachine.h"
29 #include "llvm/Target/TargetSubtargetInfo.h"
27 using namespace llvm; 30 using namespace llvm;
28 31
29 MCSymbol *MSP430MCInstLower:: 32 MCSymbol *MSP430MCInstLower::
30 GetGlobalAddressSymbol(const MachineOperand &MO) const { 33 GetGlobalAddressSymbol(const MachineOperand &MO) const {
31 switch (MO.getTargetFlags()) { 34 switch (MO.getTargetFlags()) {
46 return Printer.GetExternalSymbolSymbol(MO.getSymbolName()); 49 return Printer.GetExternalSymbolSymbol(MO.getSymbolName());
47 } 50 }
48 51
49 MCSymbol *MSP430MCInstLower:: 52 MCSymbol *MSP430MCInstLower::
50 GetJumpTableSymbol(const MachineOperand &MO) const { 53 GetJumpTableSymbol(const MachineOperand &MO) const {
54 const DataLayout *DL = Printer.TM.getSubtargetImpl()->getDataLayout();
51 SmallString<256> Name; 55 SmallString<256> Name;
52 raw_svector_ostream(Name) << Printer.MAI->getPrivateGlobalPrefix() << "JTI" 56 raw_svector_ostream(Name) << DL->getPrivateGlobalPrefix() << "JTI"
53 << Printer.getFunctionNumber() << '_' 57 << Printer.getFunctionNumber() << '_'
54 << MO.getIndex(); 58 << MO.getIndex();
55 59
56 switch (MO.getTargetFlags()) { 60 switch (MO.getTargetFlags()) {
57 default: llvm_unreachable("Unknown target flag on GV operand"); 61 default: llvm_unreachable("Unknown target flag on GV operand");
62 return Ctx.GetOrCreateSymbol(Name.str()); 66 return Ctx.GetOrCreateSymbol(Name.str());
63 } 67 }
64 68
65 MCSymbol *MSP430MCInstLower:: 69 MCSymbol *MSP430MCInstLower::
66 GetConstantPoolIndexSymbol(const MachineOperand &MO) const { 70 GetConstantPoolIndexSymbol(const MachineOperand &MO) const {
71 const DataLayout *DL = Printer.TM.getSubtargetImpl()->getDataLayout();
67 SmallString<256> Name; 72 SmallString<256> Name;
68 raw_svector_ostream(Name) << Printer.MAI->getPrivateGlobalPrefix() << "CPI" 73 raw_svector_ostream(Name) << DL->getPrivateGlobalPrefix() << "CPI"
69 << Printer.getFunctionNumber() << '_' 74 << Printer.getFunctionNumber() << '_'
70 << MO.getIndex(); 75 << MO.getIndex();
71 76
72 switch (MO.getTargetFlags()) { 77 switch (MO.getTargetFlags()) {
73 default: llvm_unreachable("Unknown target flag on GV operand"); 78 default: llvm_unreachable("Unknown target flag on GV operand");