Don't write into the callers stack frame

Never usee addressForArgument when arguments are passed
in registers, as it points into the callers stack frame.

The address was used as a temporary location when encoding
a unsigned return value. The code has now been rewritten to
only use registers instead.

Change-Id: Id85b668a5a74dbd6c41621a9672e53a1cb5f242b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>