Added missing header files to riscv.mk.in
[riscv-isa-sim.git] / riscv / riscv.mk.in
1 get_insn_list = $(shell grep ^DECLARE_INSN $(1) | sed 's/DECLARE_INSN(\(.*\),.*,.*)/\1/')
2 get_opcode = $(shell grep ^DECLARE_INSN.*\\\<$(2)\\\> $(1) | sed 's/DECLARE_INSN(.*,\(.*\),.*)/\1/')
3
4 riscv_subproject_deps = \
5 softfloat \
6
7 riscv_install_prog_srcs = \
8
9 riscv_hdrs = \
10 htif.h \
11 common.h \
12 decode.h \
13 devices.h \
14 devicetree.h \
15 disasm.h \
16 mmu.h \
17 processor.h \
18 sim.h \
19 trap.h \
20 encoding.h \
21 cachesim.h \
22 memtracer.h \
23 tracer.h \
24 extension.h \
25 rocc.h \
26 insn_template.h \
27 mulhi.h \
28
29 riscv_precompiled_hdrs = \
30 insn_template.h \
31
32 riscv_srcs = \
33 htif.cc \
34 processor.cc \
35 execute.cc \
36 sim.cc \
37 interactive.cc \
38 trap.cc \
39 cachesim.cc \
40 mmu.cc \
41 disasm.cc \
42 extension.cc \
43 extensions.cc \
44 rocc.cc \
45 regnames.cc \
46 devices.cc \
47 rom.cc \
48 rtc.cc \
49 $(riscv_gen_srcs) \
50
51 riscv_test_srcs =
52
53 riscv_gen_hdrs = \
54 icache.h \
55 insn_list.h \
56
57 riscv_insn_list = \
58 add \
59 addi \
60 addiw \
61 addw \
62 amoadd_d \
63 amoadd_w \
64 amoand_d \
65 amoand_w \
66 amomax_d \
67 amomaxu_d \
68 amomaxu_w \
69 amomax_w \
70 amomin_d \
71 amominu_d \
72 amominu_w \
73 amomin_w \
74 amoor_d \
75 amoor_w \
76 amoswap_d \
77 amoswap_w \
78 amoxor_d \
79 amoxor_w \
80 and \
81 andi \
82 auipc \
83 beq \
84 bge \
85 bgeu \
86 blt \
87 bltu \
88 bne \
89 c_add \
90 c_addi4spn \
91 c_addi \
92 c_addw \
93 c_and \
94 c_andi \
95 c_beqz \
96 c_bnez \
97 c_ebreak \
98 c_fld \
99 c_fldsp \
100 c_flw \
101 c_flwsp \
102 c_fsd \
103 c_fsdsp \
104 c_fsw \
105 c_fswsp \
106 c_jal \
107 c_jalr \
108 c_j \
109 c_jr \
110 c_li \
111 c_lui \
112 c_lw \
113 c_lwsp \
114 c_mv \
115 c_or \
116 c_slli \
117 c_srai \
118 c_srli \
119 c_sub \
120 c_subw \
121 c_xor \
122 csrrc \
123 csrrci \
124 csrrs \
125 csrrsi \
126 csrrw \
127 csrrwi \
128 c_sw \
129 c_swsp \
130 div \
131 divu \
132 divuw \
133 divw \
134 ebreak \
135 ecall \
136 fadd_d \
137 fadd_s \
138 fclass_d \
139 fclass_s \
140 fcvt_d_l \
141 fcvt_d_lu \
142 fcvt_d_s \
143 fcvt_d_w \
144 fcvt_d_wu \
145 fcvt_l_d \
146 fcvt_l_s \
147 fcvt_lu_d \
148 fcvt_lu_s \
149 fcvt_s_d \
150 fcvt_s_l \
151 fcvt_s_lu \
152 fcvt_s_w \
153 fcvt_s_wu \
154 fcvt_w_d \
155 fcvt_w_s \
156 fcvt_wu_d \
157 fcvt_wu_s \
158 fdiv_d \
159 fdiv_s \
160 fence \
161 fence_i \
162 feq_d \
163 feq_s \
164 fld \
165 fle_d \
166 fle_s \
167 flt_d \
168 flt_s \
169 flw \
170 fmadd_d \
171 fmadd_s \
172 fmax_d \
173 fmax_s \
174 fmin_d \
175 fmin_s \
176 fmsub_d \
177 fmsub_s \
178 fmul_d \
179 fmul_s \
180 fmv_d_x \
181 fmv_s_x \
182 fmv_x_d \
183 fmv_x_s \
184 fnmadd_d \
185 fnmadd_s \
186 fnmsub_d \
187 fnmsub_s \
188 fsd \
189 fsgnj_d \
190 fsgnjn_d \
191 fsgnjn_s \
192 fsgnj_s \
193 fsgnjx_d \
194 fsgnjx_s \
195 fsqrt_d \
196 fsqrt_s \
197 fsub_d \
198 fsub_s \
199 fsw \
200 jal \
201 jalr \
202 lb \
203 lbu \
204 ld \
205 lh \
206 lhu \
207 lr_d \
208 lr_w \
209 lui \
210 lw \
211 lwu \
212 mret \
213 mul \
214 mulh \
215 mulhsu \
216 mulhu \
217 mulw \
218 or \
219 ori \
220 rem \
221 remu \
222 remuw \
223 remw \
224 sb \
225 sc_d \
226 sc_w \
227 sd \
228 sfence_vm \
229 sh \
230 sll \
231 slli \
232 slliw \
233 sllw \
234 slt \
235 slti \
236 sltiu \
237 sltu \
238 sra \
239 srai \
240 sraiw \
241 sraw \
242 sret \
243 srl \
244 srli \
245 srliw \
246 srlw \
247 sub \
248 subw \
249 sw \
250 wfi \
251 xor \
252 xori \
253
254 riscv_gen_srcs = \
255 $(addsuffix .cc,$(riscv_insn_list))
256
257 icache_entries := `grep "ICACHE_ENTRIES =" $(src_dir)/riscv/mmu.h | sed 's/.* = \(.*\);/\1/'`
258
259 icache.h: mmu.h
260 $(src_dir)/riscv/gen_icache $(icache_entries) > $@.tmp
261 mv $@.tmp $@
262
263 insn_list.h: $(src_dir)/riscv/riscv.mk.in
264 for insn in $(foreach insn,$(riscv_insn_list),$(subst .,_,$(insn))) ; do \
265 printf 'DEFINE_INSN(%s)\n' "$${insn}" ; \
266 done > $@.tmp
267 mv $@.tmp $@
268
269 $(riscv_gen_srcs): %.cc: insns/%.h insn_template.cc
270 sed 's/NAME/$(subst .cc,,$@)/' $(src_dir)/riscv/insn_template.cc | sed 's/OPCODE/$(call get_opcode,$(src_dir)/riscv/encoding.h,$(subst .cc,,$@))/' > $@
271
272 riscv_junk = \
273 $(riscv_gen_srcs) \