Message ID | 20230718104628.1137734-1-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | target/arm/tcg: Don't build AArch64 decodetree files for qemu-system-arm | expand |
On 18/7/23 12:46, Peter Maydell wrote: > Currently we list all the Arm decodetree files together and add them > unconditionally to arm_ss. This means we build them for both > qemu-system-aarch64 and qemu-system-arm. However, some of them are > AArch64-specific, so there is no need to build them for > qemu-system-arm. (Meson is smart enough to notice that the generated > .c.inc file is not used by any objects that go into qemu-system-arm, > so we only unnecessarily run decodetree, not anything more > heavyweight like a recompile or relink, but it's still unnecessary > work.) > > Split gen into gen_a32 and gen_a64, and only add gen_a64 for > TARGET_AARCH64 compiles. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > target/arm/tcg/meson.build | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff --git a/target/arm/tcg/meson.build b/target/arm/tcg/meson.build index bdcab564899..6fca38f2ccb 100644 --- a/target/arm/tcg/meson.build +++ b/target/arm/tcg/meson.build @@ -1,7 +1,11 @@ -gen = [ +gen_a64 = [ + decodetree.process('a64.decode', extra_args: ['--static-decode=disas_a64']), decodetree.process('sve.decode', extra_args: '--decode=disas_sve'), decodetree.process('sme.decode', extra_args: '--decode=disas_sme'), decodetree.process('sme-fa64.decode', extra_args: '--static-decode=disas_sme_fa64'), +] + +gen_a32 = [ decodetree.process('neon-shared.decode', extra_args: '--decode=disas_neon_shared'), decodetree.process('neon-dp.decode', extra_args: '--decode=disas_neon_dp'), decodetree.process('neon-ls.decode', extra_args: '--decode=disas_neon_ls'), @@ -13,10 +17,10 @@ gen = [ decodetree.process('a32-uncond.decode', extra_args: '--static-decode=disas_a32_uncond'), decodetree.process('t32.decode', extra_args: '--static-decode=disas_t32'), decodetree.process('t16.decode', extra_args: ['-w', '16', '--static-decode=disas_t16']), - decodetree.process('a64.decode', extra_args: ['--static-decode=disas_a64']), ] -arm_ss.add(gen) +arm_ss.add(gen_a32) +arm_ss.add(when: 'TARGET_AARCH64', if_true: gen_a64) arm_ss.add(files( 'cpu32.c',
Currently we list all the Arm decodetree files together and add them unconditionally to arm_ss. This means we build them for both qemu-system-aarch64 and qemu-system-arm. However, some of them are AArch64-specific, so there is no need to build them for qemu-system-arm. (Meson is smart enough to notice that the generated .c.inc file is not used by any objects that go into qemu-system-arm, so we only unnecessarily run decodetree, not anything more heavyweight like a recompile or relink, but it's still unnecessary work.) Split gen into gen_a32 and gen_a64, and only add gen_a64 for TARGET_AARCH64 compiles. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- target/arm/tcg/meson.build | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)