BOLT treats aarch64 objects located in text as empty functions with
contant islands. Emit them with at least 8-byte alignment to the new
text section.
Vladislav Khmelevsky,
Advanced Software Technology Lab, Huawei
|  Differential  D122097  
[BOLT] AArch64: Emit text objects Authored by yota9 on Mar 20 2022, 5:34 AM. 
Details 
 BOLT treats aarch64 objects located in text as empty functions with Vladislav Khmelevsky, 
Diff Detail 
 Event TimelineComment Actions Overall LGTM. The model that BOLT tries to create in memory is one in which every byte in an executable section has an associated BinaryFunction. From the point of view of the processor, an executable section should contain code, and BOLT models all code as the contents of a function. BOLT deals poorly with data in code: it will mark the function containing data and will avoid processing it. Besides, in X86, it is frequently a bad practice to put data in the code section, as the processor has different caches for instruction and data, and if you put non-instruction bytes in the instruction stream, you will be unnecessarily polluting i-cache. In AArch64, since it's a RISC processor that absolutely needs to put stuff in the executable sections due to limited range access, I expanded BOLT's IR to consider that a function might have data in code that is easily identifiable via $d symbol markers in the ELF file. Given this context, an empty function with a constant island (freestanding data in code that is not part of any function) is a curious thing to see. Where is this happening? 
 
 | ||||||||||||||||||||||||||||||
Is this in sync with LongJmp?