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


Reply via email to