1c348722cSAlex Bennée# -*- Mode: makefile -*- 2c348722cSAlex Bennée# 3ab4aac50SAlex Bennée# ARM - included from tests/tcg/Makefile 4c348722cSAlex Bennée# 5c348722cSAlex Bennée 6c348722cSAlex BennéeARM_SRC=$(SRC_PATH)/tests/tcg/arm 7c348722cSAlex Bennée 8c348722cSAlex Bennée# Set search path for all sources 9c348722cSAlex BennéeVPATH += $(ARM_SRC) 10c348722cSAlex Bennée 1140126a16SRichard Hendersonconfig-cc.mak: Makefile 1240126a16SRichard Henderson $(quiet-@)( \ 1340126a16SRichard Henderson $(call cc-option,-fno-integrated-as, CROSS_CC_HAS_FNIA)) 3> config-cc.mak 1440126a16SRichard Henderson-include config-cc.mak 1540126a16SRichard Henderson 16a4f3ed62SAlex Bennéefloat_madds: CFLAGS+=-mfpu=neon-vfpv4 17a4f3ed62SAlex Bennée 189a297facSAlex Bennée# Basic Hello World 199a297facSAlex BennéeARM_TESTS = hello-arm 20580731dcSAkihiko Odakihello-arm: CFLAGS+=-marm -ffreestanding -fno-stack-protector 21c348722cSAlex Bennéehello-arm: LDFLAGS+=-nostdlib 22ab4aac50SAlex Bennée 239a297facSAlex Bennée# IWMXT floating point extensions 249a297facSAlex BennéeARM_TESTS += test-arm-iwmmxt 2540126a16SRichard Henderson# Clang assembler does not support IWMXT, so use the external assembler. 2640126a16SRichard Hendersontest-arm-iwmmxt: CFLAGS += -marm -march=iwmmxt -mabi=aapcs -mfpu=fpv4-sp-d16 $(CROSS_CC_HAS_FNIA) 2765eab0f8SAlex Bennéetest-arm-iwmmxt: test-arm-iwmmxt.S 28*6c180490SRichard Henderson $(CC) $(CFLAGS) -Wa,--noexecstack $< -o $@ $(LDFLAGS) 2965eab0f8SAlex Bennée 309a297facSAlex Bennée# Float-convert Tests 319a297facSAlex BennéeARM_TESTS += fcvt 328ec8a55eSAlex Bennéefcvt: LDFLAGS += -lm 33e3693cd3SRichard Hendersonfcvt: CFLAGS += -march=armv8.2-a+fp16 -mfpu=neon-fp-armv8 348ec8a55eSAlex Bennéerun-fcvt: fcvt 35c6cf8a20SPaolo Bonzini $(call run-test,fcvt,$(QEMU) $<) 36607bf9b5SAlex Bennée $(call diff-out,fcvt,$(ARM_SRC)/fcvt.ref) 379a297facSAlex Bennée 380bdce486SRichard Henderson# PC alignment test 390bdce486SRichard HendersonARM_TESTS += pcalign-a32 400bdce486SRichard Hendersonpcalign-a32: CFLAGS+=-marm 410bdce486SRichard Henderson 423539d84dSAlex Bennéeifeq ($(CONFIG_ARM_COMPATIBLE_SEMIHOSTING),y) 433539d84dSAlex Bennée 4483704cefSAlex Bennée# Semihosting smoke test for linux-user 45f0593809SAlex Bennéesemihosting: CFLAGS += -mthumb 4683704cefSAlex Bennée 47f0593809SAlex BennéeARM_TESTS += semihosting-arm 483539d84dSAlex Bennéesemihosting-arm: CFLAGS += -marm -I$(SRC_PATH)/tests/tcg/$(TARGET_NAME) 49f0593809SAlex Bennéesemihosting-arm: semihosting.c 50f0593809SAlex Bennée $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) 51f0593809SAlex Bennée 52f0593809SAlex Bennéerun-semihosting-arm: semihosting-arm 53c6cf8a20SPaolo Bonzini $(call run-test,$<,$(QEMU) $< 2> $<.err) 54f0593809SAlex Bennée 553539d84dSAlex BennéeARM_TESTS += semiconsole-arm 56486e58b1SAlex Bennée 57486e58b1SAlex Bennéesemiconsole: CFLAGS += -mthumb 58486e58b1SAlex Bennée 593539d84dSAlex Bennéesemiconsole-arm: CFLAGS += -marm -I$(SRC_PATH)/tests/tcg/$(TARGET_NAME) 603539d84dSAlex Bennéesemiconsole-arm: semihosting.c 61486e58b1SAlex Bennée $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) 62486e58b1SAlex Bennée 63486e58b1SAlex Bennéerun-semiconsole-arm: semiconsole-arm 64486e58b1SAlex Bennée $(call skip-test, $<, "MANUAL ONLY") 65486e58b1SAlex Bennée 663539d84dSAlex Bennéeendif 673539d84dSAlex Bennée 68b6771210SAlex BennéeARM_TESTS += commpage 69b6771210SAlex Bennée 70c96e593aSAlex Bennée# Vector SHA1 71c96e593aSAlex Bennéesha1-vector: CFLAGS=-O3 72c96e593aSAlex Bennéesha1-vector: sha1.c 73c96e593aSAlex Bennée $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) 74c96e593aSAlex Bennéerun-sha1-vector: sha1-vector run-sha1 75c6cf8a20SPaolo Bonzini $(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<) 76c96e593aSAlex Bennée $(call diff-out, sha1-vector, sha1.out) 77c96e593aSAlex Bennée 78c96e593aSAlex BennéeARM_TESTS += sha1-vector 79f8a4c6d7SAlex Bennée 80f8a4c6d7SAlex Bennée# Vector versions of sha512 (-O3 triggers vectorisation) 81f8a4c6d7SAlex Bennéesha512-vector: CFLAGS=-O3 82f8a4c6d7SAlex Bennéesha512-vector: sha512.c 83f8a4c6d7SAlex Bennée $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) 84f8a4c6d7SAlex Bennée 85f8a4c6d7SAlex BennéeARM_TESTS += sha512-vector 86f8a4c6d7SAlex Bennée 879a297facSAlex BennéeTESTS += $(ARM_TESTS) 88