In preparation for compiling tcg/ only once, eliminate
the all_helpers array. Instantiate the info structs for
the generic helpers in accel/tcg/, and the structs for
the target-specific helpers in each translate.c.
Since we don't see all of the info structs at startup,
initialize at first use, using g_once_init_* to make
sure we don't race while doing so.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/exec/helper-gen.h | 65 ++++++++++++--------
include/exec/helper-tcg.h | 75 -----------------------
include/qemu/typedefs.h | 1 +
include/tcg/helper-info.h | 9 ++-
include/tcg/tcg.h | 2 +-
accel/tcg/plugin-gen.c | 5 ++
accel/tcg/tcg-runtime.c | 4 ++
target/alpha/translate.c | 3 +
target/arm/tcg/translate.c | 3 +
target/avr/translate.c | 5 ++
target/cris/translate.c | 6 +-
target/hexagon/translate.c | 4 ++
target/hppa/translate.c | 5 ++
target/i386/tcg/translate.c | 5 ++
target/loongarch/translate.c | 4 ++
target/m68k/translate.c | 3 +
target/microblaze/translate.c | 4 ++
target/mips/tcg/translate.c | 5 ++
target/nios2/translate.c | 5 ++
target/openrisc/translate.c | 5 ++
target/ppc/translate.c | 4 ++
target/riscv/translate.c | 4 ++
target/rx/translate.c | 5 ++
target/s390x/tcg/translate.c | 4 ++
target/sh4/translate.c | 4 ++
target/sparc/translate.c | 3 +
target/tricore/translate.c | 5 ++
target/xtensa/translate.c | 4 ++
tcg/tcg.c | 108 ++++++++++++---------------------
include/exec/helper-info.c.inc | 95 +++++++++++++++++++++++++++++
30 files changed, 279 insertions(+), 175 deletions(-)
delete mode 100644 include/exec/helper-tcg.h
create mode 100644 include/exec/helper-info.c.inc