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>