[PATCH] D144083: [JITLink] Initial AArch32 backend

Peter Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 7 09:13:58 PST 2023


peter.smith added a comment.

Just one small comment about when traversing relocations from .ARM.exidx sections get implemented.

I'm out of comments from the Arm side. Good luck with the JITLink specific changes. I'm happy to look at the Arm side of any future updates or new changes.



================
Comment at: llvm/lib/ExecutionEngine/JITLink/ELF_aarch32.cpp:119
+  bool excludeSection(const typename ELFT::Shdr &Sect) const override {
+    // FIXME: Process relocations from .ARM.exidx (Exception Index table)
+    if (Sect.sh_type == ELF::SHT_ARM_EXIDX)
----------------
I know this is a FIXME at the moment so nothing needs to be changed. For when it does get implemented, only relocations with an offset of 4 (modulo 8) should be traversed. An .ARM.exidx table entry is 8-bytes in size, made up of 2 4-byte entries:
| R_ARM_PREL31 to function this is a table for | either inline unwind instructions or a R_ARM_PREL31 to a .ARM.extab section containing unwind instructions |

The first word at offset 0 (modulo 8) is used to construct a table of offsets to all the functions with table entries. I expect that we would want to avoid following relocations in this context. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144083/new/

https://reviews.llvm.org/D144083



More information about the llvm-commits mailing list