TESTS_PATH = $(SRC_PATH)/tests/tcg/tricore
ASM_TESTS_PATH = $(TESTS_PATH)/asm
C_TESTS_PATH = $(TESTS_PATH)/c

LDFLAGS = -T$(TESTS_PATH)/link.ld --mcpu=tc162
ASFLAGS = -mtc162
CFLAGS = -mtc162 -c -I$(TESTS_PATH)

TESTS += test_abs.asm.tst
TESTS += test_bmerge.asm.tst
TESTS += test_clz.asm.tst
TESTS += test_crcn.asm.tst
TESTS += test_dextr.asm.tst
TESTS += test_dvstep.asm.tst
TESTS += test_fadd.asm.tst
TESTS += test_fmul.asm.tst
TESTS += test_ftohp.asm.tst
TESTS += test_ftoi.asm.tst
TESTS += test_ftou.asm.tst
TESTS += test_hptof.asm.tst
TESTS += test_imask.asm.tst
TESTS += test_insert.asm.tst
TESTS += test_ld_bu.asm.tst
TESTS += test_ld_h.asm.tst
TESTS += test_madd.asm.tst
TESTS += test_msub.asm.tst
TESTS += test_muls.asm.tst

TESTS += test_boot_to_main.c.tst
TESTS += test_context_save_areas.c.tst

QEMU_OPTS += -M tricore_testboard -cpu tc37x -nographic -kernel

%.pS: $(ASM_TESTS_PATH)/%.S
	$(CC) -E -o $@ $<

%.o: %.pS
	$(AS) $(ASFLAGS) -o $@ $<

%.asm.tst: %.o
	$(LD) $(LDFLAGS) $< -o $@

crt0-tc2x.o: $(C_TESTS_PATH)/crt0-tc2x.S
	$(AS) $(ASFLAGS) -o $@ $<

%.o: $(C_TESTS_PATH)/%.c
	$(CC) $(CFLAGS) -o $@ $<

%.c.tst: %.o crt0-tc2x.o
	$(LD) $(LDFLAGS) -o $@ $^

# We don't currently support the multiarch system tests
undefine MULTIARCH_TESTS