[PATCH] D48791: [AArch64] Implement execute-only CodeGen Support.

Peter Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 2 02:48:56 PDT 2018


peter.smith added a comment.

There is an ABI issue with using an Arm specific flag that isn't defined in AArch64. I've not had a chance to check over the code yet, but will try to do so later today.



================
Comment at: tools/llvm-readobj/ELFDumper.cpp:1106
+static const EnumEntry<unsigned> ElfAArch64SectionFlags[] = {
+  LLVM_READOBJ_ENUM_ENT(ELF, SHF_ARM_PURECODE)
+};
----------------
SHF_ARM_PURECODE is defined in the Processor specific part of ELF Section flags (SHF_MASKPROC [1]) it is only defined for Arm (see SHF_NOREAD) [2] and is not currently defined for AArch64. If we use it here we risk the ABI using the same flag for something else and we will have a binary compatibility problem.

In practice I think that it would make sense to define SHF_AARCH64_PURECODE with the same value. I will raise an issue with the AArch64 ABI, it would be good to get at least some indication that this value will be reserved so that we can use it. 

[1] Generic ELF Spec http://www.sco.com/developers/gabi/latest/ch4.sheader.html
[2] ELF for the Arm Architecture http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044f/IHI0044F_aaelf.pdf
[3] ELF for the Arm 64-bit Architecture http://infocenter.arm.com/help/topic/com.arm.doc.ihi0056b/IHI0056B_aaelf64.pdf  


Repository:
  rL LLVM

https://reviews.llvm.org/D48791





More information about the llvm-commits mailing list