53c11ad6763ec3f51d5d382d673e3040a4838618
1 #=======================================================================
2 # Makefile for riscv-tests/isa
3 #-----------------------------------------------------------------------
7 include $(isa_src_dir
)/rv64ui
/Makefrag
8 include $(isa_src_dir
)/rv64uf
/Makefrag
9 include $(isa_src_dir
)/rv64uv
/Makefrag
10 include $(isa_src_dir
)/rv64si
/Makefrag
11 include $(isa_src_dir
)/rv64sv
/Makefrag
12 include $(isa_src_dir
)/rv32ui
/Makefrag
13 include $(isa_src_dir
)/rv32si
/Makefrag
17 #--------------------------------------------------------------------
19 #--------------------------------------------------------------------
22 RISCV_GCC_OPTS
= -nostdlib
-nostartfiles
-Wa
,-march
=RVIMAFDXhwacha
23 RISCV_OBJDUMP
= riscv-objdump
--disassemble-all
--section
=.text
--section
=.data
--section
=.bss
24 RISCV_SIM
= spike
--extension
=hwacha
26 vpath
%.S
$(isa_src_dir
)
28 #------------------------------------------------------------
29 # Build assembly tests
32 elf2hex
16 16384 $< > $@
35 $(RISCV_OBJDUMP
) $< > $@
40 define compile_template
42 $$($(1)_p_tests
): $(1)-p-
%: $(1)/%.S
43 $$(RISCV_GCC
) $(2) $$(RISCV_GCC_OPTS
) -I
$(isa_src_dir
)/..
/env
/p
-I
$(isa_src_dir
)/macros
/scalar
-T
$(isa_src_dir
)/..
/env
/p
/link.
ld $$< -o
$$@
44 tests
+= $$($(1)_p_tests
)
46 $$($(1)_pt_tests
): $(1)-pt-
%: $(1)/%.S
47 $$(RISCV_GCC
) $(2) $$(RISCV_GCC_OPTS
) -I
$(isa_src_dir
)/..
/env
/pt
-I
$(isa_src_dir
)/macros
/scalar
-T
$(isa_src_dir
)/..
/env
/p
/link.
ld $$< -o
$$@
48 tests
+= $$($(1)_pt_tests
)
50 $$($(1)_pm_tests
): $(1)-pm-
%: $(1)/%.S
51 $$(RISCV_GCC
) $(2) $$(RISCV_GCC_OPTS
) -I
$(isa_src_dir
)/..
/env
/pm
-I
$(isa_src_dir
)/macros
/scalar
-T
$(isa_src_dir
)/..
/env
/pm
/link.
ld $$< -o
$$@
52 tests
+= $$($(1)_pm_tests
)
54 $$($(1)_v_tests
): $(1)-v-
%: $(1)/%.S
55 $$(RISCV_GCC
) $(2) $$(RISCV_GCC_OPTS
) -std
=gnu99
-O2
-I
$(isa_src_dir
)/..
/env
/v
-I
$(isa_src_dir
)/macros
/scalar
-T
$(isa_src_dir
)/..
/env
/v
/link.
ld $(isa_src_dir
)/..
/env
/v
/entry.S
$(isa_src_dir
)/..
/env
/v
/vm.c
$$< -lc
-o
$$@
56 tests
+= $$($(1)_v_tests
)
58 $$($(1)_p_vec_tests
): $(1)-p-vec-
%: $(1)/%.S
59 $$(RISCV_GCC
) $(2) $$(RISCV_GCC_OPTS
) -I
$(isa_src_dir
)/..
/env
/p
-I
$(isa_src_dir
)/macros
/vector
-T
$(isa_src_dir
)/..
/env
/p
/link.
ld $$< -o
$$@
60 tests
+= $$($(1)_p_vec_tests
)
62 $$($(1)_pt_vec_tests
): $(1)-pt-vec-
%: $(1)/%.S
63 $$(RISCV_GCC
) $(2) $$(RISCV_GCC_OPTS
) -I
$(isa_src_dir
)/..
/env
/pt
-I
$(isa_src_dir
)/macros
/vector
-T
$(isa_src_dir
)/..
/env
/pt
/link.
ld $$< -o
$$@
64 tests
+= $$($(1)_pt_vec_tests
)
66 $$($(1)_v_vec_tests
): $(1)-v-vec-
%: $(1)/%.S
67 $$(RISCV_GCC
) $(2) $$(RISCV_GCC_OPTS
) -std
=gnu99
-O2
-I
$(isa_src_dir
)/..
/env
/v
-I
$(isa_src_dir
)/macros
/vector
-T
$(isa_src_dir
)/..
/env
/v
/link.
ld $(isa_src_dir
)/..
/env
/v
/entry.S
$(isa_src_dir
)/..
/env
/v
/vm.c
$$< -lc
-o
$$@
68 tests
+= $$($(1)_v_vec_tests
)
72 $(eval
$(call compile_template
,rv32ui
,-m32
))
73 $(eval
$(call compile_template
,rv32si
,-m32
))
74 $(eval
$(call compile_template
,rv64ui
))
75 $(eval
$(call compile_template
,rv64uf
))
76 $(eval
$(call compile_template
,rv64uv
))
77 $(eval
$(call compile_template
,rv64si
))
78 $(eval
$(call compile_template
,rv64sv
))
80 tests_dump
= $(addsuffix .dump
, $(tests
))
81 tests_hex
= $(addsuffix .hex
, $(tests
))
82 tests_out
= $(addsuffix .out
, $(spike_tests
))
85 echo
; perl
-ne
'print " [$$1] $$ARGV \t$$2\n" if /\*{3}(.{8})\*{3}(.*)/' \
88 junk
+= $(tests
) $(tests_dump
) $(tests_hex
) $(tests_out
)
90 #------------------------------------------------------------
93 all: $(tests_dump
) $(tests_hex
)
95 #------------------------------------------------------------