• S
    tcg: Clean up direct block chaining safety checks · 5b053a4a
    Sergey Fedorov 提交于
    We don't take care of direct jumps when address mapping changes. Thus we
    must be sure to generate direct jumps so that they always keep valid
    even if address mapping changes. Luckily, we can only allow to execute a
    TB if it was generated from the pages which match with current mapping.
    
    Document tcg_gen_goto_tb() declaration and note the reason for
    destination PC limitations.
    
    Some targets with variable length instructions allow TB to straddle a
    page boundary. However, we make sure that both of TB pages match the
    current address mapping when looking up TBs. So it is safe to do direct
    jumps into the both pages. Correct the checks for some of those targets.
    
    Given that, we can safely patch a TB which spans two pages. Remove the
    unnecessary check in cpu_exec() and allow such TBs to be patched.
    Signed-off-by: NSergey Fedorov <serge.fdrv@gmail.com>
    Signed-off-by: NSergey Fedorov <sergey.fedorov@linaro.org>
    Reviewed-by: NAlex Bennée <alex.bennee@linaro.org>
    Signed-off-by: NRichard Henderson <rth@twiddle.net>
    5b053a4a
cpu-exec.c 21.3 KB