[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 00/13] target/arm: Split translate-*.c.inc into separate compi
From: |
Peter Maydell |
Subject: |
[PATCH v2 00/13] target/arm: Split translate-*.c.inc into separate compilation units |
Date: |
Fri, 30 Apr 2021 14:27:27 +0100 |
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.
Changes v1->v2:
* rebased on current master (with rth's alignment series in)
* patch 5 has changed because the gen_aa32 functions were all
changed by the alignment patchset
* patch 7: made gen_set_cpsr and gen_set_condexec not inline,
per rth's suggestion
Only patch 5 needs review.
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 | 144 +++++++++++
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 | 200 ++++-----------
target/arm/meson.build | 15 +-
9 files changed, 487 insertions(+), 388 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
- [PATCH v2 00/13] target/arm: Split translate-*.c.inc into separate compilation units,
Peter Maydell <=
- [PATCH v2 04/13] target/arm: Split m-nocp trans functions into their own file, Peter Maydell, 2021/04/30
- [PATCH v2 06/13] target/arm: Move vfp_{load, store}_reg{32, 64} to translate-vfp.c.inc, Peter Maydell, 2021/04/30
- [PATCH v2 05/13] target/arm: Move gen_aa32 functions to translate-a32.h, Peter Maydell, 2021/04/30
- [PATCH v2 01/13] target/arm: Move constant expanders to translate.h, Peter Maydell, 2021/04/30
- [PATCH v2 02/13] target/arm: Share unallocated_encoding() and gen_exception_insn(), Peter Maydell, 2021/04/30
- [PATCH v2 07/13] target/arm: Make functions used by translate-vfp global, Peter Maydell, 2021/04/30
- [PATCH v2 12/13] target/arm: Make functions used by translate-neon global, Peter Maydell, 2021/04/30
- [PATCH v2 03/13] target/arm: Make functions used by m-nocp global, Peter Maydell, 2021/04/30