Am 28.05.2014 23:24, schrieb Stefan Weil: > Am 28.05.2014 23:04, schrieb Richard Henderson: >> The first non-register argument isn't placed at offset 0. >> >> Cc: Stefan Weil <s...@weilnetz.de> >> Signed-off-by: Richard Henderson <r...@twiddle.net> >> --- >> tcg/i386/tcg-target.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> --- >> >> You were right, Stefan. Naturally, this bug really manifest >> until paging is enabled, thus all the rom boot tests are false. >> >> Please give this a go. >> >> >> r~ >> >> >> diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c >> index d910233..4133dcf 100644 >> --- a/tcg/i386/tcg-target.c >> +++ b/tcg/i386/tcg-target.c >> @@ -1407,7 +1407,8 @@ static void tcg_out_qemu_st_slow_path(TCGContext *s, >> TCGLabelQemuLdst *l) >> } else { >> retaddr = TCG_REG_RAX; >> tcg_out_movi(s, TCG_TYPE_PTR, retaddr, (uintptr_t)l->raddr); >> - tcg_out_st(s, TCG_TYPE_PTR, retaddr, TCG_REG_ESP, 0); >> + tcg_out_st(s, TCG_TYPE_PTR, retaddr, TCG_REG_ESP, >> + TCG_TARGET_CALL_STACK_OFFSET); >> } >> } >> > Great, it now works again. Thanks a lot. > > Reviewed-by: Stefan Weil <s...@weilnetz.de>
This patch is also useful for the stable versions 1.7 and 2.0, so I cc qemu-stable. Regards Stefan