• P
    target-arm: Split A64 from A32/T32 gen_intermediate_code_internal() · 40f860cd
    Peter Maydell 提交于
    The A32/T32 gen_intermediate_code_internal() is complicated because it
    has to deal with:
     * conditionally executed instructions
     * Thumb IT blocks
     * kernel helper page
     * M profile exception-exit special casing
    
    None of these apply to A64, so putting the "this is A64 so
    call the A64 decoder" check in the middle of the A32/T32
    loop is confusing and means the A64 decoder's handling of
    things like conditional jump and singlestepping has to take
    account of the conditional-execution jumps the main loop
    might emit.
    
    Refactor the code to give A64 its own gen_intermediate_code_internal
    function instead.
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: NRichard Henderson <rth@twiddle.net>
    40f860cd
translate.c 365.6 KB