fix(?) circular dependence on generated headers
authorAndrew Waterman <waterman@cs.berkeley.edu>
Thu, 25 Apr 2013 04:23:54 +0000 (21:23 -0700)
committerAndrew Waterman <waterman@cs.berkeley.edu>
Thu, 25 Apr 2013 04:23:54 +0000 (21:23 -0700)
Makefile.in
riscv/dispatch.h [deleted file]
riscv/riscv.mk.in

index 2630dc4d054bcf333c378faedb1a3b05febe584f..b6c01877cdc275a31a9656fcaf7b49b0c57b7f8f 100644 (file)
@@ -197,7 +197,7 @@ $(2)_objs := $$(patsubst %.cc, %.o, $$($(2)_srcs))
 $(2)_c_objs := $$(patsubst %.c, %.o, $$($(2)_c_srcs))
 $(2)_deps := $$(patsubst %.o, %.d, $$($(2)_objs))
 $(2)_c_deps := $$(patsubst %.o, %.d, $$($(2)_c_objs))
-$$($(2)_objs) : %.o : %.cc
+$$($(2)_objs) : %.o : %.cc $(2)_gen_hdrs
        $(COMPILE) -c $$<
 $$($(2)_c_objs) : %.o : %.c
        $(COMPILE_C) -c $$<
@@ -298,13 +298,13 @@ clean-$(1) :
 libs += lib$(1).a
 objs += $$($(2)_objs)
 srcs += $$(addprefix $(src_dir)/$(1)/, $$($(2)_srcs)) 
-hdrs += $$(addprefix $(src_dir)/$(1)/, $$($(2)_hdrs))
+hdrs += $$(addprefix $(src_dir)/$(1)/, $$($(2)_hdrs) $$($(2)_gen_hdrs))
 junk += $$($(2)_junk)
 deps += $$($(2)_deps)
 
 test_outs += $$($(2)_test_outs)
 
-install_hdrs += $$(addprefix $(src_dir)/$(1)/, $$($(2)_hdrs))
+install_hdrs += $$(addprefix $(src_dir)/$(1)/, $$($(2)_hdrs) $$($(2)_gen_hdrs))
 install_libs += lib$(1).a
 install_exes += $$($(2)_install_prog_exes)
 
diff --git a/riscv/dispatch.h b/riscv/dispatch.h
deleted file mode 100644 (file)
index 0f22113..0000000
+++ /dev/null
@@ -1,505 +0,0 @@
-#define get_insn_func(insn, sr) \
-  processor_t::dispatch_table[((((sr) & SR_S) ? (sr & SR_S64) : (SR_U64)) ? 1024 : 0) + ((insn).bits % 1024)]
-static const insn_func_t dispatch_table[2048];
-reg_t insn_func_32_0(insn_t insn, reg_t reg);
-reg_t insn_func_64_0(insn_t insn, reg_t reg);
-reg_t insn_func_32_1(insn_t insn, reg_t reg);
-reg_t insn_func_64_1(insn_t insn, reg_t reg);
-reg_t insn_func_32_2(insn_t insn, reg_t reg);
-reg_t insn_func_64_2(insn_t insn, reg_t reg);
-reg_t insn_func_32_3(insn_t insn, reg_t reg);
-reg_t insn_func_64_3(insn_t insn, reg_t reg);
-reg_t insn_func_32_4(insn_t insn, reg_t reg);
-reg_t insn_func_64_4(insn_t insn, reg_t reg);
-reg_t insn_func_32_5(insn_t insn, reg_t reg);
-reg_t insn_func_64_5(insn_t insn, reg_t reg);
-reg_t insn_func_32_6(insn_t insn, reg_t reg);
-reg_t insn_func_64_6(insn_t insn, reg_t reg);
-reg_t insn_func_32_7(insn_t insn, reg_t reg);
-reg_t insn_func_64_7(insn_t insn, reg_t reg);
-reg_t insn_func_32_8(insn_t insn, reg_t reg);
-reg_t insn_func_64_8(insn_t insn, reg_t reg);
-reg_t insn_func_32_9(insn_t insn, reg_t reg);
-reg_t insn_func_64_9(insn_t insn, reg_t reg);
-reg_t insn_func_32_10(insn_t insn, reg_t reg);
-reg_t insn_func_64_10(insn_t insn, reg_t reg);
-reg_t insn_func_32_11(insn_t insn, reg_t reg);
-reg_t insn_func_64_11(insn_t insn, reg_t reg);
-reg_t insn_func_32_12(insn_t insn, reg_t reg);
-reg_t insn_func_64_12(insn_t insn, reg_t reg);
-reg_t insn_func_32_13(insn_t insn, reg_t reg);
-reg_t insn_func_64_13(insn_t insn, reg_t reg);
-reg_t insn_func_32_15(insn_t insn, reg_t reg);
-reg_t insn_func_64_15(insn_t insn, reg_t reg);
-reg_t insn_func_32_16(insn_t insn, reg_t reg);
-reg_t insn_func_64_16(insn_t insn, reg_t reg);
-reg_t insn_func_32_17(insn_t insn, reg_t reg);
-reg_t insn_func_64_17(insn_t insn, reg_t reg);
-reg_t insn_func_32_18(insn_t insn, reg_t reg);
-reg_t insn_func_64_18(insn_t insn, reg_t reg);
-reg_t insn_func_32_19(insn_t insn, reg_t reg);
-reg_t insn_func_64_19(insn_t insn, reg_t reg);
-reg_t insn_func_32_20(insn_t insn, reg_t reg);
-reg_t insn_func_64_20(insn_t insn, reg_t reg);
-reg_t insn_func_32_21(insn_t insn, reg_t reg);
-reg_t insn_func_64_21(insn_t insn, reg_t reg);
-reg_t insn_func_32_22(insn_t insn, reg_t reg);
-reg_t insn_func_64_22(insn_t insn, reg_t reg);
-reg_t insn_func_32_23(insn_t insn, reg_t reg);
-reg_t insn_func_64_23(insn_t insn, reg_t reg);
-reg_t insn_func_32_24(insn_t insn, reg_t reg);
-reg_t insn_func_64_24(insn_t insn, reg_t reg);
-reg_t insn_func_32_25(insn_t insn, reg_t reg);
-reg_t insn_func_64_25(insn_t insn, reg_t reg);
-reg_t insn_func_32_26(insn_t insn, reg_t reg);
-reg_t insn_func_64_26(insn_t insn, reg_t reg);
-reg_t insn_func_32_27(insn_t insn, reg_t reg);
-reg_t insn_func_64_27(insn_t insn, reg_t reg);
-reg_t insn_func_32_28(insn_t insn, reg_t reg);
-reg_t insn_func_64_28(insn_t insn, reg_t reg);
-reg_t insn_func_32_29(insn_t insn, reg_t reg);
-reg_t insn_func_64_29(insn_t insn, reg_t reg);
-reg_t insn_func_32_34(insn_t insn, reg_t reg);
-reg_t insn_func_64_34(insn_t insn, reg_t reg);
-reg_t insn_func_32_35(insn_t insn, reg_t reg);
-reg_t insn_func_64_35(insn_t insn, reg_t reg);
-reg_t insn_func_32_50(insn_t insn, reg_t reg);
-reg_t insn_func_64_50(insn_t insn, reg_t reg);
-reg_t insn_func_32_51(insn_t insn, reg_t reg);
-reg_t insn_func_64_51(insn_t insn, reg_t reg);
-reg_t insn_func_32_55(insn_t insn, reg_t reg);
-reg_t insn_func_64_55(insn_t insn, reg_t reg);
-reg_t insn_func_32_57(insn_t insn, reg_t reg);
-reg_t insn_func_64_57(insn_t insn, reg_t reg);
-reg_t insn_func_32_58(insn_t insn, reg_t reg);
-reg_t insn_func_64_58(insn_t insn, reg_t reg);
-reg_t insn_func_32_59(insn_t insn, reg_t reg);
-reg_t insn_func_64_59(insn_t insn, reg_t reg);
-reg_t insn_func_32_66(insn_t insn, reg_t reg);
-reg_t insn_func_64_66(insn_t insn, reg_t reg);
-reg_t insn_func_32_67(insn_t insn, reg_t reg);
-reg_t insn_func_64_67(insn_t insn, reg_t reg);
-reg_t insn_func_32_71(insn_t insn, reg_t reg);
-reg_t insn_func_64_71(insn_t insn, reg_t reg);
-reg_t insn_func_32_75(insn_t insn, reg_t reg);
-reg_t insn_func_64_75(insn_t insn, reg_t reg);
-reg_t insn_func_32_79(insn_t insn, reg_t reg);
-reg_t insn_func_64_79(insn_t insn, reg_t reg);
-reg_t insn_func_32_82(insn_t insn, reg_t reg);
-reg_t insn_func_64_82(insn_t insn, reg_t reg);
-reg_t insn_func_32_83(insn_t insn, reg_t reg);
-reg_t insn_func_64_83(insn_t insn, reg_t reg);
-reg_t insn_func_32_89(insn_t insn, reg_t reg);
-reg_t insn_func_64_89(insn_t insn, reg_t reg);
-reg_t insn_func_32_90(insn_t insn, reg_t reg);
-reg_t insn_func_64_90(insn_t insn, reg_t reg);
-reg_t insn_func_32_98(insn_t insn, reg_t reg);
-reg_t insn_func_64_98(insn_t insn, reg_t reg);
-reg_t insn_func_32_99(insn_t insn, reg_t reg);
-reg_t insn_func_64_99(insn_t insn, reg_t reg);
-reg_t insn_func_32_103(insn_t insn, reg_t reg);
-reg_t insn_func_64_103(insn_t insn, reg_t reg);
-reg_t insn_func_32_107(insn_t insn, reg_t reg);
-reg_t insn_func_64_107(insn_t insn, reg_t reg);
-reg_t insn_func_32_111(insn_t insn, reg_t reg);
-reg_t insn_func_64_111(insn_t insn, reg_t reg);
-reg_t insn_func_32_114(insn_t insn, reg_t reg);
-reg_t insn_func_64_114(insn_t insn, reg_t reg);
-reg_t insn_func_32_115(insn_t insn, reg_t reg);
-reg_t insn_func_64_115(insn_t insn, reg_t reg);
-reg_t insn_func_32_119(insn_t insn, reg_t reg);
-reg_t insn_func_64_119(insn_t insn, reg_t reg);
-reg_t insn_func_32_121(insn_t insn, reg_t reg);
-reg_t insn_func_64_121(insn_t insn, reg_t reg);
-reg_t insn_func_32_122(insn_t insn, reg_t reg);
-reg_t insn_func_64_122(insn_t insn, reg_t reg);
-reg_t insn_func_32_123(insn_t insn, reg_t reg);
-reg_t insn_func_64_123(insn_t insn, reg_t reg);
-reg_t insn_func_32_130(insn_t insn, reg_t reg);
-reg_t insn_func_64_130(insn_t insn, reg_t reg);
-reg_t insn_func_32_131(insn_t insn, reg_t reg);
-reg_t insn_func_64_131(insn_t insn, reg_t reg);
-reg_t insn_func_32_139(insn_t insn, reg_t reg);
-reg_t insn_func_64_139(insn_t insn, reg_t reg);
-reg_t insn_func_32_143(insn_t insn, reg_t reg);
-reg_t insn_func_64_143(insn_t insn, reg_t reg);
-reg_t insn_func_32_146(insn_t insn, reg_t reg);
-reg_t insn_func_64_146(insn_t insn, reg_t reg);
-reg_t insn_func_32_147(insn_t insn, reg_t reg);
-reg_t insn_func_64_147(insn_t insn, reg_t reg);
-reg_t insn_func_32_153(insn_t insn, reg_t reg);
-reg_t insn_func_64_153(insn_t insn, reg_t reg);
-reg_t insn_func_32_154(insn_t insn, reg_t reg);
-reg_t insn_func_64_154(insn_t insn, reg_t reg);
-reg_t insn_func_32_155(insn_t insn, reg_t reg);
-reg_t insn_func_64_155(insn_t insn, reg_t reg);
-reg_t insn_func_32_162(insn_t insn, reg_t reg);
-reg_t insn_func_64_162(insn_t insn, reg_t reg);
-reg_t insn_func_32_163(insn_t insn, reg_t reg);
-reg_t insn_func_64_163(insn_t insn, reg_t reg);
-reg_t insn_func_32_175(insn_t insn, reg_t reg);
-reg_t insn_func_64_175(insn_t insn, reg_t reg);
-reg_t insn_func_32_178(insn_t insn, reg_t reg);
-reg_t insn_func_64_178(insn_t insn, reg_t reg);
-reg_t insn_func_32_179(insn_t insn, reg_t reg);
-reg_t insn_func_64_179(insn_t insn, reg_t reg);
-reg_t insn_func_32_185(insn_t insn, reg_t reg);
-reg_t insn_func_64_185(insn_t insn, reg_t reg);
-reg_t insn_func_32_186(insn_t insn, reg_t reg);
-reg_t insn_func_64_186(insn_t insn, reg_t reg);
-reg_t insn_func_32_187(insn_t insn, reg_t reg);
-reg_t insn_func_64_187(insn_t insn, reg_t reg);
-reg_t insn_func_32_194(insn_t insn, reg_t reg);
-reg_t insn_func_64_194(insn_t insn, reg_t reg);
-reg_t insn_func_32_195(insn_t insn, reg_t reg);
-reg_t insn_func_64_195(insn_t insn, reg_t reg);
-reg_t insn_func_32_199(insn_t insn, reg_t reg);
-reg_t insn_func_64_199(insn_t insn, reg_t reg);
-reg_t insn_func_32_203(insn_t insn, reg_t reg);
-reg_t insn_func_64_203(insn_t insn, reg_t reg);
-reg_t insn_func_32_207(insn_t insn, reg_t reg);
-reg_t insn_func_64_207(insn_t insn, reg_t reg);
-reg_t insn_func_32_210(insn_t insn, reg_t reg);
-reg_t insn_func_64_210(insn_t insn, reg_t reg);
-reg_t insn_func_32_211(insn_t insn, reg_t reg);
-reg_t insn_func_64_211(insn_t insn, reg_t reg);
-reg_t insn_func_32_217(insn_t insn, reg_t reg);
-reg_t insn_func_64_217(insn_t insn, reg_t reg);
-reg_t insn_func_32_218(insn_t insn, reg_t reg);
-reg_t insn_func_64_218(insn_t insn, reg_t reg);
-reg_t insn_func_32_226(insn_t insn, reg_t reg);
-reg_t insn_func_64_226(insn_t insn, reg_t reg);
-reg_t insn_func_32_227(insn_t insn, reg_t reg);
-reg_t insn_func_64_227(insn_t insn, reg_t reg);
-reg_t insn_func_32_235(insn_t insn, reg_t reg);
-reg_t insn_func_64_235(insn_t insn, reg_t reg);
-reg_t insn_func_32_242(insn_t insn, reg_t reg);
-reg_t insn_func_64_242(insn_t insn, reg_t reg);
-reg_t insn_func_32_243(insn_t insn, reg_t reg);
-reg_t insn_func_64_243(insn_t insn, reg_t reg);
-reg_t insn_func_32_247(insn_t insn, reg_t reg);
-reg_t insn_func_64_247(insn_t insn, reg_t reg);
-reg_t insn_func_32_249(insn_t insn, reg_t reg);
-reg_t insn_func_64_249(insn_t insn, reg_t reg);
-reg_t insn_func_32_250(insn_t insn, reg_t reg);
-reg_t insn_func_64_250(insn_t insn, reg_t reg);
-reg_t insn_func_32_251(insn_t insn, reg_t reg);
-reg_t insn_func_64_251(insn_t insn, reg_t reg);
-reg_t insn_func_32_258(insn_t insn, reg_t reg);
-reg_t insn_func_64_258(insn_t insn, reg_t reg);
-reg_t insn_func_32_259(insn_t insn, reg_t reg);
-reg_t insn_func_64_259(insn_t insn, reg_t reg);
-reg_t insn_func_32_263(insn_t insn, reg_t reg);
-reg_t insn_func_64_263(insn_t insn, reg_t reg);
-reg_t insn_func_32_267(insn_t insn, reg_t reg);
-reg_t insn_func_64_267(insn_t insn, reg_t reg);
-reg_t insn_func_32_271(insn_t insn, reg_t reg);
-reg_t insn_func_64_271(insn_t insn, reg_t reg);
-reg_t insn_func_32_274(insn_t insn, reg_t reg);
-reg_t insn_func_64_274(insn_t insn, reg_t reg);
-reg_t insn_func_32_275(insn_t insn, reg_t reg);
-reg_t insn_func_64_275(insn_t insn, reg_t reg);
-reg_t insn_func_32_281(insn_t insn, reg_t reg);
-reg_t insn_func_64_281(insn_t insn, reg_t reg);
-reg_t insn_func_32_282(insn_t insn, reg_t reg);
-reg_t insn_func_64_282(insn_t insn, reg_t reg);
-reg_t insn_func_32_284(insn_t insn, reg_t reg);
-reg_t insn_func_64_284(insn_t insn, reg_t reg);
-reg_t insn_func_32_290(insn_t insn, reg_t reg);
-reg_t insn_func_64_290(insn_t insn, reg_t reg);
-reg_t insn_func_32_291(insn_t insn, reg_t reg);
-reg_t insn_func_64_291(insn_t insn, reg_t reg);
-reg_t insn_func_32_295(insn_t insn, reg_t reg);
-reg_t insn_func_64_295(insn_t insn, reg_t reg);
-reg_t insn_func_32_299(insn_t insn, reg_t reg);
-reg_t insn_func_64_299(insn_t insn, reg_t reg);
-reg_t insn_func_32_303(insn_t insn, reg_t reg);
-reg_t insn_func_64_303(insn_t insn, reg_t reg);
-reg_t insn_func_32_306(insn_t insn, reg_t reg);
-reg_t insn_func_64_306(insn_t insn, reg_t reg);
-reg_t insn_func_32_307(insn_t insn, reg_t reg);
-reg_t insn_func_64_307(insn_t insn, reg_t reg);
-reg_t insn_func_32_313(insn_t insn, reg_t reg);
-reg_t insn_func_64_313(insn_t insn, reg_t reg);
-reg_t insn_func_32_314(insn_t insn, reg_t reg);
-reg_t insn_func_64_314(insn_t insn, reg_t reg);
-reg_t insn_func_32_322(insn_t insn, reg_t reg);
-reg_t insn_func_64_322(insn_t insn, reg_t reg);
-reg_t insn_func_32_338(insn_t insn, reg_t reg);
-reg_t insn_func_64_338(insn_t insn, reg_t reg);
-reg_t insn_func_32_345(insn_t insn, reg_t reg);
-reg_t insn_func_64_345(insn_t insn, reg_t reg);
-reg_t insn_func_32_346(insn_t insn, reg_t reg);
-reg_t insn_func_64_346(insn_t insn, reg_t reg);
-reg_t insn_func_32_354(insn_t insn, reg_t reg);
-reg_t insn_func_64_354(insn_t insn, reg_t reg);
-reg_t insn_func_32_363(insn_t insn, reg_t reg);
-reg_t insn_func_64_363(insn_t insn, reg_t reg);
-reg_t insn_func_32_370(insn_t insn, reg_t reg);
-reg_t insn_func_64_370(insn_t insn, reg_t reg);
-reg_t insn_func_32_371(insn_t insn, reg_t reg);
-reg_t insn_func_64_371(insn_t insn, reg_t reg);
-reg_t insn_func_32_375(insn_t insn, reg_t reg);
-reg_t insn_func_64_375(insn_t insn, reg_t reg);
-reg_t insn_func_32_377(insn_t insn, reg_t reg);
-reg_t insn_func_64_377(insn_t insn, reg_t reg);
-reg_t insn_func_32_378(insn_t insn, reg_t reg);
-reg_t insn_func_64_378(insn_t insn, reg_t reg);
-reg_t insn_func_32_379(insn_t insn, reg_t reg);
-reg_t insn_func_64_379(insn_t insn, reg_t reg);
-reg_t insn_func_32_386(insn_t insn, reg_t reg);
-reg_t insn_func_64_386(insn_t insn, reg_t reg);
-reg_t insn_func_32_387(insn_t insn, reg_t reg);
-reg_t insn_func_64_387(insn_t insn, reg_t reg);
-reg_t insn_func_32_391(insn_t insn, reg_t reg);
-reg_t insn_func_64_391(insn_t insn, reg_t reg);
-reg_t insn_func_32_395(insn_t insn, reg_t reg);
-reg_t insn_func_64_395(insn_t insn, reg_t reg);
-reg_t insn_func_32_399(insn_t insn, reg_t reg);
-reg_t insn_func_64_399(insn_t insn, reg_t reg);
-reg_t insn_func_32_402(insn_t insn, reg_t reg);
-reg_t insn_func_64_402(insn_t insn, reg_t reg);
-reg_t insn_func_32_403(insn_t insn, reg_t reg);
-reg_t insn_func_64_403(insn_t insn, reg_t reg);
-reg_t insn_func_32_409(insn_t insn, reg_t reg);
-reg_t insn_func_64_409(insn_t insn, reg_t reg);
-reg_t insn_func_32_410(insn_t insn, reg_t reg);
-reg_t insn_func_64_410(insn_t insn, reg_t reg);
-reg_t insn_func_32_418(insn_t insn, reg_t reg);
-reg_t insn_func_64_418(insn_t insn, reg_t reg);
-reg_t insn_func_32_419(insn_t insn, reg_t reg);
-reg_t insn_func_64_419(insn_t insn, reg_t reg);
-reg_t insn_func_32_423(insn_t insn, reg_t reg);
-reg_t insn_func_64_423(insn_t insn, reg_t reg);
-reg_t insn_func_32_427(insn_t insn, reg_t reg);
-reg_t insn_func_64_427(insn_t insn, reg_t reg);
-reg_t insn_func_32_434(insn_t insn, reg_t reg);
-reg_t insn_func_64_434(insn_t insn, reg_t reg);
-reg_t insn_func_32_435(insn_t insn, reg_t reg);
-reg_t insn_func_64_435(insn_t insn, reg_t reg);
-reg_t insn_func_32_441(insn_t insn, reg_t reg);
-reg_t insn_func_64_441(insn_t insn, reg_t reg);
-reg_t insn_func_32_442(insn_t insn, reg_t reg);
-reg_t insn_func_64_442(insn_t insn, reg_t reg);
-reg_t insn_func_32_450(insn_t insn, reg_t reg);
-reg_t insn_func_64_450(insn_t insn, reg_t reg);
-reg_t insn_func_32_466(insn_t insn, reg_t reg);
-reg_t insn_func_64_466(insn_t insn, reg_t reg);
-reg_t insn_func_32_473(insn_t insn, reg_t reg);
-reg_t insn_func_64_473(insn_t insn, reg_t reg);
-reg_t insn_func_32_474(insn_t insn, reg_t reg);
-reg_t insn_func_64_474(insn_t insn, reg_t reg);
-reg_t insn_func_32_482(insn_t insn, reg_t reg);
-reg_t insn_func_64_482(insn_t insn, reg_t reg);
-reg_t insn_func_32_498(insn_t insn, reg_t reg);
-reg_t insn_func_64_498(insn_t insn, reg_t reg);
-reg_t insn_func_32_499(insn_t insn, reg_t reg);
-reg_t insn_func_64_499(insn_t insn, reg_t reg);
-reg_t insn_func_32_503(insn_t insn, reg_t reg);
-reg_t insn_func_64_503(insn_t insn, reg_t reg);
-reg_t insn_func_32_505(insn_t insn, reg_t reg);
-reg_t insn_func_64_505(insn_t insn, reg_t reg);
-reg_t insn_func_32_506(insn_t insn, reg_t reg);
-reg_t insn_func_64_506(insn_t insn, reg_t reg);
-reg_t insn_func_32_507(insn_t insn, reg_t reg);
-reg_t insn_func_64_507(insn_t insn, reg_t reg);
-reg_t insn_func_32_514(insn_t insn, reg_t reg);
-reg_t insn_func_64_514(insn_t insn, reg_t reg);
-reg_t insn_func_32_515(insn_t insn, reg_t reg);
-reg_t insn_func_64_515(insn_t insn, reg_t reg);
-reg_t insn_func_32_523(insn_t insn, reg_t reg);
-reg_t insn_func_64_523(insn_t insn, reg_t reg);
-reg_t insn_func_32_530(insn_t insn, reg_t reg);
-reg_t insn_func_64_530(insn_t insn, reg_t reg);
-reg_t insn_func_32_531(insn_t insn, reg_t reg);
-reg_t insn_func_64_531(insn_t insn, reg_t reg);
-reg_t insn_func_32_537(insn_t insn, reg_t reg);
-reg_t insn_func_64_537(insn_t insn, reg_t reg);
-reg_t insn_func_32_538(insn_t insn, reg_t reg);
-reg_t insn_func_64_538(insn_t insn, reg_t reg);
-reg_t insn_func_32_540(insn_t insn, reg_t reg);
-reg_t insn_func_64_540(insn_t insn, reg_t reg);
-reg_t insn_func_32_546(insn_t insn, reg_t reg);
-reg_t insn_func_64_546(insn_t insn, reg_t reg);
-reg_t insn_func_32_559(insn_t insn, reg_t reg);
-reg_t insn_func_64_559(insn_t insn, reg_t reg);
-reg_t insn_func_32_562(insn_t insn, reg_t reg);
-reg_t insn_func_64_562(insn_t insn, reg_t reg);
-reg_t insn_func_32_563(insn_t insn, reg_t reg);
-reg_t insn_func_64_563(insn_t insn, reg_t reg);
-reg_t insn_func_32_569(insn_t insn, reg_t reg);
-reg_t insn_func_64_569(insn_t insn, reg_t reg);
-reg_t insn_func_32_570(insn_t insn, reg_t reg);
-reg_t insn_func_64_570(insn_t insn, reg_t reg);
-reg_t insn_func_32_571(insn_t insn, reg_t reg);
-reg_t insn_func_64_571(insn_t insn, reg_t reg);
-reg_t insn_func_32_578(insn_t insn, reg_t reg);
-reg_t insn_func_64_578(insn_t insn, reg_t reg);
-reg_t insn_func_32_594(insn_t insn, reg_t reg);
-reg_t insn_func_64_594(insn_t insn, reg_t reg);
-reg_t insn_func_32_595(insn_t insn, reg_t reg);
-reg_t insn_func_64_595(insn_t insn, reg_t reg);
-reg_t insn_func_32_601(insn_t insn, reg_t reg);
-reg_t insn_func_64_601(insn_t insn, reg_t reg);
-reg_t insn_func_32_602(insn_t insn, reg_t reg);
-reg_t insn_func_64_602(insn_t insn, reg_t reg);
-reg_t insn_func_32_610(insn_t insn, reg_t reg);
-reg_t insn_func_64_610(insn_t insn, reg_t reg);
-reg_t insn_func_32_611(insn_t insn, reg_t reg);
-reg_t insn_func_64_611(insn_t insn, reg_t reg);
-reg_t insn_func_32_626(insn_t insn, reg_t reg);
-reg_t insn_func_64_626(insn_t insn, reg_t reg);
-reg_t insn_func_32_631(insn_t insn, reg_t reg);
-reg_t insn_func_64_631(insn_t insn, reg_t reg);
-reg_t insn_func_32_633(insn_t insn, reg_t reg);
-reg_t insn_func_64_633(insn_t insn, reg_t reg);
-reg_t insn_func_32_634(insn_t insn, reg_t reg);
-reg_t insn_func_64_634(insn_t insn, reg_t reg);
-reg_t insn_func_32_635(insn_t insn, reg_t reg);
-reg_t insn_func_64_635(insn_t insn, reg_t reg);
-reg_t insn_func_32_642(insn_t insn, reg_t reg);
-reg_t insn_func_64_642(insn_t insn, reg_t reg);
-reg_t insn_func_32_643(insn_t insn, reg_t reg);
-reg_t insn_func_64_643(insn_t insn, reg_t reg);
-reg_t insn_func_32_651(insn_t insn, reg_t reg);
-reg_t insn_func_64_651(insn_t insn, reg_t reg);
-reg_t insn_func_32_658(insn_t insn, reg_t reg);
-reg_t insn_func_64_658(insn_t insn, reg_t reg);
-reg_t insn_func_32_659(insn_t insn, reg_t reg);
-reg_t insn_func_64_659(insn_t insn, reg_t reg);
-reg_t insn_func_32_665(insn_t insn, reg_t reg);
-reg_t insn_func_64_665(insn_t insn, reg_t reg);
-reg_t insn_func_32_666(insn_t insn, reg_t reg);
-reg_t insn_func_64_666(insn_t insn, reg_t reg);
-reg_t insn_func_32_667(insn_t insn, reg_t reg);
-reg_t insn_func_64_667(insn_t insn, reg_t reg);
-reg_t insn_func_32_674(insn_t insn, reg_t reg);
-reg_t insn_func_64_674(insn_t insn, reg_t reg);
-reg_t insn_func_32_687(insn_t insn, reg_t reg);
-reg_t insn_func_64_687(insn_t insn, reg_t reg);
-reg_t insn_func_32_690(insn_t insn, reg_t reg);
-reg_t insn_func_64_690(insn_t insn, reg_t reg);
-reg_t insn_func_32_691(insn_t insn, reg_t reg);
-reg_t insn_func_64_691(insn_t insn, reg_t reg);
-reg_t insn_func_32_697(insn_t insn, reg_t reg);
-reg_t insn_func_64_697(insn_t insn, reg_t reg);
-reg_t insn_func_32_698(insn_t insn, reg_t reg);
-reg_t insn_func_64_698(insn_t insn, reg_t reg);
-reg_t insn_func_32_699(insn_t insn, reg_t reg);
-reg_t insn_func_64_699(insn_t insn, reg_t reg);
-reg_t insn_func_32_706(insn_t insn, reg_t reg);
-reg_t insn_func_64_706(insn_t insn, reg_t reg);
-reg_t insn_func_32_722(insn_t insn, reg_t reg);
-reg_t insn_func_64_722(insn_t insn, reg_t reg);
-reg_t insn_func_32_723(insn_t insn, reg_t reg);
-reg_t insn_func_64_723(insn_t insn, reg_t reg);
-reg_t insn_func_32_729(insn_t insn, reg_t reg);
-reg_t insn_func_64_729(insn_t insn, reg_t reg);
-reg_t insn_func_32_730(insn_t insn, reg_t reg);
-reg_t insn_func_64_730(insn_t insn, reg_t reg);
-reg_t insn_func_32_738(insn_t insn, reg_t reg);
-reg_t insn_func_64_738(insn_t insn, reg_t reg);
-reg_t insn_func_32_739(insn_t insn, reg_t reg);
-reg_t insn_func_64_739(insn_t insn, reg_t reg);
-reg_t insn_func_32_754(insn_t insn, reg_t reg);
-reg_t insn_func_64_754(insn_t insn, reg_t reg);
-reg_t insn_func_32_755(insn_t insn, reg_t reg);
-reg_t insn_func_64_755(insn_t insn, reg_t reg);
-reg_t insn_func_32_759(insn_t insn, reg_t reg);
-reg_t insn_func_64_759(insn_t insn, reg_t reg);
-reg_t insn_func_32_761(insn_t insn, reg_t reg);
-reg_t insn_func_64_761(insn_t insn, reg_t reg);
-reg_t insn_func_32_762(insn_t insn, reg_t reg);
-reg_t insn_func_64_762(insn_t insn, reg_t reg);
-reg_t insn_func_32_763(insn_t insn, reg_t reg);
-reg_t insn_func_64_763(insn_t insn, reg_t reg);
-reg_t insn_func_32_770(insn_t insn, reg_t reg);
-reg_t insn_func_64_770(insn_t insn, reg_t reg);
-reg_t insn_func_32_771(insn_t insn, reg_t reg);
-reg_t insn_func_64_771(insn_t insn, reg_t reg);
-reg_t insn_func_32_779(insn_t insn, reg_t reg);
-reg_t insn_func_64_779(insn_t insn, reg_t reg);
-reg_t insn_func_32_786(insn_t insn, reg_t reg);
-reg_t insn_func_64_786(insn_t insn, reg_t reg);
-reg_t insn_func_32_787(insn_t insn, reg_t reg);
-reg_t insn_func_64_787(insn_t insn, reg_t reg);
-reg_t insn_func_32_793(insn_t insn, reg_t reg);
-reg_t insn_func_64_793(insn_t insn, reg_t reg);
-reg_t insn_func_32_794(insn_t insn, reg_t reg);
-reg_t insn_func_64_794(insn_t insn, reg_t reg);
-reg_t insn_func_32_796(insn_t insn, reg_t reg);
-reg_t insn_func_64_796(insn_t insn, reg_t reg);
-reg_t insn_func_32_802(insn_t insn, reg_t reg);
-reg_t insn_func_64_802(insn_t insn, reg_t reg);
-reg_t insn_func_32_818(insn_t insn, reg_t reg);
-reg_t insn_func_64_818(insn_t insn, reg_t reg);
-reg_t insn_func_32_819(insn_t insn, reg_t reg);
-reg_t insn_func_64_819(insn_t insn, reg_t reg);
-reg_t insn_func_32_825(insn_t insn, reg_t reg);
-reg_t insn_func_64_825(insn_t insn, reg_t reg);
-reg_t insn_func_32_826(insn_t insn, reg_t reg);
-reg_t insn_func_64_826(insn_t insn, reg_t reg);
-reg_t insn_func_32_827(insn_t insn, reg_t reg);
-reg_t insn_func_64_827(insn_t insn, reg_t reg);
-reg_t insn_func_32_834(insn_t insn, reg_t reg);
-reg_t insn_func_64_834(insn_t insn, reg_t reg);
-reg_t insn_func_32_850(insn_t insn, reg_t reg);
-reg_t insn_func_64_850(insn_t insn, reg_t reg);
-reg_t insn_func_32_857(insn_t insn, reg_t reg);
-reg_t insn_func_64_857(insn_t insn, reg_t reg);
-reg_t insn_func_32_858(insn_t insn, reg_t reg);
-reg_t insn_func_64_858(insn_t insn, reg_t reg);
-reg_t insn_func_32_866(insn_t insn, reg_t reg);
-reg_t insn_func_64_866(insn_t insn, reg_t reg);
-reg_t insn_func_32_867(insn_t insn, reg_t reg);
-reg_t insn_func_64_867(insn_t insn, reg_t reg);
-reg_t insn_func_32_882(insn_t insn, reg_t reg);
-reg_t insn_func_64_882(insn_t insn, reg_t reg);
-reg_t insn_func_32_889(insn_t insn, reg_t reg);
-reg_t insn_func_64_889(insn_t insn, reg_t reg);
-reg_t insn_func_32_890(insn_t insn, reg_t reg);
-reg_t insn_func_64_890(insn_t insn, reg_t reg);
-reg_t insn_func_32_891(insn_t insn, reg_t reg);
-reg_t insn_func_64_891(insn_t insn, reg_t reg);
-reg_t insn_func_32_898(insn_t insn, reg_t reg);
-reg_t insn_func_64_898(insn_t insn, reg_t reg);
-reg_t insn_func_32_914(insn_t insn, reg_t reg);
-reg_t insn_func_64_914(insn_t insn, reg_t reg);
-reg_t insn_func_32_915(insn_t insn, reg_t reg);
-reg_t insn_func_64_915(insn_t insn, reg_t reg);
-reg_t insn_func_32_921(insn_t insn, reg_t reg);
-reg_t insn_func_64_921(insn_t insn, reg_t reg);
-reg_t insn_func_32_922(insn_t insn, reg_t reg);
-reg_t insn_func_64_922(insn_t insn, reg_t reg);
-reg_t insn_func_32_930(insn_t insn, reg_t reg);
-reg_t insn_func_64_930(insn_t insn, reg_t reg);
-reg_t insn_func_32_946(insn_t insn, reg_t reg);
-reg_t insn_func_64_946(insn_t insn, reg_t reg);
-reg_t insn_func_32_947(insn_t insn, reg_t reg);
-reg_t insn_func_64_947(insn_t insn, reg_t reg);
-reg_t insn_func_32_953(insn_t insn, reg_t reg);
-reg_t insn_func_64_953(insn_t insn, reg_t reg);
-reg_t insn_func_32_954(insn_t insn, reg_t reg);
-reg_t insn_func_64_954(insn_t insn, reg_t reg);
-reg_t insn_func_32_955(insn_t insn, reg_t reg);
-reg_t insn_func_64_955(insn_t insn, reg_t reg);
-reg_t insn_func_32_962(insn_t insn, reg_t reg);
-reg_t insn_func_64_962(insn_t insn, reg_t reg);
-reg_t insn_func_32_978(insn_t insn, reg_t reg);
-reg_t insn_func_64_978(insn_t insn, reg_t reg);
-reg_t insn_func_32_985(insn_t insn, reg_t reg);
-reg_t insn_func_64_985(insn_t insn, reg_t reg);
-reg_t insn_func_32_986(insn_t insn, reg_t reg);
-reg_t insn_func_64_986(insn_t insn, reg_t reg);
-reg_t insn_func_32_994(insn_t insn, reg_t reg);
-reg_t insn_func_64_994(insn_t insn, reg_t reg);
-reg_t insn_func_32_995(insn_t insn, reg_t reg);
-reg_t insn_func_64_995(insn_t insn, reg_t reg);
-reg_t insn_func_32_1010(insn_t insn, reg_t reg);
-reg_t insn_func_64_1010(insn_t insn, reg_t reg);
-reg_t insn_func_32_1011(insn_t insn, reg_t reg);
-reg_t insn_func_64_1011(insn_t insn, reg_t reg);
-reg_t insn_func_32_1017(insn_t insn, reg_t reg);
-reg_t insn_func_64_1017(insn_t insn, reg_t reg);
-reg_t insn_func_32_1018(insn_t insn, reg_t reg);
-reg_t insn_func_64_1018(insn_t insn, reg_t reg);
index 42679d039e1ddb25b96d280f9d104b727b2821c0..7863e99ebd3698fc84d898bf42a2d40021a19444 100644 (file)
@@ -2,6 +2,9 @@ riscv_subproject_deps = \
        softfloat_riscv \
        softfloat \
 
+riscv_install_prog_srcs = \
+       riscv-isa-run.cc \
+
 riscv_hdrs := \
        htif.h \
        common.h \
@@ -14,26 +17,6 @@ riscv_hdrs := \
        insn_header.h \
        cachesim.h \
        memtracer.h \
-       dispatch.h \
-
-NDISPATCH := 9
-DISPATCH_SRCS := \
-       dispatch0.cc \
-       dispatch1.cc \
-       dispatch2.cc \
-       dispatch3.cc \
-       dispatch4.cc \
-       dispatch5.cc \
-       dispatch6.cc \
-       dispatch7.cc \
-       dispatch8.cc \
-       dispatch9.cc \
-
-$(DISPATCH_SRCS): %.cc: dispatch $(wildcard insns/*.h) opcodes.h
-       $< $(subst dispatch,,$(subst .cc,,$@)) $(NDISPATCH) 1024 < $(src_dir)/riscv/opcodes.h > $@
-
-$(src_dir)/riscv/dispatch.h: %.h: dispatch opcodes.h
-       $< $(NDISPATCH) 1024 < $(src_dir)/riscv/opcodes.h > $@
 
 riscv_srcs = \
        htif.cc \
@@ -48,5 +31,19 @@ riscv_srcs = \
 
 riscv_test_srcs =
 
-riscv_install_prog_srcs = \
-       riscv-isa-run.cc \
+riscv_gen_hdrs: \
+       dispatch.h \
+
+NDISPATCH := 9
+DISPATCH_SRCS = $(addsuffix .cc,$(addprefix dispatch,$(call range,0,$(NDISPATCH)+1)))
+
+$(DISPATCH_SRCS): %.cc: dispatch $(wildcard insns/*.h) opcodes.h
+       $< $(subst dispatch,,$(subst .cc,,$@)) $(NDISPATCH) 1024 < $(src_dir)/riscv/opcodes.h > $@
+
+dispatch.h: %.h: dispatch opcodes.h
+       echo $(riscv_srcs)
+       $< $(NDISPATCH) 1024 < $(src_dir)/riscv/opcodes.h > $@
+
+riscv_junk = \
+  dispatch.h \
+  $(DISPATCH_SRCS) \