On Thu, Aug 13, 2015 at 9:35 AM, Peter Maydell <peter.mayd...@linaro.org> wrote:
> Factor out a repeated pattern in the semihosting code:
>
>     gdb_do_syscall(arm_semi_cb, "system,%s", arg0, (int)arg1+1);
>     /* arm_semi_cb sets env->regs[0] to the syscall return value */
>     return env->regs[0];
>
> For A64 the return value will go in a different register; pull
> the sequence out into its own function that passes the return
> value in a static variable rather than overloading regs[0]
> for the purpose, so the code will work on both A32/T32 and A64.
>
> Note that the lack-of-synchronization bug noted in the FIXME
> comment is not introduced by this commit, but was already present.
>
> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>

Reviewed-by: Christopher Covington <christopher.coving...@linaro.org>

Reply via email to