1 #=======================================================================
2 # Makefile for riscv-tests
3 #-----------------------------------------------------------------------
7 #--------------------------------------------------------------------
9 #--------------------------------------------------------------------
12 fadd fcmp fcvt fcvt_w fmadd fmin fsgnj \
13 ldst move structural \
17 rv64uf_sc_vec_tests
= \
18 fadd fcmp fcvt fcvt_w fmadd fmin fsgnj \
20 #--------------------------------------------------------------------
22 #--------------------------------------------------------------------
25 RISCV_GCC_OPTS
= -nostdlib
-nostartfiles
26 RISCV_OBJDUMP
= riscv-objdump
--disassemble-all
--disassemble-zeroes
--section
=.text
--section
=.data
--section
=.bss
27 RISCV_SIM
= riscv-isa-run
29 #------------------------------------------------------------
30 # Build assembly tests
33 elf2hex
16 16384 $< > $@
36 $(RISCV_OBJDUMP
) $< > $@
41 rv64uf_p_tests_bin
= $(addprefix rv64uf-p-
, $(rv64uf_sc_tests
))
42 rv64uf_p_tests_dump
= $(addsuffix .dump
, $(rv64uf_p_tests_bin
))
43 rv64uf_p_tests_hex
= $(addsuffix .hex
, $(rv64uf_p_tests_bin
))
44 rv64uf_p_tests_out
= $(addsuffix .out
, $(rv64uf_p_tests_bin
))
46 $(rv64uf_p_tests_bin
): rv64uf-p-
%: %.S
47 $(RISCV_GCC
) $(RISCV_GCC_OPTS
) -I..
/..
/env
/p
-I..
/macros
/scalar
-T..
/..
/env
/p
/link.
ld $< -o
$@
49 rv64uf_pm_tests_bin
= $(addprefix rv64uf-pm-
, $(rv64uf_mc_tests
))
50 rv64uf_pm_tests_dump
= $(addsuffix .dump
, $(rv64uf_pm_tests_bin
))
51 rv64uf_pm_tests_hex
= $(addsuffix .hex
, $(rv64uf_pm_tests_bin
))
52 rv64uf_pm_tests_out
= $(addsuffix .out
, $(rv64uf_pm_tests_bin
))
54 $(rv64uf_pm_tests_bin
): rv64uf-pm-
%: %.S
55 $(RISCV_GCC
) $(RISCV_GCC_OPTS
) -I..
/..
/env
/pm
-I..
/macros
/scalar
-T..
/..
/env
/pm
/link.
ld $< -o
$@
57 rv64uf_v_tests_bin
= $(addprefix rv64uf-v-
, $(rv64uf_sc_tests
))
58 rv64uf_v_tests_dump
= $(addsuffix .dump
, $(rv64uf_v_tests_bin
))
59 rv64uf_v_tests_hex
= $(addsuffix .hex
, $(rv64uf_v_tests_bin
))
60 rv64uf_v_tests_out
= $(addsuffix .out
, $(rv64uf_v_tests_bin
))
62 $(rv64uf_v_tests_bin
): rv64uf-v-
%: %.S
63 $(RISCV_GCC
) $(RISCV_GCC_OPTS
) -std
=gnu99
-O2
-I..
/..
/env
/v
-I..
/macros
/scalar
-T..
/..
/env
/v
/link.
ld ..
/..
/env
/v
/entry.S ..
/..
/env
/v
/vm.c
$< -lc
-o
$@
65 rv64uf_p_vec_tests_bin
= $(addprefix rv64uf-p-vec-
, $(rv64uf_sc_vec_tests
))
66 rv64uf_p_vec_tests_dump
= $(addsuffix .dump
, $(rv64uf_p_vec_tests_bin
))
67 rv64uf_p_vec_tests_hex
= $(addsuffix .hex
, $(rv64uf_p_vec_tests_bin
))
68 rv64uf_p_vec_tests_out
= $(addsuffix .out
, $(rv64uf_p_vec_tests_bin
))
70 $(rv64uf_p_vec_tests_bin
): rv64uf-p-vec-
%: %.S
71 $(RISCV_GCC
) $(RISCV_GCC_OPTS
) -I..
/..
/env
/p
-I..
/macros
/vector
-T..
/..
/env
/p
/link.
ld $< -o
$@
73 rv64uf_pt_vec_tests_bin
= $(addprefix rv64uf-pt-vec-
, $(rv64uf_sc_vec_tests
))
74 rv64uf_pt_vec_tests_dump
= $(addsuffix .dump
, $(rv64uf_pt_vec_tests_bin
))
75 rv64uf_pt_vec_tests_hex
= $(addsuffix .hex
, $(rv64uf_pt_vec_tests_bin
))
76 rv64uf_pt_vec_tests_out
= $(addsuffix .out
, $(rv64uf_pt_vec_tests_bin
))
78 $(rv64uf_pt_vec_tests_bin
): rv64uf-pt-vec-
%: %.S
79 $(RISCV_GCC
) $(RISCV_GCC_OPTS
) -I..
/..
/env
/pt
-I..
/macros
/vector
-T..
/..
/env
/pt
/link.
ld $< -o
$@
81 rv64uf_v_vec_tests_bin
= $(addprefix rv64uf-v-vec-
, $(rv64uf_sc_vec_tests
))
82 rv64uf_v_vec_tests_dump
= $(addsuffix .dump
, $(rv64uf_v_vec_tests_bin
))
83 rv64uf_v_vec_tests_hex
= $(addsuffix .hex
, $(rv64uf_v_vec_tests_bin
))
84 rv64uf_v_vec_tests_out
= $(addsuffix .out
, $(rv64uf_v_vec_tests_bin
))
86 $(rv64uf_v_vec_tests_bin
): rv64uf-v-vec-
%: %.S
87 $(RISCV_GCC
) $(RISCV_GCC_OPTS
) -std
=gnu99
-O2
-I..
/..
/env
/v
-I..
/macros
/vector
-T..
/..
/env
/v
/link.
ld ..
/..
/env
/v
/entry.S ..
/..
/env
/v
/vm.c
$< -lc
-o
$@
90 $(rv64uf_p_tests_dump
) $(rv64uf_p_tests_hex
) \
91 $(rv64uf_pm_tests_dump
) $(rv64uf_pm_tests_hex
) \
92 $(rv64uf_v_tests_dump
) $(rv64uf_v_tests_hex
) \
93 $(rv64uf_p_vec_tests_dump
) $(rv64uf_p_vec_tests_hex
) \
94 $(rv64uf_pt_vec_tests_dump
) $(rv64uf_pt_vec_tests_hex
) \
95 $(rv64uf_v_vec_tests_dump
) $(rv64uf_v_vec_tests_hex
) \
97 out
= $(rv64uf_p_tests_out
) $(rv64uf_pm_tests_out
) $(rv64uf_v_tests_out
) $(rv64uf_p_vec_tests_out
) $(rv64uf_v_vec_tests_out
)
100 echo
; perl
-ne
'print " [$$1] $$ARGV \t$$2\n" if /\*{3}(.{8})\*{3}(.*)/' \
104 $(rv64uf_p_tests_bin
) $(rv64uf_p_tests_dump
) $(rv64uf_p_tests_hex
) $(rv64uf_p_tests_out
) \
105 $(rv64uf_pm_tests_bin
) $(rv64uf_pm_tests_dump
) $(rv64uf_pm_tests_hex
) $(rv64uf_pm_tests_out
) \
106 $(rv64uf_v_tests_bin
) $(rv64uf_v_tests_dump
) $(rv64uf_v_tests_hex
) $(rv64uf_v_tests_out
) \
107 $(rv64uf_p_vec_tests_bin
) $(rv64uf_p_vec_tests_dump
) $(rv64uf_p_vec_tests_hex
) $(rv64uf_p_vec_tests_out
) \
108 $(rv64uf_pt_vec_tests_bin
) $(rv64uf_pt_vec_tests_dump
) $(rv64uf_pt_vec_tests_hex
) $(rv64uf_pt_vec_tests_out
) \
109 $(rv64uf_v_vec_tests_bin
) $(rv64uf_v_vec_tests_dump
) $(rv64uf_v_vec_tests_hex
) $(rv64uf_v_vec_tests_out
) \
111 #------------------------------------------------------------
116 #------------------------------------------------------------