The PC Relative code allows for calls that are marked with the relocation R_PPC64_REL24_NOTOC. This indicates that the caller does not have a valid TOC pointer in R2 and does not require R2 to be restored after the call.
This patch is added to support local calls to callees that also do not have a TOC and will cover the following situations:
- Local call in same compilation unit, callee with st_other=0
- Local call in same compilation unit, callee with st_other=1
- Extern call that is DSO local, callee has st_other=0
- Extern call that is DSO local, callee has st_other=1
clang-format: please reformat the code