summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCObjectFileInfo.cpp
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2018-10-09 11:29:51 +0000
committerSimon Atanasyan <simon@atanasyan.com>2018-10-09 11:29:51 +0000
commit4d6f42532804dcc0c943723fce15ce747c15661c (patch)
tree207683f1dd58373d17e701a887e2ee96c9df1296 /llvm/lib/MC/MCObjectFileInfo.cpp
parentd465318c6d6faff43885378bdd7fc2b938b3dcbb (diff)
downloadbcm5719-llvm-4d6f42532804dcc0c943723fce15ce747c15661c.tar.gz
bcm5719-llvm-4d6f42532804dcc0c943723fce15ce747c15661c.zip
[mips] Fix FDE/CFI encoding in case of N32 ABI
For O32 and N32 ABI FDE/CFI encoding should be `DW_EH_PE_sdata4` and only N64 ABI uses `DW_EH_PE_sdata8`. To cover all cases this patch check code pointer size and setup a correct FDE/CFI encoding type. Differential revision: https://reviews.llvm.org/D52876 llvm-svn: 344040
Diffstat (limited to 'llvm/lib/MC/MCObjectFileInfo.cpp')
-rw-r--r--llvm/lib/MC/MCObjectFileInfo.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/MC/MCObjectFileInfo.cpp b/llvm/lib/MC/MCObjectFileInfo.cpp
index 0f9070bc7dd..edfccfcb9ed 100644
--- a/llvm/lib/MC/MCObjectFileInfo.cpp
+++ b/llvm/lib/MC/MCObjectFileInfo.cpp
@@ -291,11 +291,11 @@ void MCObjectFileInfo::initELFMCObjectFileInfo(const Triple &T, bool Large) {
switch (T.getArch()) {
case Triple::mips:
case Triple::mipsel:
- FDECFIEncoding = dwarf::DW_EH_PE_sdata4;
- break;
case Triple::mips64:
case Triple::mips64el:
- FDECFIEncoding = dwarf::DW_EH_PE_sdata8;
+ FDECFIEncoding = Ctx->getAsmInfo()->getCodePointerSize() == 4
+ ? dwarf::DW_EH_PE_sdata4
+ : dwarf::DW_EH_PE_sdata8;
break;
case Triple::ppc64:
case Triple::ppc64le:
OpenPOWER on IntegriCloud