| # -*- Mode: makefile -*- |
| # |
| # ARM - included from tests/tcg/Makefile |
| # |
| |
| ARM_SRC=$(SRC_PATH)/tests/tcg/arm |
| |
| # Set search path for all sources |
| VPATH += $(ARM_SRC) |
| |
| config-cc.mak: Makefile |
| $(quiet-@)( \ |
| $(call cc-option,-fno-integrated-as, CROSS_CC_HAS_FNIA)) 3> config-cc.mak |
| -include config-cc.mak |
| |
| float_madds: CFLAGS+=-mfpu=neon-vfpv4 |
| |
| # Basic Hello World |
| ARM_TESTS = hello-arm |
| hello-arm: CFLAGS+=-marm -ffreestanding -fno-stack-protector |
| hello-arm: LDFLAGS+=-nostdlib |
| |
| # IWMXT floating point extensions |
| ARM_TESTS += test-arm-iwmmxt |
| # Clang assembler does not support IWMXT, so use the external assembler. |
| test-arm-iwmmxt: CFLAGS += -marm -march=iwmmxt -mabi=aapcs -mfpu=fpv4-sp-d16 $(CROSS_CC_HAS_FNIA) |
| test-arm-iwmmxt: test-arm-iwmmxt.S |
| $(CC) $(CFLAGS) -Wa,--noexecstack $< -o $@ $(LDFLAGS) |
| |
| # Float-convert Tests |
| ARM_TESTS += fcvt |
| fcvt: LDFLAGS += -lm |
| fcvt: CFLAGS += -march=armv8.2-a+fp16 -mfpu=neon-fp-armv8 |
| run-fcvt: fcvt |
| $(call run-test,fcvt,$(QEMU) $<) |
| $(call diff-out,fcvt,$(ARM_SRC)/fcvt.ref) |
| |
| # PC alignment test |
| ARM_TESTS += pcalign-a32 |
| pcalign-a32: CFLAGS+=-marm |
| |
| ifeq ($(CONFIG_ARM_COMPATIBLE_SEMIHOSTING),y) |
| |
| # Semihosting smoke test for linux-user |
| semihosting: CFLAGS += -mthumb |
| |
| ARM_TESTS += semihosting-arm |
| semihosting-arm: CFLAGS += -marm -I$(SRC_PATH)/tests/tcg/$(TARGET_NAME) |
| semihosting-arm: semihosting.c |
| $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) |
| |
| run-semihosting-arm: semihosting-arm |
| $(call run-test,$<,$(QEMU) $< 2> $<.err) |
| |
| ARM_TESTS += semiconsole-arm |
| |
| semiconsole: CFLAGS += -mthumb |
| |
| semiconsole-arm: CFLAGS += -marm -I$(SRC_PATH)/tests/tcg/$(TARGET_NAME) |
| semiconsole-arm: semihosting.c |
| $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) |
| |
| run-semiconsole-arm: semiconsole-arm |
| $(call skip-test, $<, "MANUAL ONLY") |
| |
| endif |
| |
| ARM_TESTS += commpage |
| |
| # Vector SHA1 |
| sha1-vector: CFLAGS=-O3 |
| sha1-vector: sha1.c |
| $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) |
| run-sha1-vector: sha1-vector run-sha1 |
| $(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<) |
| $(call diff-out, sha1-vector, sha1.out) |
| |
| ARM_TESTS += sha1-vector |
| |
| # Vector versions of sha512 (-O3 triggers vectorisation) |
| sha512-vector: CFLAGS=-O3 |
| sha512-vector: sha512.c |
| $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) |
| |
| ARM_TESTS += sha512-vector |
| |
| TESTS += $(ARM_TESTS) |