diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp index 7e248a609db..41456ba7360 100644 --- a/lib/Target/ARM/ARMTargetMachine.cpp +++ b/lib/Target/ARM/ARMTargetMachine.cpp @@ -35,8 +35,12 @@ namespace { ARMTargetMachine::ARMTargetMachine(const Module &M, const std::string &FS) : Subtarget(M, FS), DataLayout(Subtarget.isTargetDarwin() ? - std::string("e-p:32:32-d:32:32-l:32:32") : - std::string("e-p:32:32-d:32:64-l:32:64")), + (Subtarget.isThumb() ? + std::string("e-p:32:32-d:32:32-l:32:32-s:16:32-b:8:32-B:8:32") : + std::string("e-p:32:32-d:32:32-l:32:32")) : + (Subtarget.isThumb() ? + std::string("e-p:32:32-d:32:64-l:32:64-s:16:32-b:8:32-B:8:32") : + std::string("e-p:32:32-d:32:64-l:32:64"))), InstrInfo(Subtarget), FrameInfo(Subtarget) {}