In C++, a member function may have up to 2 implicit arguments: the this
pointer and the address of the returned object. They precede the explicit arguments, but:
It seems like you're asking about the calling convention (which registers / where on the stack arguments & return values are stored before branching to a function).
It depends a lot on the target ABI and even then it's fairly complicated. For ARMv5/6/7, the Procedure call standard [pdf] is your bible.
You should really read the whole thing if you actually care, but here are the parts you're interested in:
Also
this
parameter is passed as an extra argument that immediately precedes the first user argument.So in most cases the address of a returned composite value is in $r0
and the implicit this
pointer is in $r1
.