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/')
4 riscv_subproject_deps
= \
7 riscv_install_prog_srcs
= \
26 riscv_precompiled_hdrs
= \
253 $(addsuffix .
cc,$(riscv_insn_list
))
255 icache_entries
:= `grep "ICACHE_ENTRIES =" $(src_dir)/riscv/mmu.h | sed 's/.* = \(.*\);/\1/'`
258 $(src_dir
)/riscv
/gen_icache
$(icache_entries
) > $@.tmp
261 insn_list.h
: $(src_dir
)/riscv
/riscv.mk.in
262 for insn in
$(foreach insn
,$(riscv_insn_list
),$(subst .
,_
,$(insn
))) ; do \
263 printf
'DEFINE_INSN(%s)\n' "$${insn}" ; \
267 $(riscv_gen_srcs
): %.
cc: insns
/%.h insn_template.
cc
268 sed
's/NAME/$(subst .cc,,$@)/' $(src_dir
)/riscv
/insn_template.
cc | sed
's/OPCODE/$(call get_opcode,$(src_dir)/riscv/encoding.h,$(subst .cc,,$@))/' > $@