qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3/3] tcg/aarch64: implement new TCG target for a


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 3/3] tcg/aarch64: implement new TCG target for aarch64
Date: Tue, 14 May 2013 09:26:23 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130402 Thunderbird/17.0.5

On 05/14/2013 08:16 AM, Richard Henderson wrote:
> On 05/14/2013 07:05 AM, Claudio Fontana wrote:
>>> Conditional branch range is +-1MB.  You'll never see a TB that large.  You
>>> don't need to emit a branch-across-branch.
>>
>> Is there maybe a way to do it right even in the corner case where we have
>> a huge list of hundreds of thousands of instructions without jumps and then 
>> a conditional jump?
>> Are we _guaranteed_ to never see that large a TB with some kind of define,
>> similarly to MAX_CODE_GEN_BUFFER_SIZE?
> 
> There are three mechanisms that all limit TB size:
>   (1) OPC_MAX_SIZE, limiting the number of opcodes emitted,
>   (2) CF_COUNT_MASK, limiting the number of instructions translated,
>   (3) Instruction pointer crossing a page boundary, where we end a TB
>       and re-verify the page protection bits of the new page.
> 
> Nr 1 is probably the most significant, since it most directly relates to
> the number of output instructions, and thus the resulting TB size.

BTW, for comparison, tcg/s390/tcg-target.c works well enough with just 16 bits
on the relative branch insns; eight times smaller than your 19 bits.


r~




reply via email to

[Prev in Thread] Current Thread [Next in Thread]