From 6bf3966f7fd92217360877d1c04ea8ffe47c11cc Mon Sep 17 00:00:00 2001 From: Juergen Ributzka Date: Thu, 30 Jan 2014 02:39:00 +0000 Subject: [PATCH] Extend the preserve_most/all calling convention description in LangRef about the fact that the argument registers will be preserved too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200441 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/LangRef.rst | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/LangRef.rst b/docs/LangRef.rst index 8bb834b45ed..d1eaee16a66 100644 --- a/docs/LangRef.rst +++ b/docs/LangRef.rst @@ -366,7 +366,9 @@ added in the future: calling convention on how arguments and return values are passed, but it uses a different set of caller/callee-saved registers. This alleviates the burden of saving and recovering a large register set before and after the - call in the caller. + call in the caller. If the arguments are passed in callee-saved registers, + then they will be preserved by the callee across the call. This doesn't + apply for values returned in callee-saved registers. - On X86-64 the callee preserves all general purpose registers, except for R11. R11 can be used as a scratch register. Floating-point registers @@ -397,7 +399,10 @@ added in the future: convention also behaves identical to the `C` calling convention on how arguments and return values are passed, but it uses a different set of caller/callee-saved registers. This removes the burden of saving and - recovering a large register set before and after the call in the caller. + recovering a large register set before and after the call in the caller. If + the arguments are passed in callee-saved registers, then they will be + preserved by the callee across the call. This doesn't apply for values + returned in callee-saved registers. - On X86-64 the callee preserves all general purpose registers, except for R11. R11 can be used as a scratch register. Furthermore it also preserves -- 2.34.1