obj-y += helper.o vfp_helper.o
obj-y += cpu.o
obj-$(TARGET_AARCH64) += cpu64.o unicorn_aarch64.o
obj-$(TARGET_ARM) += unicorn_arm.o

obj-$(CONFIG_SOFTMMU) += arm-powerctl.o

DECODETREE = $(SRC_PATH)/scripts/decodetree.py

target/arm/decode-sve.inc.c: $(SRC_PATH)/target/arm/sve.decode $(DECODETREE)
	$(call quiet-command,\
	  $(PYTHON) $(DECODETREE) --decode disas_sve -o $@ $<,\
	  "GEN", $(TARGET_DIR)$@)

target/arm/decode-neon-shared.inc.c: $(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.inc.c: $(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.inc.c: $(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.inc.c: $(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.inc.c: $(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-m-nocp.inc.c: $(SRC_PATH)/target/arm/m-nocp.decode $(DECODETREE)
	$(call quiet-command,\
	  $(PYTHON) $(DECODETREE) --static-decode disas_m_nocp -o $@ $<,\
	  "GEN", $(TARGET_DIR)$@)

target/arm/decode-a32.inc.c: $(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.inc.c: $(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.inc.c: $(SRC_PATH)/target/arm/t32.decode $(DECODETREE)
	$(call quiet-command,\
	  $(PYTHON) $(DECODETREE) --static-decode disas_t32 -o $@ $<,\
	  "GEN", $(TARGET_DIR)$@)

target/arm/decode-t16.inc.c: $(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.inc.c
target/arm/translate.o: target/arm/decode-m-nocp.inc.c
target/arm/translate.o: target/arm/decode-neon-shared.inc.c
target/arm/translate.o: target/arm/decode-neon-dp.inc.c
target/arm/translate.o: target/arm/decode-neon-ls.inc.c
target/arm/translate.o: target/arm/decode-vfp.inc.c
target/arm/translate.o: target/arm/decode-vfp-uncond.inc.c
target/arm/translate.o: target/arm/decode-a32.inc.c
target/arm/translate.o: target/arm/decode-a32-uncond.inc.c
target/arm/translate.o: target/arm/decode-t32.inc.c
target/arm/translate.o: target/arm/decode-t16.inc.c

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-$(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
