When we first converted the A32/T32 frontends to use decodetree, we put the trans* functions for VFP and Neon into their own separate files, but used the preprocessor to just #include those files into translate.c. This was a pragmatic arrangement to avoid having to also rearrange translate.c which had a lot of utility functions shared between the main integer decode and the VFP/Neon.
However, having translate.c effectively one enormous file with all of the integer, Neon and VFP decode in it means it can push the limits of what some compilers can handle (especially on 32-bit hosts if the compiler has bugs where it uses too much memory either during optimisation or while generating debug info). This series breaks out all the translate-*.c.inc into separate compilation units. (My other motivation for this series is that I'm due to start working on MVE soon. I want that to be its own compilation unit, the same way translate-sve.c is, and having the various "load bits of neon vector register" helpers available as globals will be necessary for that.) thanks -- PMM Peter Maydell (13): target/arm: Move constant expanders to translate.h target/arm: Share unallocated_encoding() and gen_exception_insn() target/arm: Make functions used by m-nocp global target/arm: Split m-nocp trans functions into their own file target/arm: Move gen_aa32 functions to translate-a32.h target/arm: Move vfp_{load,store}_reg{32,64} to translate-vfp.c.inc target/arm: Make functions used by translate-vfp global target/arm: Make translate-vfp.c.inc its own compilation unit target/arm: Move vfp_reg_ptr() to translate-neon.c.inc target/arm: Delete unused typedef target/arm: Move NeonGenThreeOpEnvFn typedef to translate.h target/arm: Make functions used by translate-neon global target/arm: Make translate-neon.c.inc its own compilation unit target/arm/translate-a32.h | 149 ++++++++++++ target/arm/translate-a64.h | 2 - target/arm/translate.h | 29 +++ target/arm/translate-a64.c | 15 -- target/arm/translate-m-nocp.c | 221 +++++++++++++++++ ...{translate-neon.c.inc => translate-neon.c} | 19 +- .../{translate-vfp.c.inc => translate-vfp.c} | 230 +++--------------- target/arm/translate.c | 210 +++------------- target/arm/meson.build | 15 +- 9 files changed, 482 insertions(+), 408 deletions(-) create mode 100644 target/arm/translate-a32.h create mode 100644 target/arm/translate-m-nocp.c rename target/arm/{translate-neon.c.inc => translate-neon.c} (99%) rename target/arm/{translate-vfp.c.inc => translate-vfp.c} (94%) -- 2.20.1