[BOLT-AArch64] Fix AArch64 port - make it work with hhvm
Summary: This diff has 3 fixes. First fixes the way relocations are read and interpreted for AArch64, so the references are preserved correctly. Second, it fixes constant islands to be able to live in the very first address of a function (which means there is no code, but this function contains just a constant island). Third, it fixes function splitting to do not outline entry points for AArch64. This was done because some functions may load pointers to its internal basic blocks, issueing a short-range ADR instruction to do so without its pair ADRP (since the size of the function is supposed to be small). But when we move this block to a cold region, that is not the case anymore. Since blocks with a reference are marked as entry points, we conservatively disable outlining for them in AArch64. (cherry picked from FBD7505067)
Loading
Please register or sign in to comment