diff options
author | Hal Finkel <hfinkel@anl.gov> | 2015-01-16 04:40:58 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2015-01-16 04:40:58 +0000 |
commit | 52f7c018d3435287d558e77de5859679aa3eb764 (patch) | |
tree | 311aa61ac11f8cd203287c42b31c03843d85f2f1 /llvm/docs | |
parent | 6fffd487ee91243cc9f50e1e6dcb024d0dad6ea2 (diff) | |
download | bcm5719-llvm-52f7c018d3435287d558e77de5859679aa3eb764.tar.gz bcm5719-llvm-52f7c018d3435287d558e77de5859679aa3eb764.zip |
[PowerPC] Adjust PatchPoints for ppc64le
Bill Schmidt pointed out that some adjustments would be needed to properly
support powerpc64le (using the ELF V2 ABI). For one thing, R11 is not available
as a scratch register, so we need to use R12. R12 is also available under ELF
V1, so to maintain consistency, I flipped the order to make R12 the first
scratch register in the array under both ABIs.
llvm-svn: 226247
Diffstat (limited to 'llvm/docs')
-rw-r--r-- | llvm/docs/StackMaps.rst | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/docs/StackMaps.rst b/llvm/docs/StackMaps.rst index 5bb05540dec..43c60c9e785 100644 --- a/llvm/docs/StackMaps.rst +++ b/llvm/docs/StackMaps.rst @@ -221,11 +221,12 @@ lowered according to the calling convention specified at the intrinsic's callsite. Variants of the intrinsic with non-void return type also return a value according to calling convention. -On PowerPC, note that the ``<target>`` must be the actual intended target of -the indirect call, not the function-descriptor address normally used as the -C/C++ function-pointer representation. As a result, the call target must be -local because no adjustment or restoration of the TOC pointer (in register r2) -will be performed. +On PowerPC, note that ``<target>`` must be the actual intended target of +the indirect call. Specifically, even when compiling for the ELF V1 ABI, +``<target>`` is not the function-descriptor address normally used as the C/C++ +function-pointer representation. As a result, the call target must be local +because no adjustment or restoration of the TOC pointer (in register r2) will +be performed. Requesting zero patch point arguments is valid. In this case, all variable operands are handled just like |