tcg/ppc: Optimize 26-bit jumps
commit20add588296a8a24374004e9dbf6219f28665d34
authorLeandro Lupori <leandro.lupori@eldorado.org.br>
Mon, 19 Sep 2022 17:56:14 +0000 (19 14:56 -0300)
committerRichard Henderson <richard.henderson@linaro.org>
Tue, 4 Oct 2022 19:13:22 +0000 (4 12:13 -0700)
tree7f0a0a59b2e27d764f7f864c66dee283efb45bf9
parent8ed558ec0cbcc29ecf490e93c54dd65d276e8e69
tcg/ppc: Optimize 26-bit jumps

PowerPC64 processors handle direct branches better than indirect
ones, resulting in less stalled cycles and branch misses.

However, PPC's tb_target_set_jmp_target() was only using direct
branches for 16-bit jumps, while PowerPC64's unconditional branch
instructions are able to handle displacements of up to 26 bits.
To take advantage of this, now jumps whose displacements fit in
between 17 and 26 bits are also converted to direct branches.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Leandro Lupori <leandro.lupori@eldorado.org.br>
[rth: Expanded some commentary.]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
tcg/ppc/tcg-target.c.inc