aboutsummaryrefslogtreecommitdiff
path: root/target/arm
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-08-07 12:10:23 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2020-08-21 06:30:35 -0400
commitabff1abfe8113a989215ed33c48839a827e531f1 (patch)
treefb31d57aff267871822d237052c264788664047e /target/arm
parent2c44220d055d12142f27cf513848f17d6007ae35 (diff)
meson: target
Similar to hw_arch, each architecture defines two sourceset which are placed in dictionaries target_arch and target_softmmu_arch. These are then picked up from there when building the per-emulator static_library. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target/arm')
-rw-r--r--target/arm/Makefile.objs89
-rw-r--r--target/arm/meson.build62
2 files changed, 62 insertions, 89 deletions
diff --git a/target/arm/Makefile.objs b/target/arm/Makefile.objs
deleted file mode 100644
index 317eed993f..0000000000
--- a/target/arm/Makefile.objs
+++ /dev/null
@@ -1,89 +0,0 @@
-obj-$(CONFIG_TCG) += arm-semi.o
-obj-y += helper.o vfp_helper.o
-obj-y += cpu.o gdbstub.o
-obj-$(TARGET_AARCH64) += cpu64.o gdbstub64.o
-
-obj-$(CONFIG_SOFTMMU) += machine.o arch_dump.o monitor.o
-obj-$(CONFIG_SOFTMMU) += arm-powerctl.o
-
-obj-$(CONFIG_KVM) += kvm.o
-obj-$(call land,$(CONFIG_KVM),$(call lnot,$(TARGET_AARCH64))) += kvm32.o
-obj-$(call land,$(CONFIG_KVM),$(TARGET_AARCH64)) += kvm64.o
-obj-$(call lnot,$(CONFIG_KVM)) += kvm-stub.o
-
-DECODETREE = $(SRC_PATH)/scripts/decodetree.py
-
-target/arm/decode-sve.c.inc: $(SRC_PATH)/target/arm/sve.decode $(DECODETREE)
- $(call quiet-command,\
- $(PYTHON) $(DECODETREE) --decode disas_sve -o $@ $<,\
- "GEN", $(TARGET_DIR)$@)
-
-target/arm/decode-neon-shared.c.inc: $(SRC_PATH)/target/arm/neon-shared.decode $(DECODETREE)
- $(call quiet-command,\
- $(PYTHON) $(DECODETREE) --static-decode disas_neon_shared -o $@ $<,\
- "GEN", $(TARGET_DIR)$@)
-
-target/arm/decode-neon-dp.c.inc: $(SRC_PATH)/target/arm/neon-dp.decode $(DECODETREE)
- $(call quiet-command,\
- $(PYTHON) $(DECODETREE) --static-decode disas_neon_dp -o $@ $<,\
- "GEN", $(TARGET_DIR)$@)
-
-target/arm/decode-neon-ls.c.inc: $(SRC_PATH)/target/arm/neon-ls.decode $(DECODETREE)
- $(call quiet-command,\
- $(PYTHON) $(DECODETREE) --static-decode disas_neon_ls -o $@ $<,\
- "GEN", $(TARGET_DIR)$@)
-
-target/arm/decode-vfp.c.inc: $(SRC_PATH)/target/arm/vfp.decode $(DECODETREE)
- $(call quiet-command,\
- $(PYTHON) $(DECODETREE) --static-decode disas_vfp -o $@ $<,\
- "GEN", $(TARGET_DIR)$@)
-
-target/arm/decode-vfp-uncond.c.inc: $(SRC_PATH)/target/arm/vfp-uncond.decode $(DECODETREE)
- $(call quiet-command,\
- $(PYTHON) $(DECODETREE) --static-decode disas_vfp_uncond -o $@ $<,\
- "GEN", $(TARGET_DIR)$@)
-
-target/arm/decode-a32.c.inc: $(SRC_PATH)/target/arm/a32.decode $(DECODETREE)
- $(call quiet-command,\
- $(PYTHON) $(DECODETREE) --static-decode disas_a32 -o $@ $<,\
- "GEN", $(TARGET_DIR)$@)
-
-target/arm/decode-a32-uncond.c.inc: $(SRC_PATH)/target/arm/a32-uncond.decode $(DECODETREE)
- $(call quiet-command,\
- $(PYTHON) $(DECODETREE) --static-decode disas_a32_uncond -o $@ $<,\
- "GEN", $(TARGET_DIR)$@)
-
-target/arm/decode-t32.c.inc: $(SRC_PATH)/target/arm/t32.decode $(DECODETREE)
- $(call quiet-command,\
- $(PYTHON) $(DECODETREE) --static-decode disas_t32 -o $@ $<,\
- "GEN", $(TARGET_DIR)$@)
-
-target/arm/decode-t16.c.inc: $(SRC_PATH)/target/arm/t16.decode $(DECODETREE)
- $(call quiet-command,\
- $(PYTHON) $(DECODETREE) -w 16 --static-decode disas_t16 -o $@ $<,\
- "GEN", $(TARGET_DIR)$@)
-
-target/arm/translate-sve.o: target/arm/decode-sve.c.inc
-target/arm/translate.o: target/arm/decode-neon-shared.c.inc
-target/arm/translate.o: target/arm/decode-neon-dp.c.inc
-target/arm/translate.o: target/arm/decode-neon-ls.c.inc
-target/arm/translate.o: target/arm/decode-vfp.c.inc
-target/arm/translate.o: target/arm/decode-vfp-uncond.c.inc
-target/arm/translate.o: target/arm/decode-a32.c.inc
-target/arm/translate.o: target/arm/decode-a32-uncond.c.inc
-target/arm/translate.o: target/arm/decode-t32.c.inc
-target/arm/translate.o: target/arm/decode-t16.c.inc
-
-obj-y += tlb_helper.o debug_helper.o
-obj-y += translate.o op_helper.o
-obj-y += crypto_helper.o
-obj-y += iwmmxt_helper.o vec_helper.o neon_helper.o
-obj-y += m_helper.o
-obj-y += cpu_tcg.o
-
-obj-$(CONFIG_SOFTMMU) += psci.o
-
-obj-$(TARGET_AARCH64) += translate-a64.o helper-a64.o
-obj-$(TARGET_AARCH64) += translate-sve.o sve_helper.o
-obj-$(TARGET_AARCH64) += pauth_helper.o
-obj-$(TARGET_AARCH64) += mte_helper.o
diff --git a/target/arm/meson.build b/target/arm/meson.build
new file mode 100644
index 0000000000..bd46cdb523
--- /dev/null
+++ b/target/arm/meson.build
@@ -0,0 +1,62 @@
+gen = [
+ decodetree.process('sve.decode', extra_args: '--decode=disas_sve'),
+ decodetree.process('neon-shared.decode', extra_args: '--static-decode=disas_neon_shared'),
+ decodetree.process('neon-dp.decode', extra_args: '--static-decode=disas_neon_dp'),
+ decodetree.process('neon-ls.decode', extra_args: '--static-decode=disas_neon_ls'),
+ decodetree.process('vfp.decode', extra_args: '--static-decode=disas_vfp'),
+ decodetree.process('vfp-uncond.decode', extra_args: '--static-decode=disas_vfp_uncond'),
+ decodetree.process('a32.decode', extra_args: '--static-decode=disas_a32'),
+ 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']),
+]
+
+arm_ss = ss.source_set()
+arm_ss.add(gen)
+arm_ss.add(files(
+ 'cpu.c',
+ 'crypto_helper.c',
+ 'debug_helper.c',
+ 'gdbstub.c',
+ 'helper.c',
+ 'iwmmxt_helper.c',
+ 'm_helper.c',
+ 'neon_helper.c',
+ 'op_helper.c',
+ 'tlb_helper.c',
+ 'translate.c',
+ 'vec_helper.c',
+ 'vfp_helper.c',
+ 'cpu_tcg.c',
+))
+arm_ss.add(zlib)
+
+arm_ss.add(when: 'CONFIG_TCG', if_true: files('arm-semi.c'))
+
+kvm_ss = ss.source_set()
+kvm_ss.add(when: 'TARGET_AARCH64', if_true: files('kvm64.c'), if_false: files('kvm32.c'))
+arm_ss.add_all(when: 'CONFIG_KVM', if_true: kvm_ss)
+arm_ss.add(when: 'CONFIG_KVM', if_true: files('kvm.c'), if_false: files('kvm-stub.c'))
+
+arm_ss.add(when: 'TARGET_AARCH64', if_true: files(
+ 'cpu64.c',
+ 'gdbstub64.c',
+ 'helper-a64.c',
+ 'mte_helper.c',
+ 'pauth_helper.c',
+ 'sve_helper.c',
+ 'translate-a64.c',
+ 'translate-sve.c',
+))
+
+arm_softmmu_ss = ss.source_set()
+arm_softmmu_ss.add(files(
+ 'arch_dump.c',
+ 'arm-powerctl.c',
+ 'machine.c',
+ 'monitor.c',
+ 'psci.c',
+))
+
+target_arch += {'arm': arm_ss}
+target_softmmu_arch += {'arm': arm_softmmu_ss}