Skip to content
  • Richard Henderson's avatar
    5bfd75a3
    tcg/ppc: Revise goto_tb implementation · 5bfd75a3
    Richard Henderson authored
    
    
    Restrict the size of code_gen_buffer to 2GB on ppc64, which
    lets us assert that everything is reachable with addis+addi
    from tb_ret_addr.  This lets us use a max of 4 insns for goto_tb
    instead of 7.
    
    Emit the indirect branch portion of goto_tb up front, which
    means we only have to update two insns to update any link.
    With a 64-bit store, we can update the link atomically, which
    may be required in future.
    
    Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
    5bfd75a3
    tcg/ppc: Revise goto_tb implementation
    Richard Henderson authored
    
    
    Restrict the size of code_gen_buffer to 2GB on ppc64, which
    lets us assert that everything is reachable with addis+addi
    from tb_ret_addr.  This lets us use a max of 4 insns for goto_tb
    instead of 7.
    
    Emit the indirect branch portion of goto_tb up front, which
    means we only have to update two insns to update any link.
    With a 64-bit store, we can update the link atomically, which
    may be required in future.
    
    Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
Loading