[PATCH] D63409: [WIP][RISCV] Specify various encodings for DWARF exception handling
Edward Jones via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 17 04:38:35 PDT 2019
edward-jones created this revision.
edward-jones added reviewers: asb, lewis-revill, HsiangKai.
Herald added subscribers: llvm-commits, benna, psnobl, rkruppe, rogfer01, shiva0217, kito-cheng.
Herald added a project: LLVM.
This specifies the encodings used for the personality function, LSDA and type info for exception handling.
Currently WIP as this is missing tests
Repository:
rL LLVM
https://reviews.llvm.org/D63409
Files:
lib/CodeGen/TargetLoweringObjectFileImpl.cpp
Index: lib/CodeGen/TargetLoweringObjectFileImpl.cpp
===================================================================
--- lib/CodeGen/TargetLoweringObjectFileImpl.cpp
+++ lib/CodeGen/TargetLoweringObjectFileImpl.cpp
@@ -205,6 +205,27 @@
TTypeEncoding = dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |
dwarf::DW_EH_PE_udata8;
break;
+ case Triple::riscv32:
+ case Triple::riscv64:
+ assert((CM == CodeModel::Small || CM == CodeModel::Medium)
+ && "unhandled code model");
+ if (isPositionIndependent()) {
+ PersonalityEncoding = dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |
+ dwarf::DW_EH_PE_sdata4;
+ LSDAEncoding = dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4;
+ TTypeEncoding = dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel |
+ dwarf::DW_EH_PE_sdata4;
+ } else if (CM == CodeModel::Small) {
+ PersonalityEncoding = dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_udata4;
+ LSDAEncoding = dwarf::DW_EH_PE_udata4;
+ TTypeEncoding = dwarf::DW_EH_PE_udata4;
+ } else {
+ assert(CM == CodeModel::Medium);
+ PersonalityEncoding = dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_absptr;
+ LSDAEncoding = dwarf::DW_EH_PE_absptr;
+ TTypeEncoding = dwarf::DW_EH_PE_absptr;
+ }
+ break;
case Triple::sparcel:
case Triple::sparc:
if (isPositionIndependent()) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63409.205025.patch
Type: text/x-patch
Size: 1379 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190617/2f842ac6/attachment.bin>
More information about the llvm-commits
mailing list