diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2010-09-27 18:31:37 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2010-09-27 18:31:37 +0000 |
commit | fd9493d74e5429eab44638cd9badbad9090cd713 (patch) | |
tree | 6e0fe475f9133e809c28f0552f4cbec919d35ad5 /lib/Target/ARM/ARMTargetMachine.h | |
parent | b814110612024a092fd884050fbab9d012b16dc7 (diff) | |
download | llvm-fd9493d74e5429eab44638cd9badbad9090cd713.tar.gz llvm-fd9493d74e5429eab44638cd9badbad9090cd713.tar.bz2 llvm-fd9493d74e5429eab44638cd9badbad9090cd713.tar.xz |
Odd additional stub framework for the ARM MC ELF emission.
llc now recognizes the "intent" to support MC/obj emission for ARM, but
given that they are all stubs, it asserts on --filetype=obj --march=arm
Patch by Jason Kim.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114856 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMTargetMachine.h')
-rw-r--r-- | lib/Target/ARM/ARMTargetMachine.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMTargetMachine.h b/lib/Target/ARM/ARMTargetMachine.h index 9b375d76c7..1fc563ea1b 100644 --- a/lib/Target/ARM/ARMTargetMachine.h +++ b/lib/Target/ARM/ARMTargetMachine.h @@ -16,7 +16,9 @@ #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetData.h" +#include "llvm/MC/MCStreamer.h" #include "ARMInstrInfo.h" +#include "ARMELFWriterInfo.h" #include "ARMFrameInfo.h" #include "ARMJITInfo.h" #include "ARMSubtarget.h" @@ -38,10 +40,19 @@ private: InstrItineraryData InstrItins; Reloc::Model DefRelocModel; // Reloc model before it's overridden. +protected: + const TargetData DataLayout; // Calculates type size & alignment + ARMELFWriterInfo ELFWriterInfo; + public: ARMBaseTargetMachine(const Target &T, const std::string &TT, const std::string &FS, bool isThumb); + virtual const TargetData *getTargetData() const { return &DataLayout; } + virtual const ARMELFWriterInfo *getELFWriterInfo() const { + return Subtarget.isTargetELF() ? &ELFWriterInfo : 0; + }; + virtual const ARMFrameInfo *getFrameInfo() const { return &FrameInfo; } virtual ARMJITInfo *getJITInfo() { return &JITInfo; } virtual const ARMSubtarget *getSubtargetImpl() const { return &Subtarget; } @@ -63,7 +74,6 @@ public: /// class ARMTargetMachine : public ARMBaseTargetMachine { ARMInstrInfo InstrInfo; - const TargetData DataLayout; // Calculates type size & alignment ARMTargetLowering TLInfo; ARMSelectionDAGInfo TSInfo; public: @@ -93,7 +103,6 @@ public: class ThumbTargetMachine : public ARMBaseTargetMachine { // Either Thumb1InstrInfo or Thumb2InstrInfo. OwningPtr<ARMBaseInstrInfo> InstrInfo; - const TargetData DataLayout; // Calculates type size & alignment ARMTargetLowering TLInfo; ARMSelectionDAGInfo TSInfo; public: |