#
# Aarch64 system tests
#

AARCH64_SYSTEM_SRC=$(SRC_PATH)/tests/tcg/aarch64/system
VPATH+=$(AARCH64_SYSTEM_SRC)

# These objects provide the basic boot code and helper functions for all tests
CRT_OBJS=boot.o

AARCH64_TEST_SRCS=$(wildcard $(AARCH64_SYSTEM_SRC)/*.c)
AARCH64_TESTS = $(patsubst $(AARCH64_SYSTEM_SRC)/%.c, %, $(AARCH64_TEST_SRCS))

CRT_PATH=$(AARCH64_SYSTEM_SRC)
LINK_SCRIPT=$(AARCH64_SYSTEM_SRC)/kernel.ld
LDFLAGS=-Wl,-T$(LINK_SCRIPT)
TESTS+=$(AARCH64_TESTS) $(MULTIARCH_TESTS)
EXTRA_RUNS+=$(MULTIARCH_RUNS)
CFLAGS+=-nostdlib -ggdb -O0 $(MINILIB_INC)
LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc

# building head blobs
.PRECIOUS: $(CRT_OBJS)

%.o: $(CRT_PATH)/%.S
	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -x assembler-with-cpp -c $< -o $@

# Build and link the tests
%: %.c $(LINK_SCRIPT) $(CRT_OBJS) $(MINILIB_OBJS)
	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)

memory: CFLAGS+=-DCHECK_UNALIGNED=1

# Running
QEMU_BASE_MACHINE=-M virt -cpu max -display none
QEMU_OPTS+=$(QEMU_BASE_MACHINE) -semihosting-config enable=on,target=native,chardev=output -kernel

# console test is manual only
QEMU_SEMIHOST=-chardev stdio,mux=on,id=stdio0 -semihosting-config enable=on,chardev=stdio0 -mon chardev=stdio0,mode=readline
run-semiconsole: QEMU_OPTS=$(QEMU_BASE_MACHINE) $(QEMU_SEMIHOST)  -kernel
run-semiconsole: semiconsole
	$(call skip-test, $<, "MANUAL ONLY")
run-plugin-semiconsole-with-%: semiconsole
	$(call skip-test, $<, "MANUAL ONLY")

# Simple Record/Replay Test
.PHONY: memory-record
run-memory-record: memory-record memory
	$(call run-test, $<, \
	  $(QEMU) -monitor none -display none \
		  -chardev file$(COMMA)path=$<.out$(COMMA)id=output \
		  -icount shift=5$(COMMA)rr=record$(COMMA)rrfile=record.bin \
	   	  $(QEMU_OPTS) memory, \
	  "$< on $(TARGET_NAME)")

.PHONY: memory-replay
run-memory-replay: memory-replay run-memory-record
	$(call run-test, $<, \
	  $(QEMU) -monitor none -display none \
		  -chardev file$(COMMA)path=$<.out$(COMMA)id=output \
		  -icount shift=5$(COMMA)rr=replay$(COMMA)rrfile=record.bin \
	   	  $(QEMU_OPTS) memory, \
	  "$< on $(TARGET_NAME)")

EXTRA_RUNS+=run-memory-replay

ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_ARMV8_3),)
pauth-3: CFLAGS += -march=armv8.3-a
else
pauth-3:
	$(call skip-test, "BUILD of $@", "missing compiler support")
run-pauth-3:
	$(call skip-test, "RUN of pauth-3", "not built")
run-plugin-pauth-3-with-%:
	$(call skip-test, "RUN of pauth-3 ($*)", "not built")
endif
