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/ARMSubtarget.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/ARMSubtarget.h')
-rw-r--r-- | lib/Target/ARM/ARMSubtarget.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMSubtarget.h b/lib/Target/ARM/ARMSubtarget.h index 34f571fd70..f356a7646a 100644 --- a/lib/Target/ARM/ARMSubtarget.h +++ b/lib/Target/ARM/ARMSubtarget.h @@ -204,6 +204,29 @@ protected: /// GVIsIndirectSymbol - true if the GV will be accessed via an indirect /// symbol. bool GVIsIndirectSymbol(const GlobalValue *GV, Reloc::Model RelocM) const; + + /// getDataLayout() - returns the ARM/Thumb specific TargetLayout string + std::string getDataLayout() const { + if (isThumb()) { + if (isAPCS_ABI()) { + return std::string("e-p:32:32-f64:32:32-i64:32:32-" + "i16:16:32-i8:8:32-i1:8:32-" + "v128:32:128-v64:32:64-a:0:32-n32"); + } else { + return std::string("e-p:32:32-f64:64:64-i64:64:64-" + "i16:16:32-i8:8:32-i1:8:32-" + "v128:64:128-v64:64:64-a:0:32-n32"); + } + } else { + if (isAPCS_ABI()) { + return std::string("e-p:32:32-f64:32:32-i64:32:32-" + "v128:32:128-v64:32:64-n32"); + } else { + return std::string("e-p:32:32-f64:64:64-i64:64:64-" + "v128:64:128-v64:64:64-n32"); + } + } + }; }; } // End llvm namespace |