X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FStackMaps.rst;h=5bdae38b699dfbb40c8a7f1d79d9761b4ea95192;hb=d644801757bb1e2ad6a7a9715b3e57288c197ada;hp=5bb05540dec34c9ef24e11e9ec73b8213ebcf82a;hpb=ade705c6e5efec4deabd07e1455c3bcb7b3ad5d6;p=oota-llvm.git diff --git a/docs/StackMaps.rst b/docs/StackMaps.rst index 5bb05540dec..5bdae38b699 100644 --- a/docs/StackMaps.rst +++ b/docs/StackMaps.rst @@ -221,11 +221,10 @@ 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 ```` 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 ```` must be the ABI function pointer for the +intended target of the indirect call. Specifically, when compiling for the +ELF V1 ABI, ```` is the function-descriptor address normally used as +the C/C++ function-pointer representation. Requesting zero patch point arguments is valid. In this case, all variable operands are handled just like @@ -500,3 +499,13 @@ the same requirement imposed by the llvm.gcroot intrinsic.) LLVM transformations must not substitute the alloca with any intervening value. This can be verified by the runtime simply by checking that the stack map's location is a Direct location type. + + +Supported Architectures +======================= + +Support for StackMap generation and the related intrinsics requires +some code for each backend. Today, only a subset of LLVM's backends +are supported. The currently supported architectures are X86_64, +PowerPC, and Aarch64. +