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>