| OLD | NEW |
| 1 //===-- ARMMCTargetDesc.cpp - ARM Target Descriptions ---------------------===// | 1 //===-- ARMMCTargetDesc.cpp - ARM Target Descriptions ---------------------===// |
| 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 provides ARM specific target descriptions. | 10 // This file provides ARM specific target descriptions. |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 bool RelaxAll, | 201 bool RelaxAll, |
| 202 bool NoExecStack) { | 202 bool NoExecStack) { |
| 203 Triple TheTriple(TT); | 203 Triple TheTriple(TT); |
| 204 | 204 |
| 205 if (TheTriple.isOSDarwin()) | 205 if (TheTriple.isOSDarwin()) |
| 206 return createMachOStreamer(Ctx, MAB, OS, Emitter, false); | 206 return createMachOStreamer(Ctx, MAB, OS, Emitter, false); |
| 207 | 207 |
| 208 if (TheTriple.isOSWindows()) { | 208 if (TheTriple.isOSWindows()) { |
| 209 llvm_unreachable("ARM does not support Windows COFF format"); | 209 llvm_unreachable("ARM does not support Windows COFF format"); |
| 210 } | 210 } |
| 211 // @LOCALMOD-BEGIN | 211 |
| 212 MCStreamer *Streamer = createARMELFStreamer(Ctx, MAB, OS, Emitter, false, | 212 return createARMELFStreamer(Ctx, MAB, OS, Emitter, false, NoExecStack, |
| 213 NoExecStack, TheTriple.getArch() == Triple::thumb); | 213 TheTriple.getArch() == Triple::thumb); |
| 214 if (TheTriple.isOSNaCl()) | |
| 215 Streamer->EmitBundleAlignMode(4); | |
| 216 return Streamer; | |
| 217 // @LOCALMOD-END | |
| 218 } | 214 } |
| 219 | 215 |
| 220 static MCInstPrinter *createARMMCInstPrinter(const Target &T, | 216 static MCInstPrinter *createARMMCInstPrinter(const Target &T, |
| 221 unsigned SyntaxVariant, | 217 unsigned SyntaxVariant, |
| 222 const MCAsmInfo &MAI, | 218 const MCAsmInfo &MAI, |
| 223 const MCInstrInfo &MII, | 219 const MCInstrInfo &MII, |
| 224 const MCRegisterInfo &MRI, | 220 const MCRegisterInfo &MRI, |
| 225 const MCSubtargetInfo &STI) { | 221 const MCSubtargetInfo &STI) { |
| 226 if (SyntaxVariant == 0) | 222 if (SyntaxVariant == 0) |
| 227 return new ARMInstPrinter(MAI, MII, MRI, STI); | 223 return new ARMInstPrinter(MAI, MII, MRI, STI); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 TargetRegistry::RegisterMCAsmBackend(TheThumbTarget, createARMAsmBackend); | 301 TargetRegistry::RegisterMCAsmBackend(TheThumbTarget, createARMAsmBackend); |
| 306 | 302 |
| 307 // Register the object streamer. | 303 // Register the object streamer. |
| 308 TargetRegistry::RegisterMCObjectStreamer(TheARMTarget, createMCStreamer); | 304 TargetRegistry::RegisterMCObjectStreamer(TheARMTarget, createMCStreamer); |
| 309 TargetRegistry::RegisterMCObjectStreamer(TheThumbTarget, createMCStreamer); | 305 TargetRegistry::RegisterMCObjectStreamer(TheThumbTarget, createMCStreamer); |
| 310 | 306 |
| 311 // Register the MCInstPrinter. | 307 // Register the MCInstPrinter. |
| 312 TargetRegistry::RegisterMCInstPrinter(TheARMTarget, createARMMCInstPrinter); | 308 TargetRegistry::RegisterMCInstPrinter(TheARMTarget, createARMMCInstPrinter); |
| 313 TargetRegistry::RegisterMCInstPrinter(TheThumbTarget, createARMMCInstPrinter); | 309 TargetRegistry::RegisterMCInstPrinter(TheThumbTarget, createARMMCInstPrinter); |
| 314 } | 310 } |
| OLD | NEW |