[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] tcg-i386: Fix win64 qemu store
From: |
Stefan Weil |
Subject: |
Re: [Qemu-devel] [PATCH] tcg-i386: Fix win64 qemu store |
Date: |
Wed, 28 May 2014 23:24:34 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
Am 28.05.2014 23:04, schrieb Richard Henderson:
> The first non-register argument isn't placed at offset 0.
>
> Cc: Stefan Weil <address@hidden>
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> 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 <address@hidden>