diff options
author | Joerg Sonnenberger <joerg@bec.de> | 2014-05-07 07:49:34 +0000 |
---|---|---|
committer | Joerg Sonnenberger <joerg@bec.de> | 2014-05-07 07:49:34 +0000 |
commit | cf86ce136c04e5c63be9ced1e8ded13f9ce60706 (patch) | |
tree | 3c48e8191bdcfab6f51320c0c7d5e762c7860bfe /llvm/lib/Target/ARM/ARMTargetObjectFile.cpp | |
parent | c6be05db0f55f89eda6d6945b4787a19da9ed35f (diff) | |
download | bcm5719-llvm-cf86ce136c04e5c63be9ced1e8ded13f9ce60706.tar.gz bcm5719-llvm-cf86ce136c04e5c63be9ced1e8ded13f9ce60706.zip |
Allow using normal .eh_frame based unwinding on ARM. Use the same
encodings as x86. Use this exception model for NetBSD.
llvm-svn: 208166
Diffstat (limited to 'llvm/lib/Target/ARM/ARMTargetObjectFile.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMTargetObjectFile.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp b/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp index 6cefee5c00d..48238bfcf69 100644 --- a/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp +++ b/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp @@ -11,6 +11,7 @@ #include "ARMSubtarget.h" #include "llvm/ADT/StringExtras.h" #include "llvm/IR/Mangler.h" +#include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCContext.h" #include "llvm/MC/MCExpr.h" #include "llvm/MC/MCSectionELF.h" @@ -45,6 +46,10 @@ const MCExpr *ARMElfTargetObjectFile::getTTypeGlobalReference( const GlobalValue *GV, unsigned Encoding, Mangler &Mang, const TargetMachine &TM, MachineModuleInfo *MMI, MCStreamer &Streamer) const { + if (TM.getMCAsmInfo()->getExceptionHandlingType() != ExceptionHandling::ARM) + return TargetLoweringObjectFileELF::getTTypeGlobalReference( + GV, Encoding, Mang, TM, MMI, Streamer); + assert(Encoding == DW_EH_PE_absptr && "Can handle absptr encoding only"); return MCSymbolRefExpr::Create(TM.getSymbol(GV, Mang), |