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