tcg/ppc: Revise goto_tb implementation
authorRichard Henderson <rth@twiddle.net>
Fri, 2 Oct 2015 22:25:28 +0000 (22:25 +0000)
committerRichard Henderson <rth@twiddle.net>
Mon, 19 Oct 2015 21:04:37 +0000 (11:04 -1000)
commit5bfd75a35c11dd3aa61c73d0d2cd88137c31519c
tree05f40158ebb5ab859bcd4c2b51f55df3225fc575
parent70f897bdc4ce4101ec008317d43090f532bfb07d
tcg/ppc: Revise goto_tb implementation

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: Richard Henderson <rth@twiddle.net>
tcg/ppc/tcg-target.c
translate-all.c