112771Sqtt2@cornell.edu#======================================================================= 212771Sqtt2@cornell.edu# Makefile for riscv-tests/isa 312771Sqtt2@cornell.edu#----------------------------------------------------------------------- 412771Sqtt2@cornell.edu 512771Sqtt2@cornell.eduXLEN ?= 64 612771Sqtt2@cornell.edu 712771Sqtt2@cornell.edusrc_dir := ./isa 812771Sqtt2@cornell.edubin_dir := ../../bin/riscv 912771Sqtt2@cornell.edudump_dir := ../../dump/riscv 1012771Sqtt2@cornell.edu 1112771Sqtt2@cornell.eduinclude $(src_dir)/rv64ui/Makefrag 1212771Sqtt2@cornell.eduinclude $(src_dir)/rv64uc/Makefrag 1312771Sqtt2@cornell.eduinclude $(src_dir)/rv64um/Makefrag 1412771Sqtt2@cornell.eduinclude $(src_dir)/rv64ua/Makefrag 1512771Sqtt2@cornell.eduinclude $(src_dir)/rv64uf/Makefrag 1612771Sqtt2@cornell.eduinclude $(src_dir)/rv64ud/Makefrag 1712771Sqtt2@cornell.eduinclude $(src_dir)/rv64si/Makefrag 1812771Sqtt2@cornell.eduinclude $(src_dir)/rv64mi/Makefrag 1912771Sqtt2@cornell.eduinclude $(src_dir)/rv64uamt/Makefrag 2012771Sqtt2@cornell.eduinclude $(src_dir)/rv64samt/Makefrag 2112771Sqtt2@cornell.edu 2212771Sqtt2@cornell.edudefault: all 2312771Sqtt2@cornell.edu 2412771Sqtt2@cornell.edu#-------------------------------------------------------------------- 2512771Sqtt2@cornell.edu# Build rules 2612771Sqtt2@cornell.edu#-------------------------------------------------------------------- 2712771Sqtt2@cornell.edu 2812771Sqtt2@cornell.eduRISCV_PREFIX ?= riscv$(XLEN)-unknown-elf- 2912771Sqtt2@cornell.eduRISCV_GCC ?= $(RISCV_PREFIX)gcc 3012771Sqtt2@cornell.eduRISCV_GCC_OPTS ?= -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles 3112771Sqtt2@cornell.eduRISCV_OBJDUMP ?= $(RISCV_PREFIX)objdump --disassemble-all --disassemble-zeroes --section=.text --section=.text.startup --section=.text.init --section=.data 3212771Sqtt2@cornell.eduRISCV_SIM ?= spike 3312771Sqtt2@cornell.edu 3412771Sqtt2@cornell.eduvpath %.S $(src_dir) 3512771Sqtt2@cornell.edu 3612771Sqtt2@cornell.edu#------------------------------------------------------------ 3712771Sqtt2@cornell.edu# Build assembly tests 3812771Sqtt2@cornell.edu 3912771Sqtt2@cornell.edu%.dump: % 4012771Sqtt2@cornell.edu mkdir -p $(dump_dir) 4112771Sqtt2@cornell.edu $(RISCV_OBJDUMP) $(bin_dir)/$< > $(dump_dir)/$@ 4212771Sqtt2@cornell.edu 4312771Sqtt2@cornell.edu%.out: % 4412771Sqtt2@cornell.edu $(RISCV_SIM) --isa=rv64gc $< 2> $@ 4512771Sqtt2@cornell.edu 4612771Sqtt2@cornell.edudefine compile_template 4712771Sqtt2@cornell.edu 4812771Sqtt2@cornell.edu$$($(1)_ps_tests): $(1)-ps-%: $(1)/%.S 4912771Sqtt2@cornell.edu mkdir -p $(bin_dir) 5012771Sqtt2@cornell.edu $$(RISCV_GCC) $(2) $$(RISCV_GCC_OPTS) -I$(src_dir)/../env/ps -I$(src_dir)/macros/scalar -I$(src_dir)/macros/mt -T$(src_dir)/../env/ps/link.ld $$< -o $(bin_dir)/$$@ 5112771Sqtt2@cornell.edu$(1)_ps_env_tests += $$($(1)_ps_tests) 5212771Sqtt2@cornell.edu 5312771Sqtt2@cornell.edu$(1)_tests_dump = $$(addsuffix .dump, $$($(1)_tests)) 5412771Sqtt2@cornell.edu 5512771Sqtt2@cornell.edu$(1): $$($(1)_tests_dump) 5612771Sqtt2@cornell.edu 5712771Sqtt2@cornell.edu.PHONY: $(1) 5812771Sqtt2@cornell.edu 5912771Sqtt2@cornell.edup_env_tests += $$($(1)_p_env_tests) 6012771Sqtt2@cornell.eduv_env_tests += $$($(1)_v_env_tests) 6112771Sqtt2@cornell.edups_env_tests += $$($(1)_ps_env_tests) 6212771Sqtt2@cornell.edu 6312771Sqtt2@cornell.eduendef 6412771Sqtt2@cornell.edu 6512771Sqtt2@cornell.edu$(eval $(call compile_template,rv64ui,-march=rv64g -mabi=lp64)) 6612771Sqtt2@cornell.edu$(eval $(call compile_template,rv64uc,-march=rv64g -mabi=lp64)) 6712771Sqtt2@cornell.edu$(eval $(call compile_template,rv64um,-march=rv64g -mabi=lp64)) 6812771Sqtt2@cornell.edu$(eval $(call compile_template,rv64ua,-march=rv64g -mabi=lp64)) 6912771Sqtt2@cornell.edu$(eval $(call compile_template,rv64uf,-march=rv64g -mabi=lp64)) 7012771Sqtt2@cornell.edu$(eval $(call compile_template,rv64ud,-march=rv64g -mabi=lp64)) 7112771Sqtt2@cornell.edu$(eval $(call compile_template,rv64si,-march=rv64g -mabi=lp64)) 7212771Sqtt2@cornell.edu$(eval $(call compile_template,rv64mi,-march=rv64g -mabi=lp64)) 7312771Sqtt2@cornell.edu$(eval $(call compile_template,rv64uamt,-march=rv64g -mabi=lp64)) 7412771Sqtt2@cornell.edu$(eval $(call compile_template,rv64samt,-march=rv64g -mabi=lp64)) 7512771Sqtt2@cornell.edu 7612771Sqtt2@cornell.edups_env_tests_dump = $(addsuffix .dump, $(ps_env_tests)) 7712771Sqtt2@cornell.edu 7812771Sqtt2@cornell.edu#------------------------------------------------------------ 7912771Sqtt2@cornell.edu# Targets 8012771Sqtt2@cornell.edu 8112771Sqtt2@cornell.eduall: ps 8212771Sqtt2@cornell.edu# build tests with ps environment 8312771Sqtt2@cornell.edups: $(ps_env_tests_dump) 8412771Sqtt2@cornell.edu 8512771Sqtt2@cornell.edu#------------------------------------------------------------ 8612771Sqtt2@cornell.edu# Clean up 8712771Sqtt2@cornell.edu 8812771Sqtt2@cornell.educlean: 8912771Sqtt2@cornell.edu rm -rf $(bin_dir) $(dump_dir) 90