This reduces the amount of code within tcg-op-common.h, and the amount
of code in the code segment full stop.
With many translators these days, we're putting the expander function
addresses into tables, or pass them to other general target-specific
expansion helpers. At present that means we get out-of-line copies of
these functions anyway. If the target is implemented with multiple
translation units, we can get multiple out-of-line copies.
This is also a necessary step in making tcg/arch/tcg-target.h private.
Top few code size reductions:
-89k qemu-system-ppc64
-88k qemu-system-aarch64
-60k qemu-system-mipsel
-50k qemu-system-arm
-42k qemu-system-riscv64
-33k qemu-system-i386
-33k qemu-system-m68k
-32k qemu-system-tricore
r~
Richard Henderson (11):
tcg: Mark tcg_gen_op* as noinline
tcg: Move tcg_gen_op* out of line
tcg: Move generic expanders out of line
tcg: Move 32-bit expanders out of line
tcg: Move 64-bit expanders out of line
tcg: Move vec_gen_* declarations to tcg-internal.h
tcg: Move tcg_gen_opN declarations to tcg-internal.h
tcg: Unexport tcg_gen_op*_{i32,i64}
tcg: Move tcg_constant_* out of line
tcg: Move tcg_temp_new_*, tcg_global_mem_new_* out of line
tcg: Move tcg_temp_free_* out of line
include/tcg/tcg-op-common.h | 538 +++---------------------------
include/tcg/tcg-temp-internal.h | 56 +---
include/tcg/tcg.h | 77 -----
tcg/tcg-internal.h | 18 +
tcg/tcg-op.c | 566 +++++++++++++++++++++++++++-----
tcg/tcg.c | 104 +++++-
6 files changed, 664 insertions(+), 695 deletions(-)
--
2.34.1