aboutsummaryrefslogtreecommitdiff
path: root/riscv
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@s141.Millennium.Berkeley.EDU>2011-06-10 19:54:02 -0700
committerAndrew Waterman <waterman@s141.Millennium.Berkeley.EDU>2011-06-10 19:54:02 -0700
commit3fcb2cbe7981a3838ef7d2e5934c22dabc2e2d00 (patch)
treed358f7221cf8075f884829bb323fcac251200929 /riscv
parent82403eb338d1a6151239868eeb4cbc77083fec77 (diff)
downloadspike-3fcb2cbe7981a3838ef7d2e5934c22dabc2e2d00.zip
spike-3fcb2cbe7981a3838ef7d2e5934c22dabc2e2d00.tar.gz
spike-3fcb2cbe7981a3838ef7d2e5934c22dabc2e2d00.tar.bz2
[sim, opcodes] made sim more decoupled from opcodes
Diffstat (limited to 'riscv')
-rw-r--r--riscv/dispatch.h1028
-rw-r--r--riscv/dispatch_0.cc887
-rw-r--r--riscv/dispatch_1.cc1227
-rw-r--r--riscv/dispatch_2.cc887
-rw-r--r--riscv/dispatch_3.cc1211
-rw-r--r--riscv/dispatch_4.cc880
-rw-r--r--riscv/dispatch_5.cc1148
-rw-r--r--riscv/dispatch_6.cc880
-rw-r--r--riscv/dispatch_7.cc1086
-rw-r--r--riscv/dispatch_8.cc892
-rw-r--r--riscv/dispatch_9.cc1144
-rw-r--r--riscv/dispatch_decl.h1026
-rw-r--r--riscv/insn_footer.h2
-rw-r--r--riscv/insn_header.h22
-rw-r--r--riscv/insn_includes.h7
-rw-r--r--riscv/insns/jalr_j.h2
-rw-r--r--riscv/insns/jalr_r.h2
-rw-r--r--riscv/opcodes.h272
-rw-r--r--riscv/processor.cc56
-rw-r--r--riscv/processor.h14
-rw-r--r--riscv/riscv.mk.in26
21 files changed, 377 insertions, 12322 deletions
diff --git a/riscv/dispatch.h b/riscv/dispatch.h
deleted file mode 100644
index fdc92d3..0000000
--- a/riscv/dispatch.h
+++ /dev/null
@@ -1,1028 +0,0 @@
-/* Automatically generated by parse-opcodes */
-typedef reg_t (*insn_func_t)(processor_t*, insn_t, reg_t);
-const static insn_func_t dispatch_table[] = {
- (insn_func_t)&processor_t::opcode_func_000,
- (insn_func_t)&processor_t::opcode_func_001,
- (insn_func_t)&processor_t::opcode_func_002,
- (insn_func_t)&processor_t::opcode_func_003,
- (insn_func_t)&processor_t::opcode_func_004,
- (insn_func_t)&processor_t::opcode_func_005,
- (insn_func_t)&processor_t::opcode_func_006,
- (insn_func_t)&processor_t::opcode_func_007,
- (insn_func_t)&processor_t::opcode_func_008,
- (insn_func_t)&processor_t::opcode_func_009,
- (insn_func_t)&processor_t::opcode_func_00a,
- (insn_func_t)&processor_t::opcode_func_00b,
- (insn_func_t)&processor_t::opcode_func_00c,
- (insn_func_t)&processor_t::opcode_func_00d,
- (insn_func_t)&processor_t::opcode_func_00e,
- (insn_func_t)&processor_t::opcode_func_00f,
- (insn_func_t)&processor_t::opcode_func_010,
- (insn_func_t)&processor_t::opcode_func_011,
- (insn_func_t)&processor_t::opcode_func_012,
- (insn_func_t)&processor_t::opcode_func_013,
- (insn_func_t)&processor_t::opcode_func_014,
- (insn_func_t)&processor_t::opcode_func_015,
- (insn_func_t)&processor_t::opcode_func_016,
- (insn_func_t)&processor_t::opcode_func_017,
- (insn_func_t)&processor_t::opcode_func_018,
- (insn_func_t)&processor_t::opcode_func_019,
- (insn_func_t)&processor_t::opcode_func_01a,
- (insn_func_t)&processor_t::opcode_func_01b,
- (insn_func_t)&processor_t::opcode_func_01c,
- (insn_func_t)&processor_t::opcode_func_01d,
- (insn_func_t)&processor_t::opcode_func_01e,
- (insn_func_t)&processor_t::opcode_func_01f,
- (insn_func_t)&processor_t::opcode_func_020,
- (insn_func_t)&processor_t::opcode_func_021,
- (insn_func_t)&processor_t::opcode_func_022,
- (insn_func_t)&processor_t::opcode_func_023,
- (insn_func_t)&processor_t::opcode_func_024,
- (insn_func_t)&processor_t::opcode_func_025,
- (insn_func_t)&processor_t::opcode_func_026,
- (insn_func_t)&processor_t::opcode_func_027,
- (insn_func_t)&processor_t::opcode_func_028,
- (insn_func_t)&processor_t::opcode_func_029,
- (insn_func_t)&processor_t::opcode_func_02a,
- (insn_func_t)&processor_t::opcode_func_02b,
- (insn_func_t)&processor_t::opcode_func_02c,
- (insn_func_t)&processor_t::opcode_func_02d,
- (insn_func_t)&processor_t::opcode_func_02e,
- (insn_func_t)&processor_t::opcode_func_02f,
- (insn_func_t)&processor_t::opcode_func_030,
- (insn_func_t)&processor_t::opcode_func_031,
- (insn_func_t)&processor_t::opcode_func_032,
- (insn_func_t)&processor_t::opcode_func_033,
- (insn_func_t)&processor_t::opcode_func_034,
- (insn_func_t)&processor_t::opcode_func_035,
- (insn_func_t)&processor_t::opcode_func_036,
- (insn_func_t)&processor_t::opcode_func_037,
- (insn_func_t)&processor_t::opcode_func_038,
- (insn_func_t)&processor_t::opcode_func_039,
- (insn_func_t)&processor_t::opcode_func_03a,
- (insn_func_t)&processor_t::opcode_func_03b,
- (insn_func_t)&processor_t::opcode_func_03c,
- (insn_func_t)&processor_t::opcode_func_03d,
- (insn_func_t)&processor_t::opcode_func_03e,
- (insn_func_t)&processor_t::opcode_func_03f,
- (insn_func_t)&processor_t::opcode_func_040,
- (insn_func_t)&processor_t::opcode_func_041,
- (insn_func_t)&processor_t::opcode_func_042,
- (insn_func_t)&processor_t::opcode_func_043,
- (insn_func_t)&processor_t::opcode_func_044,
- (insn_func_t)&processor_t::opcode_func_045,
- (insn_func_t)&processor_t::opcode_func_046,
- (insn_func_t)&processor_t::opcode_func_047,
- (insn_func_t)&processor_t::opcode_func_048,
- (insn_func_t)&processor_t::opcode_func_049,
- (insn_func_t)&processor_t::opcode_func_04a,
- (insn_func_t)&processor_t::opcode_func_04b,
- (insn_func_t)&processor_t::opcode_func_04c,
- (insn_func_t)&processor_t::opcode_func_04d,
- (insn_func_t)&processor_t::opcode_func_04e,
- (insn_func_t)&processor_t::opcode_func_04f,
- (insn_func_t)&processor_t::opcode_func_050,
- (insn_func_t)&processor_t::opcode_func_051,
- (insn_func_t)&processor_t::opcode_func_052,
- (insn_func_t)&processor_t::opcode_func_053,
- (insn_func_t)&processor_t::opcode_func_054,
- (insn_func_t)&processor_t::opcode_func_055,
- (insn_func_t)&processor_t::opcode_func_056,
- (insn_func_t)&processor_t::opcode_func_057,
- (insn_func_t)&processor_t::opcode_func_058,
- (insn_func_t)&processor_t::opcode_func_059,
- (insn_func_t)&processor_t::opcode_func_05a,
- (insn_func_t)&processor_t::opcode_func_05b,
- (insn_func_t)&processor_t::opcode_func_05c,
- (insn_func_t)&processor_t::opcode_func_05d,
- (insn_func_t)&processor_t::opcode_func_05e,
- (insn_func_t)&processor_t::opcode_func_05f,
- (insn_func_t)&processor_t::opcode_func_060,
- (insn_func_t)&processor_t::opcode_func_061,
- (insn_func_t)&processor_t::opcode_func_062,
- (insn_func_t)&processor_t::opcode_func_063,
- (insn_func_t)&processor_t::opcode_func_064,
- (insn_func_t)&processor_t::opcode_func_065,
- (insn_func_t)&processor_t::opcode_func_066,
- (insn_func_t)&processor_t::opcode_func_067,
- (insn_func_t)&processor_t::opcode_func_068,
- (insn_func_t)&processor_t::opcode_func_069,
- (insn_func_t)&processor_t::opcode_func_06a,
- (insn_func_t)&processor_t::opcode_func_06b,
- (insn_func_t)&processor_t::opcode_func_06c,
- (insn_func_t)&processor_t::opcode_func_06d,
- (insn_func_t)&processor_t::opcode_func_06e,
- (insn_func_t)&processor_t::opcode_func_06f,
- (insn_func_t)&processor_t::opcode_func_070,
- (insn_func_t)&processor_t::opcode_func_071,
- (insn_func_t)&processor_t::opcode_func_072,
- (insn_func_t)&processor_t::opcode_func_073,
- (insn_func_t)&processor_t::opcode_func_074,
- (insn_func_t)&processor_t::opcode_func_075,
- (insn_func_t)&processor_t::opcode_func_076,
- (insn_func_t)&processor_t::opcode_func_077,
- (insn_func_t)&processor_t::opcode_func_078,
- (insn_func_t)&processor_t::opcode_func_079,
- (insn_func_t)&processor_t::opcode_func_07a,
- (insn_func_t)&processor_t::opcode_func_07b,
- (insn_func_t)&processor_t::opcode_func_07c,
- (insn_func_t)&processor_t::opcode_func_07d,
- (insn_func_t)&processor_t::opcode_func_07e,
- (insn_func_t)&processor_t::opcode_func_07f,
- (insn_func_t)&processor_t::opcode_func_080,
- (insn_func_t)&processor_t::opcode_func_081,
- (insn_func_t)&processor_t::opcode_func_082,
- (insn_func_t)&processor_t::opcode_func_083,
- (insn_func_t)&processor_t::opcode_func_084,
- (insn_func_t)&processor_t::opcode_func_085,
- (insn_func_t)&processor_t::opcode_func_086,
- (insn_func_t)&processor_t::opcode_func_087,
- (insn_func_t)&processor_t::opcode_func_088,
- (insn_func_t)&processor_t::opcode_func_089,
- (insn_func_t)&processor_t::opcode_func_08a,
- (insn_func_t)&processor_t::opcode_func_08b,
- (insn_func_t)&processor_t::opcode_func_08c,
- (insn_func_t)&processor_t::opcode_func_08d,
- (insn_func_t)&processor_t::opcode_func_08e,
- (insn_func_t)&processor_t::opcode_func_08f,
- (insn_func_t)&processor_t::opcode_func_090,
- (insn_func_t)&processor_t::opcode_func_091,
- (insn_func_t)&processor_t::opcode_func_092,
- (insn_func_t)&processor_t::opcode_func_093,
- (insn_func_t)&processor_t::opcode_func_094,
- (insn_func_t)&processor_t::opcode_func_095,
- (insn_func_t)&processor_t::opcode_func_096,
- (insn_func_t)&processor_t::opcode_func_097,
- (insn_func_t)&processor_t::opcode_func_098,
- (insn_func_t)&processor_t::opcode_func_099,
- (insn_func_t)&processor_t::opcode_func_09a,
- (insn_func_t)&processor_t::opcode_func_09b,
- (insn_func_t)&processor_t::opcode_func_09c,
- (insn_func_t)&processor_t::opcode_func_09d,
- (insn_func_t)&processor_t::opcode_func_09e,
- (insn_func_t)&processor_t::opcode_func_09f,
- (insn_func_t)&processor_t::opcode_func_0a0,
- (insn_func_t)&processor_t::opcode_func_0a1,
- (insn_func_t)&processor_t::opcode_func_0a2,
- (insn_func_t)&processor_t::opcode_func_0a3,
- (insn_func_t)&processor_t::opcode_func_0a4,
- (insn_func_t)&processor_t::opcode_func_0a5,
- (insn_func_t)&processor_t::opcode_func_0a6,
- (insn_func_t)&processor_t::opcode_func_0a7,
- (insn_func_t)&processor_t::opcode_func_0a8,
- (insn_func_t)&processor_t::opcode_func_0a9,
- (insn_func_t)&processor_t::opcode_func_0aa,
- (insn_func_t)&processor_t::opcode_func_0ab,
- (insn_func_t)&processor_t::opcode_func_0ac,
- (insn_func_t)&processor_t::opcode_func_0ad,
- (insn_func_t)&processor_t::opcode_func_0ae,
- (insn_func_t)&processor_t::opcode_func_0af,
- (insn_func_t)&processor_t::opcode_func_0b0,
- (insn_func_t)&processor_t::opcode_func_0b1,
- (insn_func_t)&processor_t::opcode_func_0b2,
- (insn_func_t)&processor_t::opcode_func_0b3,
- (insn_func_t)&processor_t::opcode_func_0b4,
- (insn_func_t)&processor_t::opcode_func_0b5,
- (insn_func_t)&processor_t::opcode_func_0b6,
- (insn_func_t)&processor_t::opcode_func_0b7,
- (insn_func_t)&processor_t::opcode_func_0b8,
- (insn_func_t)&processor_t::opcode_func_0b9,
- (insn_func_t)&processor_t::opcode_func_0ba,
- (insn_func_t)&processor_t::opcode_func_0bb,
- (insn_func_t)&processor_t::opcode_func_0bc,
- (insn_func_t)&processor_t::opcode_func_0bd,
- (insn_func_t)&processor_t::opcode_func_0be,
- (insn_func_t)&processor_t::opcode_func_0bf,
- (insn_func_t)&processor_t::opcode_func_0c0,
- (insn_func_t)&processor_t::opcode_func_0c1,
- (insn_func_t)&processor_t::opcode_func_0c2,
- (insn_func_t)&processor_t::opcode_func_0c3,
- (insn_func_t)&processor_t::opcode_func_0c4,
- (insn_func_t)&processor_t::opcode_func_0c5,
- (insn_func_t)&processor_t::opcode_func_0c6,
- (insn_func_t)&processor_t::opcode_func_0c7,
- (insn_func_t)&processor_t::opcode_func_0c8,
- (insn_func_t)&processor_t::opcode_func_0c9,
- (insn_func_t)&processor_t::opcode_func_0ca,
- (insn_func_t)&processor_t::opcode_func_0cb,
- (insn_func_t)&processor_t::opcode_func_0cc,
- (insn_func_t)&processor_t::opcode_func_0cd,
- (insn_func_t)&processor_t::opcode_func_0ce,
- (insn_func_t)&processor_t::opcode_func_0cf,
- (insn_func_t)&processor_t::opcode_func_0d0,
- (insn_func_t)&processor_t::opcode_func_0d1,
- (insn_func_t)&processor_t::opcode_func_0d2,
- (insn_func_t)&processor_t::opcode_func_0d3,
- (insn_func_t)&processor_t::opcode_func_0d4,
- (insn_func_t)&processor_t::opcode_func_0d5,
- (insn_func_t)&processor_t::opcode_func_0d6,
- (insn_func_t)&processor_t::opcode_func_0d7,
- (insn_func_t)&processor_t::opcode_func_0d8,
- (insn_func_t)&processor_t::opcode_func_0d9,
- (insn_func_t)&processor_t::opcode_func_0da,
- (insn_func_t)&processor_t::opcode_func_0db,
- (insn_func_t)&processor_t::opcode_func_0dc,
- (insn_func_t)&processor_t::opcode_func_0dd,
- (insn_func_t)&processor_t::opcode_func_0de,
- (insn_func_t)&processor_t::opcode_func_0df,
- (insn_func_t)&processor_t::opcode_func_0e0,
- (insn_func_t)&processor_t::opcode_func_0e1,
- (insn_func_t)&processor_t::opcode_func_0e2,
- (insn_func_t)&processor_t::opcode_func_0e3,
- (insn_func_t)&processor_t::opcode_func_0e4,
- (insn_func_t)&processor_t::opcode_func_0e5,
- (insn_func_t)&processor_t::opcode_func_0e6,
- (insn_func_t)&processor_t::opcode_func_0e7,
- (insn_func_t)&processor_t::opcode_func_0e8,
- (insn_func_t)&processor_t::opcode_func_0e9,
- (insn_func_t)&processor_t::opcode_func_0ea,
- (insn_func_t)&processor_t::opcode_func_0eb,
- (insn_func_t)&processor_t::opcode_func_0ec,
- (insn_func_t)&processor_t::opcode_func_0ed,
- (insn_func_t)&processor_t::opcode_func_0ee,
- (insn_func_t)&processor_t::opcode_func_0ef,
- (insn_func_t)&processor_t::opcode_func_0f0,
- (insn_func_t)&processor_t::opcode_func_0f1,
- (insn_func_t)&processor_t::opcode_func_0f2,
- (insn_func_t)&processor_t::opcode_func_0f3,
- (insn_func_t)&processor_t::opcode_func_0f4,
- (insn_func_t)&processor_t::opcode_func_0f5,
- (insn_func_t)&processor_t::opcode_func_0f6,
- (insn_func_t)&processor_t::opcode_func_0f7,
- (insn_func_t)&processor_t::opcode_func_0f8,
- (insn_func_t)&processor_t::opcode_func_0f9,
- (insn_func_t)&processor_t::opcode_func_0fa,
- (insn_func_t)&processor_t::opcode_func_0fb,
- (insn_func_t)&processor_t::opcode_func_0fc,
- (insn_func_t)&processor_t::opcode_func_0fd,
- (insn_func_t)&processor_t::opcode_func_0fe,
- (insn_func_t)&processor_t::opcode_func_0ff,
- (insn_func_t)&processor_t::opcode_func_100,
- (insn_func_t)&processor_t::opcode_func_101,
- (insn_func_t)&processor_t::opcode_func_102,
- (insn_func_t)&processor_t::opcode_func_103,
- (insn_func_t)&processor_t::opcode_func_104,
- (insn_func_t)&processor_t::opcode_func_105,
- (insn_func_t)&processor_t::opcode_func_106,
- (insn_func_t)&processor_t::opcode_func_107,
- (insn_func_t)&processor_t::opcode_func_108,
- (insn_func_t)&processor_t::opcode_func_109,
- (insn_func_t)&processor_t::opcode_func_10a,
- (insn_func_t)&processor_t::opcode_func_10b,
- (insn_func_t)&processor_t::opcode_func_10c,
- (insn_func_t)&processor_t::opcode_func_10d,
- (insn_func_t)&processor_t::opcode_func_10e,
- (insn_func_t)&processor_t::opcode_func_10f,
- (insn_func_t)&processor_t::opcode_func_110,
- (insn_func_t)&processor_t::opcode_func_111,
- (insn_func_t)&processor_t::opcode_func_112,
- (insn_func_t)&processor_t::opcode_func_113,
- (insn_func_t)&processor_t::opcode_func_114,
- (insn_func_t)&processor_t::opcode_func_115,
- (insn_func_t)&processor_t::opcode_func_116,
- (insn_func_t)&processor_t::opcode_func_117,
- (insn_func_t)&processor_t::opcode_func_118,
- (insn_func_t)&processor_t::opcode_func_119,
- (insn_func_t)&processor_t::opcode_func_11a,
- (insn_func_t)&processor_t::opcode_func_11b,
- (insn_func_t)&processor_t::opcode_func_11c,
- (insn_func_t)&processor_t::opcode_func_11d,
- (insn_func_t)&processor_t::opcode_func_11e,
- (insn_func_t)&processor_t::opcode_func_11f,
- (insn_func_t)&processor_t::opcode_func_120,
- (insn_func_t)&processor_t::opcode_func_121,
- (insn_func_t)&processor_t::opcode_func_122,
- (insn_func_t)&processor_t::opcode_func_123,
- (insn_func_t)&processor_t::opcode_func_124,
- (insn_func_t)&processor_t::opcode_func_125,
- (insn_func_t)&processor_t::opcode_func_126,
- (insn_func_t)&processor_t::opcode_func_127,
- (insn_func_t)&processor_t::opcode_func_128,
- (insn_func_t)&processor_t::opcode_func_129,
- (insn_func_t)&processor_t::opcode_func_12a,
- (insn_func_t)&processor_t::opcode_func_12b,
- (insn_func_t)&processor_t::opcode_func_12c,
- (insn_func_t)&processor_t::opcode_func_12d,
- (insn_func_t)&processor_t::opcode_func_12e,
- (insn_func_t)&processor_t::opcode_func_12f,
- (insn_func_t)&processor_t::opcode_func_130,
- (insn_func_t)&processor_t::opcode_func_131,
- (insn_func_t)&processor_t::opcode_func_132,
- (insn_func_t)&processor_t::opcode_func_133,
- (insn_func_t)&processor_t::opcode_func_134,
- (insn_func_t)&processor_t::opcode_func_135,
- (insn_func_t)&processor_t::opcode_func_136,
- (insn_func_t)&processor_t::opcode_func_137,
- (insn_func_t)&processor_t::opcode_func_138,
- (insn_func_t)&processor_t::opcode_func_139,
- (insn_func_t)&processor_t::opcode_func_13a,
- (insn_func_t)&processor_t::opcode_func_13b,
- (insn_func_t)&processor_t::opcode_func_13c,
- (insn_func_t)&processor_t::opcode_func_13d,
- (insn_func_t)&processor_t::opcode_func_13e,
- (insn_func_t)&processor_t::opcode_func_13f,
- (insn_func_t)&processor_t::opcode_func_140,
- (insn_func_t)&processor_t::opcode_func_141,
- (insn_func_t)&processor_t::opcode_func_142,
- (insn_func_t)&processor_t::opcode_func_143,
- (insn_func_t)&processor_t::opcode_func_144,
- (insn_func_t)&processor_t::opcode_func_145,
- (insn_func_t)&processor_t::opcode_func_146,
- (insn_func_t)&processor_t::opcode_func_147,
- (insn_func_t)&processor_t::opcode_func_148,
- (insn_func_t)&processor_t::opcode_func_149,
- (insn_func_t)&processor_t::opcode_func_14a,
- (insn_func_t)&processor_t::opcode_func_14b,
- (insn_func_t)&processor_t::opcode_func_14c,
- (insn_func_t)&processor_t::opcode_func_14d,
- (insn_func_t)&processor_t::opcode_func_14e,
- (insn_func_t)&processor_t::opcode_func_14f,
- (insn_func_t)&processor_t::opcode_func_150,
- (insn_func_t)&processor_t::opcode_func_151,
- (insn_func_t)&processor_t::opcode_func_152,
- (insn_func_t)&processor_t::opcode_func_153,
- (insn_func_t)&processor_t::opcode_func_154,
- (insn_func_t)&processor_t::opcode_func_155,
- (insn_func_t)&processor_t::opcode_func_156,
- (insn_func_t)&processor_t::opcode_func_157,
- (insn_func_t)&processor_t::opcode_func_158,
- (insn_func_t)&processor_t::opcode_func_159,
- (insn_func_t)&processor_t::opcode_func_15a,
- (insn_func_t)&processor_t::opcode_func_15b,
- (insn_func_t)&processor_t::opcode_func_15c,
- (insn_func_t)&processor_t::opcode_func_15d,
- (insn_func_t)&processor_t::opcode_func_15e,
- (insn_func_t)&processor_t::opcode_func_15f,
- (insn_func_t)&processor_t::opcode_func_160,
- (insn_func_t)&processor_t::opcode_func_161,
- (insn_func_t)&processor_t::opcode_func_162,
- (insn_func_t)&processor_t::opcode_func_163,
- (insn_func_t)&processor_t::opcode_func_164,
- (insn_func_t)&processor_t::opcode_func_165,
- (insn_func_t)&processor_t::opcode_func_166,
- (insn_func_t)&processor_t::opcode_func_167,
- (insn_func_t)&processor_t::opcode_func_168,
- (insn_func_t)&processor_t::opcode_func_169,
- (insn_func_t)&processor_t::opcode_func_16a,
- (insn_func_t)&processor_t::opcode_func_16b,
- (insn_func_t)&processor_t::opcode_func_16c,
- (insn_func_t)&processor_t::opcode_func_16d,
- (insn_func_t)&processor_t::opcode_func_16e,
- (insn_func_t)&processor_t::opcode_func_16f,
- (insn_func_t)&processor_t::opcode_func_170,
- (insn_func_t)&processor_t::opcode_func_171,
- (insn_func_t)&processor_t::opcode_func_172,
- (insn_func_t)&processor_t::opcode_func_173,
- (insn_func_t)&processor_t::opcode_func_174,
- (insn_func_t)&processor_t::opcode_func_175,
- (insn_func_t)&processor_t::opcode_func_176,
- (insn_func_t)&processor_t::opcode_func_177,
- (insn_func_t)&processor_t::opcode_func_178,
- (insn_func_t)&processor_t::opcode_func_179,
- (insn_func_t)&processor_t::opcode_func_17a,
- (insn_func_t)&processor_t::opcode_func_17b,
- (insn_func_t)&processor_t::opcode_func_17c,
- (insn_func_t)&processor_t::opcode_func_17d,
- (insn_func_t)&processor_t::opcode_func_17e,
- (insn_func_t)&processor_t::opcode_func_17f,
- (insn_func_t)&processor_t::opcode_func_180,
- (insn_func_t)&processor_t::opcode_func_181,
- (insn_func_t)&processor_t::opcode_func_182,
- (insn_func_t)&processor_t::opcode_func_183,
- (insn_func_t)&processor_t::opcode_func_184,
- (insn_func_t)&processor_t::opcode_func_185,
- (insn_func_t)&processor_t::opcode_func_186,
- (insn_func_t)&processor_t::opcode_func_187,
- (insn_func_t)&processor_t::opcode_func_188,
- (insn_func_t)&processor_t::opcode_func_189,
- (insn_func_t)&processor_t::opcode_func_18a,
- (insn_func_t)&processor_t::opcode_func_18b,
- (insn_func_t)&processor_t::opcode_func_18c,
- (insn_func_t)&processor_t::opcode_func_18d,
- (insn_func_t)&processor_t::opcode_func_18e,
- (insn_func_t)&processor_t::opcode_func_18f,
- (insn_func_t)&processor_t::opcode_func_190,
- (insn_func_t)&processor_t::opcode_func_191,
- (insn_func_t)&processor_t::opcode_func_192,
- (insn_func_t)&processor_t::opcode_func_193,
- (insn_func_t)&processor_t::opcode_func_194,
- (insn_func_t)&processor_t::opcode_func_195,
- (insn_func_t)&processor_t::opcode_func_196,
- (insn_func_t)&processor_t::opcode_func_197,
- (insn_func_t)&processor_t::opcode_func_198,
- (insn_func_t)&processor_t::opcode_func_199,
- (insn_func_t)&processor_t::opcode_func_19a,
- (insn_func_t)&processor_t::opcode_func_19b,
- (insn_func_t)&processor_t::opcode_func_19c,
- (insn_func_t)&processor_t::opcode_func_19d,
- (insn_func_t)&processor_t::opcode_func_19e,
- (insn_func_t)&processor_t::opcode_func_19f,
- (insn_func_t)&processor_t::opcode_func_1a0,
- (insn_func_t)&processor_t::opcode_func_1a1,
- (insn_func_t)&processor_t::opcode_func_1a2,
- (insn_func_t)&processor_t::opcode_func_1a3,
- (insn_func_t)&processor_t::opcode_func_1a4,
- (insn_func_t)&processor_t::opcode_func_1a5,
- (insn_func_t)&processor_t::opcode_func_1a6,
- (insn_func_t)&processor_t::opcode_func_1a7,
- (insn_func_t)&processor_t::opcode_func_1a8,
- (insn_func_t)&processor_t::opcode_func_1a9,
- (insn_func_t)&processor_t::opcode_func_1aa,
- (insn_func_t)&processor_t::opcode_func_1ab,
- (insn_func_t)&processor_t::opcode_func_1ac,
- (insn_func_t)&processor_t::opcode_func_1ad,
- (insn_func_t)&processor_t::opcode_func_1ae,
- (insn_func_t)&processor_t::opcode_func_1af,
- (insn_func_t)&processor_t::opcode_func_1b0,
- (insn_func_t)&processor_t::opcode_func_1b1,
- (insn_func_t)&processor_t::opcode_func_1b2,
- (insn_func_t)&processor_t::opcode_func_1b3,
- (insn_func_t)&processor_t::opcode_func_1b4,
- (insn_func_t)&processor_t::opcode_func_1b5,
- (insn_func_t)&processor_t::opcode_func_1b6,
- (insn_func_t)&processor_t::opcode_func_1b7,
- (insn_func_t)&processor_t::opcode_func_1b8,
- (insn_func_t)&processor_t::opcode_func_1b9,
- (insn_func_t)&processor_t::opcode_func_1ba,
- (insn_func_t)&processor_t::opcode_func_1bb,
- (insn_func_t)&processor_t::opcode_func_1bc,
- (insn_func_t)&processor_t::opcode_func_1bd,
- (insn_func_t)&processor_t::opcode_func_1be,
- (insn_func_t)&processor_t::opcode_func_1bf,
- (insn_func_t)&processor_t::opcode_func_1c0,
- (insn_func_t)&processor_t::opcode_func_1c1,
- (insn_func_t)&processor_t::opcode_func_1c2,
- (insn_func_t)&processor_t::opcode_func_1c3,
- (insn_func_t)&processor_t::opcode_func_1c4,
- (insn_func_t)&processor_t::opcode_func_1c5,
- (insn_func_t)&processor_t::opcode_func_1c6,
- (insn_func_t)&processor_t::opcode_func_1c7,
- (insn_func_t)&processor_t::opcode_func_1c8,
- (insn_func_t)&processor_t::opcode_func_1c9,
- (insn_func_t)&processor_t::opcode_func_1ca,
- (insn_func_t)&processor_t::opcode_func_1cb,
- (insn_func_t)&processor_t::opcode_func_1cc,
- (insn_func_t)&processor_t::opcode_func_1cd,
- (insn_func_t)&processor_t::opcode_func_1ce,
- (insn_func_t)&processor_t::opcode_func_1cf,
- (insn_func_t)&processor_t::opcode_func_1d0,
- (insn_func_t)&processor_t::opcode_func_1d1,
- (insn_func_t)&processor_t::opcode_func_1d2,
- (insn_func_t)&processor_t::opcode_func_1d3,
- (insn_func_t)&processor_t::opcode_func_1d4,
- (insn_func_t)&processor_t::opcode_func_1d5,
- (insn_func_t)&processor_t::opcode_func_1d6,
- (insn_func_t)&processor_t::opcode_func_1d7,
- (insn_func_t)&processor_t::opcode_func_1d8,
- (insn_func_t)&processor_t::opcode_func_1d9,
- (insn_func_t)&processor_t::opcode_func_1da,
- (insn_func_t)&processor_t::opcode_func_1db,
- (insn_func_t)&processor_t::opcode_func_1dc,
- (insn_func_t)&processor_t::opcode_func_1dd,
- (insn_func_t)&processor_t::opcode_func_1de,
- (insn_func_t)&processor_t::opcode_func_1df,
- (insn_func_t)&processor_t::opcode_func_1e0,
- (insn_func_t)&processor_t::opcode_func_1e1,
- (insn_func_t)&processor_t::opcode_func_1e2,
- (insn_func_t)&processor_t::opcode_func_1e3,
- (insn_func_t)&processor_t::opcode_func_1e4,
- (insn_func_t)&processor_t::opcode_func_1e5,
- (insn_func_t)&processor_t::opcode_func_1e6,
- (insn_func_t)&processor_t::opcode_func_1e7,
- (insn_func_t)&processor_t::opcode_func_1e8,
- (insn_func_t)&processor_t::opcode_func_1e9,
- (insn_func_t)&processor_t::opcode_func_1ea,
- (insn_func_t)&processor_t::opcode_func_1eb,
- (insn_func_t)&processor_t::opcode_func_1ec,
- (insn_func_t)&processor_t::opcode_func_1ed,
- (insn_func_t)&processor_t::opcode_func_1ee,
- (insn_func_t)&processor_t::opcode_func_1ef,
- (insn_func_t)&processor_t::opcode_func_1f0,
- (insn_func_t)&processor_t::opcode_func_1f1,
- (insn_func_t)&processor_t::opcode_func_1f2,
- (insn_func_t)&processor_t::opcode_func_1f3,
- (insn_func_t)&processor_t::opcode_func_1f4,
- (insn_func_t)&processor_t::opcode_func_1f5,
- (insn_func_t)&processor_t::opcode_func_1f6,
- (insn_func_t)&processor_t::opcode_func_1f7,
- (insn_func_t)&processor_t::opcode_func_1f8,
- (insn_func_t)&processor_t::opcode_func_1f9,
- (insn_func_t)&processor_t::opcode_func_1fa,
- (insn_func_t)&processor_t::opcode_func_1fb,
- (insn_func_t)&processor_t::opcode_func_1fc,
- (insn_func_t)&processor_t::opcode_func_1fd,
- (insn_func_t)&processor_t::opcode_func_1fe,
- (insn_func_t)&processor_t::opcode_func_1ff,
- (insn_func_t)&processor_t::opcode_func_200,
- (insn_func_t)&processor_t::opcode_func_201,
- (insn_func_t)&processor_t::opcode_func_202,
- (insn_func_t)&processor_t::opcode_func_203,
- (insn_func_t)&processor_t::opcode_func_204,
- (insn_func_t)&processor_t::opcode_func_205,
- (insn_func_t)&processor_t::opcode_func_206,
- (insn_func_t)&processor_t::opcode_func_207,
- (insn_func_t)&processor_t::opcode_func_208,
- (insn_func_t)&processor_t::opcode_func_209,
- (insn_func_t)&processor_t::opcode_func_20a,
- (insn_func_t)&processor_t::opcode_func_20b,
- (insn_func_t)&processor_t::opcode_func_20c,
- (insn_func_t)&processor_t::opcode_func_20d,
- (insn_func_t)&processor_t::opcode_func_20e,
- (insn_func_t)&processor_t::opcode_func_20f,
- (insn_func_t)&processor_t::opcode_func_210,
- (insn_func_t)&processor_t::opcode_func_211,
- (insn_func_t)&processor_t::opcode_func_212,
- (insn_func_t)&processor_t::opcode_func_213,
- (insn_func_t)&processor_t::opcode_func_214,
- (insn_func_t)&processor_t::opcode_func_215,
- (insn_func_t)&processor_t::opcode_func_216,
- (insn_func_t)&processor_t::opcode_func_217,
- (insn_func_t)&processor_t::opcode_func_218,
- (insn_func_t)&processor_t::opcode_func_219,
- (insn_func_t)&processor_t::opcode_func_21a,
- (insn_func_t)&processor_t::opcode_func_21b,
- (insn_func_t)&processor_t::opcode_func_21c,
- (insn_func_t)&processor_t::opcode_func_21d,
- (insn_func_t)&processor_t::opcode_func_21e,
- (insn_func_t)&processor_t::opcode_func_21f,
- (insn_func_t)&processor_t::opcode_func_220,
- (insn_func_t)&processor_t::opcode_func_221,
- (insn_func_t)&processor_t::opcode_func_222,
- (insn_func_t)&processor_t::opcode_func_223,
- (insn_func_t)&processor_t::opcode_func_224,
- (insn_func_t)&processor_t::opcode_func_225,
- (insn_func_t)&processor_t::opcode_func_226,
- (insn_func_t)&processor_t::opcode_func_227,
- (insn_func_t)&processor_t::opcode_func_228,
- (insn_func_t)&processor_t::opcode_func_229,
- (insn_func_t)&processor_t::opcode_func_22a,
- (insn_func_t)&processor_t::opcode_func_22b,
- (insn_func_t)&processor_t::opcode_func_22c,
- (insn_func_t)&processor_t::opcode_func_22d,
- (insn_func_t)&processor_t::opcode_func_22e,
- (insn_func_t)&processor_t::opcode_func_22f,
- (insn_func_t)&processor_t::opcode_func_230,
- (insn_func_t)&processor_t::opcode_func_231,
- (insn_func_t)&processor_t::opcode_func_232,
- (insn_func_t)&processor_t::opcode_func_233,
- (insn_func_t)&processor_t::opcode_func_234,
- (insn_func_t)&processor_t::opcode_func_235,
- (insn_func_t)&processor_t::opcode_func_236,
- (insn_func_t)&processor_t::opcode_func_237,
- (insn_func_t)&processor_t::opcode_func_238,
- (insn_func_t)&processor_t::opcode_func_239,
- (insn_func_t)&processor_t::opcode_func_23a,
- (insn_func_t)&processor_t::opcode_func_23b,
- (insn_func_t)&processor_t::opcode_func_23c,
- (insn_func_t)&processor_t::opcode_func_23d,
- (insn_func_t)&processor_t::opcode_func_23e,
- (insn_func_t)&processor_t::opcode_func_23f,
- (insn_func_t)&processor_t::opcode_func_240,
- (insn_func_t)&processor_t::opcode_func_241,
- (insn_func_t)&processor_t::opcode_func_242,
- (insn_func_t)&processor_t::opcode_func_243,
- (insn_func_t)&processor_t::opcode_func_244,
- (insn_func_t)&processor_t::opcode_func_245,
- (insn_func_t)&processor_t::opcode_func_246,
- (insn_func_t)&processor_t::opcode_func_247,
- (insn_func_t)&processor_t::opcode_func_248,
- (insn_func_t)&processor_t::opcode_func_249,
- (insn_func_t)&processor_t::opcode_func_24a,
- (insn_func_t)&processor_t::opcode_func_24b,
- (insn_func_t)&processor_t::opcode_func_24c,
- (insn_func_t)&processor_t::opcode_func_24d,
- (insn_func_t)&processor_t::opcode_func_24e,
- (insn_func_t)&processor_t::opcode_func_24f,
- (insn_func_t)&processor_t::opcode_func_250,
- (insn_func_t)&processor_t::opcode_func_251,
- (insn_func_t)&processor_t::opcode_func_252,
- (insn_func_t)&processor_t::opcode_func_253,
- (insn_func_t)&processor_t::opcode_func_254,
- (insn_func_t)&processor_t::opcode_func_255,
- (insn_func_t)&processor_t::opcode_func_256,
- (insn_func_t)&processor_t::opcode_func_257,
- (insn_func_t)&processor_t::opcode_func_258,
- (insn_func_t)&processor_t::opcode_func_259,
- (insn_func_t)&processor_t::opcode_func_25a,
- (insn_func_t)&processor_t::opcode_func_25b,
- (insn_func_t)&processor_t::opcode_func_25c,
- (insn_func_t)&processor_t::opcode_func_25d,
- (insn_func_t)&processor_t::opcode_func_25e,
- (insn_func_t)&processor_t::opcode_func_25f,
- (insn_func_t)&processor_t::opcode_func_260,
- (insn_func_t)&processor_t::opcode_func_261,
- (insn_func_t)&processor_t::opcode_func_262,
- (insn_func_t)&processor_t::opcode_func_263,
- (insn_func_t)&processor_t::opcode_func_264,
- (insn_func_t)&processor_t::opcode_func_265,
- (insn_func_t)&processor_t::opcode_func_266,
- (insn_func_t)&processor_t::opcode_func_267,
- (insn_func_t)&processor_t::opcode_func_268,
- (insn_func_t)&processor_t::opcode_func_269,
- (insn_func_t)&processor_t::opcode_func_26a,
- (insn_func_t)&processor_t::opcode_func_26b,
- (insn_func_t)&processor_t::opcode_func_26c,
- (insn_func_t)&processor_t::opcode_func_26d,
- (insn_func_t)&processor_t::opcode_func_26e,
- (insn_func_t)&processor_t::opcode_func_26f,
- (insn_func_t)&processor_t::opcode_func_270,
- (insn_func_t)&processor_t::opcode_func_271,
- (insn_func_t)&processor_t::opcode_func_272,
- (insn_func_t)&processor_t::opcode_func_273,
- (insn_func_t)&processor_t::opcode_func_274,
- (insn_func_t)&processor_t::opcode_func_275,
- (insn_func_t)&processor_t::opcode_func_276,
- (insn_func_t)&processor_t::opcode_func_277,
- (insn_func_t)&processor_t::opcode_func_278,
- (insn_func_t)&processor_t::opcode_func_279,
- (insn_func_t)&processor_t::opcode_func_27a,
- (insn_func_t)&processor_t::opcode_func_27b,
- (insn_func_t)&processor_t::opcode_func_27c,
- (insn_func_t)&processor_t::opcode_func_27d,
- (insn_func_t)&processor_t::opcode_func_27e,
- (insn_func_t)&processor_t::opcode_func_27f,
- (insn_func_t)&processor_t::opcode_func_280,
- (insn_func_t)&processor_t::opcode_func_281,
- (insn_func_t)&processor_t::opcode_func_282,
- (insn_func_t)&processor_t::opcode_func_283,
- (insn_func_t)&processor_t::opcode_func_284,
- (insn_func_t)&processor_t::opcode_func_285,
- (insn_func_t)&processor_t::opcode_func_286,
- (insn_func_t)&processor_t::opcode_func_287,
- (insn_func_t)&processor_t::opcode_func_288,
- (insn_func_t)&processor_t::opcode_func_289,
- (insn_func_t)&processor_t::opcode_func_28a,
- (insn_func_t)&processor_t::opcode_func_28b,
- (insn_func_t)&processor_t::opcode_func_28c,
- (insn_func_t)&processor_t::opcode_func_28d,
- (insn_func_t)&processor_t::opcode_func_28e,
- (insn_func_t)&processor_t::opcode_func_28f,
- (insn_func_t)&processor_t::opcode_func_290,
- (insn_func_t)&processor_t::opcode_func_291,
- (insn_func_t)&processor_t::opcode_func_292,
- (insn_func_t)&processor_t::opcode_func_293,
- (insn_func_t)&processor_t::opcode_func_294,
- (insn_func_t)&processor_t::opcode_func_295,
- (insn_func_t)&processor_t::opcode_func_296,
- (insn_func_t)&processor_t::opcode_func_297,
- (insn_func_t)&processor_t::opcode_func_298,
- (insn_func_t)&processor_t::opcode_func_299,
- (insn_func_t)&processor_t::opcode_func_29a,
- (insn_func_t)&processor_t::opcode_func_29b,
- (insn_func_t)&processor_t::opcode_func_29c,
- (insn_func_t)&processor_t::opcode_func_29d,
- (insn_func_t)&processor_t::opcode_func_29e,
- (insn_func_t)&processor_t::opcode_func_29f,
- (insn_func_t)&processor_t::opcode_func_2a0,
- (insn_func_t)&processor_t::opcode_func_2a1,
- (insn_func_t)&processor_t::opcode_func_2a2,
- (insn_func_t)&processor_t::opcode_func_2a3,
- (insn_func_t)&processor_t::opcode_func_2a4,
- (insn_func_t)&processor_t::opcode_func_2a5,
- (insn_func_t)&processor_t::opcode_func_2a6,
- (insn_func_t)&processor_t::opcode_func_2a7,
- (insn_func_t)&processor_t::opcode_func_2a8,
- (insn_func_t)&processor_t::opcode_func_2a9,
- (insn_func_t)&processor_t::opcode_func_2aa,
- (insn_func_t)&processor_t::opcode_func_2ab,
- (insn_func_t)&processor_t::opcode_func_2ac,
- (insn_func_t)&processor_t::opcode_func_2ad,
- (insn_func_t)&processor_t::opcode_func_2ae,
- (insn_func_t)&processor_t::opcode_func_2af,
- (insn_func_t)&processor_t::opcode_func_2b0,
- (insn_func_t)&processor_t::opcode_func_2b1,
- (insn_func_t)&processor_t::opcode_func_2b2,
- (insn_func_t)&processor_t::opcode_func_2b3,
- (insn_func_t)&processor_t::opcode_func_2b4,
- (insn_func_t)&processor_t::opcode_func_2b5,
- (insn_func_t)&processor_t::opcode_func_2b6,
- (insn_func_t)&processor_t::opcode_func_2b7,
- (insn_func_t)&processor_t::opcode_func_2b8,
- (insn_func_t)&processor_t::opcode_func_2b9,
- (insn_func_t)&processor_t::opcode_func_2ba,
- (insn_func_t)&processor_t::opcode_func_2bb,
- (insn_func_t)&processor_t::opcode_func_2bc,
- (insn_func_t)&processor_t::opcode_func_2bd,
- (insn_func_t)&processor_t::opcode_func_2be,
- (insn_func_t)&processor_t::opcode_func_2bf,
- (insn_func_t)&processor_t::opcode_func_2c0,
- (insn_func_t)&processor_t::opcode_func_2c1,
- (insn_func_t)&processor_t::opcode_func_2c2,
- (insn_func_t)&processor_t::opcode_func_2c3,
- (insn_func_t)&processor_t::opcode_func_2c4,
- (insn_func_t)&processor_t::opcode_func_2c5,
- (insn_func_t)&processor_t::opcode_func_2c6,
- (insn_func_t)&processor_t::opcode_func_2c7,
- (insn_func_t)&processor_t::opcode_func_2c8,
- (insn_func_t)&processor_t::opcode_func_2c9,
- (insn_func_t)&processor_t::opcode_func_2ca,
- (insn_func_t)&processor_t::opcode_func_2cb,
- (insn_func_t)&processor_t::opcode_func_2cc,
- (insn_func_t)&processor_t::opcode_func_2cd,
- (insn_func_t)&processor_t::opcode_func_2ce,
- (insn_func_t)&processor_t::opcode_func_2cf,
- (insn_func_t)&processor_t::opcode_func_2d0,
- (insn_func_t)&processor_t::opcode_func_2d1,
- (insn_func_t)&processor_t::opcode_func_2d2,
- (insn_func_t)&processor_t::opcode_func_2d3,
- (insn_func_t)&processor_t::opcode_func_2d4,
- (insn_func_t)&processor_t::opcode_func_2d5,
- (insn_func_t)&processor_t::opcode_func_2d6,
- (insn_func_t)&processor_t::opcode_func_2d7,
- (insn_func_t)&processor_t::opcode_func_2d8,
- (insn_func_t)&processor_t::opcode_func_2d9,
- (insn_func_t)&processor_t::opcode_func_2da,
- (insn_func_t)&processor_t::opcode_func_2db,
- (insn_func_t)&processor_t::opcode_func_2dc,
- (insn_func_t)&processor_t::opcode_func_2dd,
- (insn_func_t)&processor_t::opcode_func_2de,
- (insn_func_t)&processor_t::opcode_func_2df,
- (insn_func_t)&processor_t::opcode_func_2e0,
- (insn_func_t)&processor_t::opcode_func_2e1,
- (insn_func_t)&processor_t::opcode_func_2e2,
- (insn_func_t)&processor_t::opcode_func_2e3,
- (insn_func_t)&processor_t::opcode_func_2e4,
- (insn_func_t)&processor_t::opcode_func_2e5,
- (insn_func_t)&processor_t::opcode_func_2e6,
- (insn_func_t)&processor_t::opcode_func_2e7,
- (insn_func_t)&processor_t::opcode_func_2e8,
- (insn_func_t)&processor_t::opcode_func_2e9,
- (insn_func_t)&processor_t::opcode_func_2ea,
- (insn_func_t)&processor_t::opcode_func_2eb,
- (insn_func_t)&processor_t::opcode_func_2ec,
- (insn_func_t)&processor_t::opcode_func_2ed,
- (insn_func_t)&processor_t::opcode_func_2ee,
- (insn_func_t)&processor_t::opcode_func_2ef,
- (insn_func_t)&processor_t::opcode_func_2f0,
- (insn_func_t)&processor_t::opcode_func_2f1,
- (insn_func_t)&processor_t::opcode_func_2f2,
- (insn_func_t)&processor_t::opcode_func_2f3,
- (insn_func_t)&processor_t::opcode_func_2f4,
- (insn_func_t)&processor_t::opcode_func_2f5,
- (insn_func_t)&processor_t::opcode_func_2f6,
- (insn_func_t)&processor_t::opcode_func_2f7,
- (insn_func_t)&processor_t::opcode_func_2f8,
- (insn_func_t)&processor_t::opcode_func_2f9,
- (insn_func_t)&processor_t::opcode_func_2fa,
- (insn_func_t)&processor_t::opcode_func_2fb,
- (insn_func_t)&processor_t::opcode_func_2fc,
- (insn_func_t)&processor_t::opcode_func_2fd,
- (insn_func_t)&processor_t::opcode_func_2fe,
- (insn_func_t)&processor_t::opcode_func_2ff,
- (insn_func_t)&processor_t::opcode_func_300,
- (insn_func_t)&processor_t::opcode_func_301,
- (insn_func_t)&processor_t::opcode_func_302,
- (insn_func_t)&processor_t::opcode_func_303,
- (insn_func_t)&processor_t::opcode_func_304,
- (insn_func_t)&processor_t::opcode_func_305,
- (insn_func_t)&processor_t::opcode_func_306,
- (insn_func_t)&processor_t::opcode_func_307,
- (insn_func_t)&processor_t::opcode_func_308,
- (insn_func_t)&processor_t::opcode_func_309,
- (insn_func_t)&processor_t::opcode_func_30a,
- (insn_func_t)&processor_t::opcode_func_30b,
- (insn_func_t)&processor_t::opcode_func_30c,
- (insn_func_t)&processor_t::opcode_func_30d,
- (insn_func_t)&processor_t::opcode_func_30e,
- (insn_func_t)&processor_t::opcode_func_30f,
- (insn_func_t)&processor_t::opcode_func_310,
- (insn_func_t)&processor_t::opcode_func_311,
- (insn_func_t)&processor_t::opcode_func_312,
- (insn_func_t)&processor_t::opcode_func_313,
- (insn_func_t)&processor_t::opcode_func_314,
- (insn_func_t)&processor_t::opcode_func_315,
- (insn_func_t)&processor_t::opcode_func_316,
- (insn_func_t)&processor_t::opcode_func_317,
- (insn_func_t)&processor_t::opcode_func_318,
- (insn_func_t)&processor_t::opcode_func_319,
- (insn_func_t)&processor_t::opcode_func_31a,
- (insn_func_t)&processor_t::opcode_func_31b,
- (insn_func_t)&processor_t::opcode_func_31c,
- (insn_func_t)&processor_t::opcode_func_31d,
- (insn_func_t)&processor_t::opcode_func_31e,
- (insn_func_t)&processor_t::opcode_func_31f,
- (insn_func_t)&processor_t::opcode_func_320,
- (insn_func_t)&processor_t::opcode_func_321,
- (insn_func_t)&processor_t::opcode_func_322,
- (insn_func_t)&processor_t::opcode_func_323,
- (insn_func_t)&processor_t::opcode_func_324,
- (insn_func_t)&processor_t::opcode_func_325,
- (insn_func_t)&processor_t::opcode_func_326,
- (insn_func_t)&processor_t::opcode_func_327,
- (insn_func_t)&processor_t::opcode_func_328,
- (insn_func_t)&processor_t::opcode_func_329,
- (insn_func_t)&processor_t::opcode_func_32a,
- (insn_func_t)&processor_t::opcode_func_32b,
- (insn_func_t)&processor_t::opcode_func_32c,
- (insn_func_t)&processor_t::opcode_func_32d,
- (insn_func_t)&processor_t::opcode_func_32e,
- (insn_func_t)&processor_t::opcode_func_32f,
- (insn_func_t)&processor_t::opcode_func_330,
- (insn_func_t)&processor_t::opcode_func_331,
- (insn_func_t)&processor_t::opcode_func_332,
- (insn_func_t)&processor_t::opcode_func_333,
- (insn_func_t)&processor_t::opcode_func_334,
- (insn_func_t)&processor_t::opcode_func_335,
- (insn_func_t)&processor_t::opcode_func_336,
- (insn_func_t)&processor_t::opcode_func_337,
- (insn_func_t)&processor_t::opcode_func_338,
- (insn_func_t)&processor_t::opcode_func_339,
- (insn_func_t)&processor_t::opcode_func_33a,
- (insn_func_t)&processor_t::opcode_func_33b,
- (insn_func_t)&processor_t::opcode_func_33c,
- (insn_func_t)&processor_t::opcode_func_33d,
- (insn_func_t)&processor_t::opcode_func_33e,
- (insn_func_t)&processor_t::opcode_func_33f,
- (insn_func_t)&processor_t::opcode_func_340,
- (insn_func_t)&processor_t::opcode_func_341,
- (insn_func_t)&processor_t::opcode_func_342,
- (insn_func_t)&processor_t::opcode_func_343,
- (insn_func_t)&processor_t::opcode_func_344,
- (insn_func_t)&processor_t::opcode_func_345,
- (insn_func_t)&processor_t::opcode_func_346,
- (insn_func_t)&processor_t::opcode_func_347,
- (insn_func_t)&processor_t::opcode_func_348,
- (insn_func_t)&processor_t::opcode_func_349,
- (insn_func_t)&processor_t::opcode_func_34a,
- (insn_func_t)&processor_t::opcode_func_34b,
- (insn_func_t)&processor_t::opcode_func_34c,
- (insn_func_t)&processor_t::opcode_func_34d,
- (insn_func_t)&processor_t::opcode_func_34e,
- (insn_func_t)&processor_t::opcode_func_34f,
- (insn_func_t)&processor_t::opcode_func_350,
- (insn_func_t)&processor_t::opcode_func_351,
- (insn_func_t)&processor_t::opcode_func_352,
- (insn_func_t)&processor_t::opcode_func_353,
- (insn_func_t)&processor_t::opcode_func_354,
- (insn_func_t)&processor_t::opcode_func_355,
- (insn_func_t)&processor_t::opcode_func_356,
- (insn_func_t)&processor_t::opcode_func_357,
- (insn_func_t)&processor_t::opcode_func_358,
- (insn_func_t)&processor_t::opcode_func_359,
- (insn_func_t)&processor_t::opcode_func_35a,
- (insn_func_t)&processor_t::opcode_func_35b,
- (insn_func_t)&processor_t::opcode_func_35c,
- (insn_func_t)&processor_t::opcode_func_35d,
- (insn_func_t)&processor_t::opcode_func_35e,
- (insn_func_t)&processor_t::opcode_func_35f,
- (insn_func_t)&processor_t::opcode_func_360,
- (insn_func_t)&processor_t::opcode_func_361,
- (insn_func_t)&processor_t::opcode_func_362,
- (insn_func_t)&processor_t::opcode_func_363,
- (insn_func_t)&processor_t::opcode_func_364,
- (insn_func_t)&processor_t::opcode_func_365,
- (insn_func_t)&processor_t::opcode_func_366,
- (insn_func_t)&processor_t::opcode_func_367,
- (insn_func_t)&processor_t::opcode_func_368,
- (insn_func_t)&processor_t::opcode_func_369,
- (insn_func_t)&processor_t::opcode_func_36a,
- (insn_func_t)&processor_t::opcode_func_36b,
- (insn_func_t)&processor_t::opcode_func_36c,
- (insn_func_t)&processor_t::opcode_func_36d,
- (insn_func_t)&processor_t::opcode_func_36e,
- (insn_func_t)&processor_t::opcode_func_36f,
- (insn_func_t)&processor_t::opcode_func_370,
- (insn_func_t)&processor_t::opcode_func_371,
- (insn_func_t)&processor_t::opcode_func_372,
- (insn_func_t)&processor_t::opcode_func_373,
- (insn_func_t)&processor_t::opcode_func_374,
- (insn_func_t)&processor_t::opcode_func_375,
- (insn_func_t)&processor_t::opcode_func_376,
- (insn_func_t)&processor_t::opcode_func_377,
- (insn_func_t)&processor_t::opcode_func_378,
- (insn_func_t)&processor_t::opcode_func_379,
- (insn_func_t)&processor_t::opcode_func_37a,
- (insn_func_t)&processor_t::opcode_func_37b,
- (insn_func_t)&processor_t::opcode_func_37c,
- (insn_func_t)&processor_t::opcode_func_37d,
- (insn_func_t)&processor_t::opcode_func_37e,
- (insn_func_t)&processor_t::opcode_func_37f,
- (insn_func_t)&processor_t::opcode_func_380,
- (insn_func_t)&processor_t::opcode_func_381,
- (insn_func_t)&processor_t::opcode_func_382,
- (insn_func_t)&processor_t::opcode_func_383,
- (insn_func_t)&processor_t::opcode_func_384,
- (insn_func_t)&processor_t::opcode_func_385,
- (insn_func_t)&processor_t::opcode_func_386,
- (insn_func_t)&processor_t::opcode_func_387,
- (insn_func_t)&processor_t::opcode_func_388,
- (insn_func_t)&processor_t::opcode_func_389,
- (insn_func_t)&processor_t::opcode_func_38a,
- (insn_func_t)&processor_t::opcode_func_38b,
- (insn_func_t)&processor_t::opcode_func_38c,
- (insn_func_t)&processor_t::opcode_func_38d,
- (insn_func_t)&processor_t::opcode_func_38e,
- (insn_func_t)&processor_t::opcode_func_38f,
- (insn_func_t)&processor_t::opcode_func_390,
- (insn_func_t)&processor_t::opcode_func_391,
- (insn_func_t)&processor_t::opcode_func_392,
- (insn_func_t)&processor_t::opcode_func_393,
- (insn_func_t)&processor_t::opcode_func_394,
- (insn_func_t)&processor_t::opcode_func_395,
- (insn_func_t)&processor_t::opcode_func_396,
- (insn_func_t)&processor_t::opcode_func_397,
- (insn_func_t)&processor_t::opcode_func_398,
- (insn_func_t)&processor_t::opcode_func_399,
- (insn_func_t)&processor_t::opcode_func_39a,
- (insn_func_t)&processor_t::opcode_func_39b,
- (insn_func_t)&processor_t::opcode_func_39c,
- (insn_func_t)&processor_t::opcode_func_39d,
- (insn_func_t)&processor_t::opcode_func_39e,
- (insn_func_t)&processor_t::opcode_func_39f,
- (insn_func_t)&processor_t::opcode_func_3a0,
- (insn_func_t)&processor_t::opcode_func_3a1,
- (insn_func_t)&processor_t::opcode_func_3a2,
- (insn_func_t)&processor_t::opcode_func_3a3,
- (insn_func_t)&processor_t::opcode_func_3a4,
- (insn_func_t)&processor_t::opcode_func_3a5,
- (insn_func_t)&processor_t::opcode_func_3a6,
- (insn_func_t)&processor_t::opcode_func_3a7,
- (insn_func_t)&processor_t::opcode_func_3a8,
- (insn_func_t)&processor_t::opcode_func_3a9,
- (insn_func_t)&processor_t::opcode_func_3aa,
- (insn_func_t)&processor_t::opcode_func_3ab,
- (insn_func_t)&processor_t::opcode_func_3ac,
- (insn_func_t)&processor_t::opcode_func_3ad,
- (insn_func_t)&processor_t::opcode_func_3ae,
- (insn_func_t)&processor_t::opcode_func_3af,
- (insn_func_t)&processor_t::opcode_func_3b0,
- (insn_func_t)&processor_t::opcode_func_3b1,
- (insn_func_t)&processor_t::opcode_func_3b2,
- (insn_func_t)&processor_t::opcode_func_3b3,
- (insn_func_t)&processor_t::opcode_func_3b4,
- (insn_func_t)&processor_t::opcode_func_3b5,
- (insn_func_t)&processor_t::opcode_func_3b6,
- (insn_func_t)&processor_t::opcode_func_3b7,
- (insn_func_t)&processor_t::opcode_func_3b8,
- (insn_func_t)&processor_t::opcode_func_3b9,
- (insn_func_t)&processor_t::opcode_func_3ba,
- (insn_func_t)&processor_t::opcode_func_3bb,
- (insn_func_t)&processor_t::opcode_func_3bc,
- (insn_func_t)&processor_t::opcode_func_3bd,
- (insn_func_t)&processor_t::opcode_func_3be,
- (insn_func_t)&processor_t::opcode_func_3bf,
- (insn_func_t)&processor_t::opcode_func_3c0,
- (insn_func_t)&processor_t::opcode_func_3c1,
- (insn_func_t)&processor_t::opcode_func_3c2,
- (insn_func_t)&processor_t::opcode_func_3c3,
- (insn_func_t)&processor_t::opcode_func_3c4,
- (insn_func_t)&processor_t::opcode_func_3c5,
- (insn_func_t)&processor_t::opcode_func_3c6,
- (insn_func_t)&processor_t::opcode_func_3c7,
- (insn_func_t)&processor_t::opcode_func_3c8,
- (insn_func_t)&processor_t::opcode_func_3c9,
- (insn_func_t)&processor_t::opcode_func_3ca,
- (insn_func_t)&processor_t::opcode_func_3cb,
- (insn_func_t)&processor_t::opcode_func_3cc,
- (insn_func_t)&processor_t::opcode_func_3cd,
- (insn_func_t)&processor_t::opcode_func_3ce,
- (insn_func_t)&processor_t::opcode_func_3cf,
- (insn_func_t)&processor_t::opcode_func_3d0,
- (insn_func_t)&processor_t::opcode_func_3d1,
- (insn_func_t)&processor_t::opcode_func_3d2,
- (insn_func_t)&processor_t::opcode_func_3d3,
- (insn_func_t)&processor_t::opcode_func_3d4,
- (insn_func_t)&processor_t::opcode_func_3d5,
- (insn_func_t)&processor_t::opcode_func_3d6,
- (insn_func_t)&processor_t::opcode_func_3d7,
- (insn_func_t)&processor_t::opcode_func_3d8,
- (insn_func_t)&processor_t::opcode_func_3d9,
- (insn_func_t)&processor_t::opcode_func_3da,
- (insn_func_t)&processor_t::opcode_func_3db,
- (insn_func_t)&processor_t::opcode_func_3dc,
- (insn_func_t)&processor_t::opcode_func_3dd,
- (insn_func_t)&processor_t::opcode_func_3de,
- (insn_func_t)&processor_t::opcode_func_3df,
- (insn_func_t)&processor_t::opcode_func_3e0,
- (insn_func_t)&processor_t::opcode_func_3e1,
- (insn_func_t)&processor_t::opcode_func_3e2,
- (insn_func_t)&processor_t::opcode_func_3e3,
- (insn_func_t)&processor_t::opcode_func_3e4,
- (insn_func_t)&processor_t::opcode_func_3e5,
- (insn_func_t)&processor_t::opcode_func_3e6,
- (insn_func_t)&processor_t::opcode_func_3e7,
- (insn_func_t)&processor_t::opcode_func_3e8,
- (insn_func_t)&processor_t::opcode_func_3e9,
- (insn_func_t)&processor_t::opcode_func_3ea,
- (insn_func_t)&processor_t::opcode_func_3eb,
- (insn_func_t)&processor_t::opcode_func_3ec,
- (insn_func_t)&processor_t::opcode_func_3ed,
- (insn_func_t)&processor_t::opcode_func_3ee,
- (insn_func_t)&processor_t::opcode_func_3ef,
- (insn_func_t)&processor_t::opcode_func_3f0,
- (insn_func_t)&processor_t::opcode_func_3f1,
- (insn_func_t)&processor_t::opcode_func_3f2,
- (insn_func_t)&processor_t::opcode_func_3f3,
- (insn_func_t)&processor_t::opcode_func_3f4,
- (insn_func_t)&processor_t::opcode_func_3f5,
- (insn_func_t)&processor_t::opcode_func_3f6,
- (insn_func_t)&processor_t::opcode_func_3f7,
- (insn_func_t)&processor_t::opcode_func_3f8,
- (insn_func_t)&processor_t::opcode_func_3f9,
- (insn_func_t)&processor_t::opcode_func_3fa,
- (insn_func_t)&processor_t::opcode_func_3fb,
- (insn_func_t)&processor_t::opcode_func_3fc,
- (insn_func_t)&processor_t::opcode_func_3fd,
- (insn_func_t)&processor_t::opcode_func_3fe,
- (insn_func_t)&processor_t::opcode_func_3ff,
-};
diff --git a/riscv/dispatch_0.cc b/riscv/dispatch_0.cc
deleted file mode 100644
index a22acd2..0000000
--- a/riscv/dispatch_0.cc
+++ /dev/null
@@ -1,887 +0,0 @@
-#include "insn_includes.h"
-
-reg_t processor_t::opcode_func_000(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_00a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_014(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_01e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_028(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_032(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_03c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001c);
- #include "insns/c_add3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_046(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_050(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_05a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_064(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_06e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_078(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_082(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_08c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_096(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0a0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0aa(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0b4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0be(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0c8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0d2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0dc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001c);
- #include "insns/c_add3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0e6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0f0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0fa(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_104(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_10e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_118(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_122(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_12c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_136(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_140(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_14a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_154(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_15e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_168(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_172(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_17c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000011c);
- #include "insns/c_sub3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_186(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_190(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_19a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1a4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1ae(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1b8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1c2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1cc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1d6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1e0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1ea(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1f4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1fe(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_208(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_212(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_21c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000021c);
- #include "insns/c_or3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_226(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_230(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_23a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_244(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_24e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_258(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_262(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_26c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_276(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_280(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_28a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_294(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_29e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2a8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2b2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2bc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000021c);
- #include "insns/c_or3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2c6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2d0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2da(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2e4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2ee(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2f8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_302(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_30c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_316(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_320(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_32a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_334(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_33e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_348(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_352(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_35c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000031c);
- #include "insns/c_and3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_366(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_370(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_37a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_384(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_38e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_398(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3a2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3ac(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3b6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3c0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3ca(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3d4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3de(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3e8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3f2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3fc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000031c);
- #include "insns/c_and3.h"
- return npc;
-}
-
diff --git a/riscv/dispatch_1.cc b/riscv/dispatch_1.cc
deleted file mode 100644
index 2ec169a..0000000
--- a/riscv/dispatch_1.cc
+++ /dev/null
@@ -1,1227 +0,0 @@
-#include "insn_includes.h"
-
-reg_t processor_t::opcode_func_001(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_00b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x3fffff) == 0xb)
- {
- reg_t npc = pc + insn_length(0x0000000b);
- #include "insns/vlb.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x100b)
- {
- reg_t npc = pc + insn_length(0x0000100b);
- #include "insns/vlstb.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0x80b)
- {
- reg_t npc = pc + insn_length(0x0000080b);
- #include "insns/vlsegstb.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x200b)
- {
- reg_t npc = pc + insn_length(0x0000200b);
- #include "insns/vlsegb.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_015(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_01f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_029(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_033(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x33)
- {
- reg_t npc = pc + insn_length(0x00000033);
- #include "insns/add.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x433)
- {
- reg_t npc = pc + insn_length(0x00000433);
- #include "insns/mul.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x10033)
- {
- reg_t npc = pc + insn_length(0x00010033);
- #include "insns/sub.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_03d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_047(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000047);
- #include "insns/fmsub_s.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_051(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_05b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_065(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_06f(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000006f);
- #include "insns/jal.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_079(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_083(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000083);
- #include "insns/lh.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_08d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_097(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0a1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ab(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0b5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0bf(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0c9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0d3(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x180d3)
- {
- reg_t npc = pc + insn_length(0x000180d3);
- #include "insns/fmin_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xc0d3)
- {
- reg_t npc = pc + insn_length(0x0000c0d3);
- #include "insns/fcvt_d_l.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xe0d3)
- {
- reg_t npc = pc + insn_length(0x0000e0d3);
- #include "insns/fcvt_d_w.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x100d3)
- {
- reg_t npc = pc + insn_length(0x000100d3);
- #include "insns/fcvt_d_s.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x190d3)
- {
- reg_t npc = pc + insn_length(0x000190d3);
- #include "insns/fmax_d.h"
- return npc;
- }
- if((insn.bits & 0x7c1ffff) == 0x1c0d3)
- {
- reg_t npc = pc + insn_length(0x0001c0d3);
- #include "insns/mftx_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x170d3)
- {
- reg_t npc = pc + insn_length(0x000170d3);
- #include "insns/fle_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x160d3)
- {
- reg_t npc = pc + insn_length(0x000160d3);
- #include "insns/flt_d.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x20d3)
- {
- reg_t npc = pc + insn_length(0x000020d3);
- #include "insns/fmul_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x70d3)
- {
- reg_t npc = pc + insn_length(0x000070d3);
- #include "insns/fsgnjx_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x150d3)
- {
- reg_t npc = pc + insn_length(0x000150d3);
- #include "insns/feq_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xf0d3)
- {
- reg_t npc = pc + insn_length(0x0000f0d3);
- #include "insns/fcvt_d_wu.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xb0d3)
- {
- reg_t npc = pc + insn_length(0x0000b0d3);
- #include "insns/fcvt_wu_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x60d3)
- {
- reg_t npc = pc + insn_length(0x000060d3);
- #include "insns/fsgnjn_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xd0d3)
- {
- reg_t npc = pc + insn_length(0x0000d0d3);
- #include "insns/fcvt_d_lu.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xa0d3)
- {
- reg_t npc = pc + insn_length(0x0000a0d3);
- #include "insns/fcvt_w_d.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x1e0d3)
- {
- reg_t npc = pc + insn_length(0x0001e0d3);
- #include "insns/mxtf_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x50d3)
- {
- reg_t npc = pc + insn_length(0x000050d3);
- #include "insns/fsgnj_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x80d3)
- {
- reg_t npc = pc + insn_length(0x000080d3);
- #include "insns/fcvt_l_d.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0xd3)
- {
- reg_t npc = pc + insn_length(0x000000d3);
- #include "insns/fadd_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x90d3)
- {
- reg_t npc = pc + insn_length(0x000090d3);
- #include "insns/fcvt_lu_d.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x10d3)
- {
- reg_t npc = pc + insn_length(0x000010d3);
- #include "insns/fsub_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x40d3)
- {
- reg_t npc = pc + insn_length(0x000040d3);
- #include "insns/fsqrt_d.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x30d3)
- {
- reg_t npc = pc + insn_length(0x000030d3);
- #include "insns/fdiv_d.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0dd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0e7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000067);
- #include "insns/j.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0f1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0fb(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x7ffffff) == 0xfb)
- {
- reg_t npc = pc + insn_length(0x000000fb);
- #include "insns/di.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_105(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_10f(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x150f)
- {
- reg_t npc = pc + insn_length(0x0000150f);
- #include "insns/vfsstw.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0x90f)
- {
- reg_t npc = pc + insn_length(0x0000090f);
- #include "insns/vssegstw.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x10f)
- {
- reg_t npc = pc + insn_length(0x0000010f);
- #include "insns/vsw.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x110f)
- {
- reg_t npc = pc + insn_length(0x0000110f);
- #include "insns/vsstw.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0xd0f)
- {
- reg_t npc = pc + insn_length(0x00000d0f);
- #include "insns/vfssegstw.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x210f)
- {
- reg_t npc = pc + insn_length(0x0000210f);
- #include "insns/vssegw.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x50f)
- {
- reg_t npc = pc + insn_length(0x0000050f);
- #include "insns/vfsw.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x250f)
- {
- reg_t npc = pc + insn_length(0x0000250f);
- #include "insns/vfssegw.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_119(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_123(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000123);
- #include "insns/sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_12d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_137(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000037);
- #include "insns/lui.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_141(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_14b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_155(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_15f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_169(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_173(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x1173)
- {
- reg_t npc = pc + insn_length(0x00001173);
- #include "insns/vfmst.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x1973)
- {
- reg_t npc = pc + insn_length(0x00001973);
- #include "insns/vfmts.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x973)
- {
- reg_t npc = pc + insn_length(0x00000973);
- #include "insns/vfmsv.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x173)
- {
- reg_t npc = pc + insn_length(0x00000173);
- #include "insns/vfmvv.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_17d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_187(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000187);
- #include "insns/fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_191(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_19b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1a5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1af(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1b9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1c3(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1cd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1d7(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1e1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1eb(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1f5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1ff(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_209(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_213(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000213);
- #include "insns/xori.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_21d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_227(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_231(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_23b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x63b)
- {
- reg_t npc = pc + insn_length(0x0000063b);
- #include "insns/divw.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_245(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_24f(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000004f);
- #include "insns/fnmadd_s.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_259(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_263(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000263);
- #include "insns/blt.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_26d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_277(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x7ffffff) == 0x277)
- {
- reg_t npc = pc + insn_length(0x00000277);
- #include "insns/rdcycle.h"
- return npc;
- }
- if((insn.bits & 0x7ffffff) == 0xa77)
- {
- reg_t npc = pc + insn_length(0x00000a77);
- #include "insns/rdinstret.h"
- return npc;
- }
- if((insn.bits & 0x7ffffff) == 0x677)
- {
- reg_t npc = pc + insn_length(0x00000677);
- #include "insns/rdtime.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_281(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_28b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x128b)
- {
- reg_t npc = pc + insn_length(0x0000128b);
- #include "insns/vlsthu.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0xa8b)
- {
- reg_t npc = pc + insn_length(0x00000a8b);
- #include "insns/vlsegsthu.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x28b)
- {
- reg_t npc = pc + insn_length(0x0000028b);
- #include "insns/vlhu.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x228b)
- {
- reg_t npc = pc + insn_length(0x0000228b);
- #include "insns/vlseghu.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_295(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_29f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2a9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2b3(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x102b3)
- {
- reg_t npc = pc + insn_length(0x000102b3);
- #include "insns/sra.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x2b3)
- {
- reg_t npc = pc + insn_length(0x000002b3);
- #include "insns/srl.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x6b3)
- {
- reg_t npc = pc + insn_length(0x000006b3);
- #include "insns/divu.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2bd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2c7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000c7);
- #include "insns/fmsub_d.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2d1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2db(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2e5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2ef(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000006f);
- #include "insns/jal.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2f9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_303(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000303);
- #include "insns/lwu.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_30d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_317(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_321(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_32b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_335(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_33f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_349(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_353(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_35d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_367(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000067);
- #include "insns/j.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_371(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_37b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_385(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_38f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_399(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3a3(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3ad(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3b7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000037);
- #include "insns/lui.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3c1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3cb(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3d5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3df(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3e9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3f3(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xf80003ff) == 0x3f3)
- {
- reg_t npc = pc + insn_length(0x000003f3);
- #include "insns/vf.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3fd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
diff --git a/riscv/dispatch_2.cc b/riscv/dispatch_2.cc
deleted file mode 100644
index 3f9871f..0000000
--- a/riscv/dispatch_2.cc
+++ /dev/null
@@ -1,887 +0,0 @@
-#include "insn_includes.h"
-
-reg_t processor_t::opcode_func_002(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_00c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_016(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_020(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_02a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_034(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_03e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_048(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_052(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_05c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001c);
- #include "insns/c_add3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_066(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_070(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_07a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_084(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_08e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_098(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0a2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0ac(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0b6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0c0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ca(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0d4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0de(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0e8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0f2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0fc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001c);
- #include "insns/c_add3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_106(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_110(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_11a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_124(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_12e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_138(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_142(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_14c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_156(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_160(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_16a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_174(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_17e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_188(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_192(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_19c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000011c);
- #include "insns/c_sub3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1a6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1b0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1ba(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1c4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1ce(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1d8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1e2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1ec(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1f6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_200(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_20a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_214(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_21e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_228(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_232(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_23c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000021c);
- #include "insns/c_or3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_246(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_250(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_25a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_264(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_26e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_278(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_282(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_28c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_296(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2a0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2aa(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2b4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2be(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2c8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2d2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2dc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000021c);
- #include "insns/c_or3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2e6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2f0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2fa(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_304(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_30e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_318(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_322(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_32c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_336(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_340(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_34a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_354(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_35e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_368(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_372(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_37c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000031c);
- #include "insns/c_and3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_386(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_390(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_39a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3a4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3ae(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3b8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3c2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3cc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3d6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3e0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3ea(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3f4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3fe(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
diff --git a/riscv/dispatch_3.cc b/riscv/dispatch_3.cc
deleted file mode 100644
index a3e7a8f..0000000
--- a/riscv/dispatch_3.cc
+++ /dev/null
@@ -1,1211 +0,0 @@
-#include "insn_includes.h"
-
-reg_t processor_t::opcode_func_003(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000003);
- #include "insns/lb.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_00d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_017(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_021(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_02b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_035(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_03f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_049(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_053(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x3ff1ff) == 0x9053)
- {
- reg_t npc = pc + insn_length(0x00009053);
- #include "insns/fcvt_lu_s.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x18053)
- {
- reg_t npc = pc + insn_length(0x00018053);
- #include "insns/fmin_s.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x11053)
- {
- reg_t npc = pc + insn_length(0x00011053);
- #include "insns/fcvt_s_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xe053)
- {
- reg_t npc = pc + insn_length(0x0000e053);
- #include "insns/fcvt_s_w.h"
- return npc;
- }
- if((insn.bits & 0x7c1ffff) == 0x1c053)
- {
- reg_t npc = pc + insn_length(0x0001c053);
- #include "insns/mftx_s.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x8053)
- {
- reg_t npc = pc + insn_length(0x00008053);
- #include "insns/fcvt_l_s.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x17053)
- {
- reg_t npc = pc + insn_length(0x00017053);
- #include "insns/fle_s.h"
- return npc;
- }
- if((insn.bits & 0x7ffffff) == 0x1d053)
- {
- reg_t npc = pc + insn_length(0x0001d053);
- #include "insns/mffsr.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x3053)
- {
- reg_t npc = pc + insn_length(0x00003053);
- #include "insns/fdiv_s.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x1f053)
- {
- reg_t npc = pc + insn_length(0x0001f053);
- #include "insns/mtfsr.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xd053)
- {
- reg_t npc = pc + insn_length(0x0000d053);
- #include "insns/fcvt_s_lu.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x2053)
- {
- reg_t npc = pc + insn_length(0x00002053);
- #include "insns/fmul_s.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x16053)
- {
- reg_t npc = pc + insn_length(0x00016053);
- #include "insns/flt_s.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x15053)
- {
- reg_t npc = pc + insn_length(0x00015053);
- #include "insns/feq_s.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x7053)
- {
- reg_t npc = pc + insn_length(0x00007053);
- #include "insns/fsgnjx_s.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x19053)
- {
- reg_t npc = pc + insn_length(0x00019053);
- #include "insns/fmax_s.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xb053)
- {
- reg_t npc = pc + insn_length(0x0000b053);
- #include "insns/fcvt_wu_s.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x1e053)
- {
- reg_t npc = pc + insn_length(0x0001e053);
- #include "insns/mxtf_s.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x1053)
- {
- reg_t npc = pc + insn_length(0x00001053);
- #include "insns/fsub_s.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x5053)
- {
- reg_t npc = pc + insn_length(0x00005053);
- #include "insns/fsgnj_s.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xf053)
- {
- reg_t npc = pc + insn_length(0x0000f053);
- #include "insns/fcvt_s_wu.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xc053)
- {
- reg_t npc = pc + insn_length(0x0000c053);
- #include "insns/fcvt_s_l.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xa053)
- {
- reg_t npc = pc + insn_length(0x0000a053);
- #include "insns/fcvt_w_s.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x4053)
- {
- reg_t npc = pc + insn_length(0x00004053);
- #include "insns/fsqrt_s.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x6053)
- {
- reg_t npc = pc + insn_length(0x00006053);
- #include "insns/fsgnjn_s.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x53)
- {
- reg_t npc = pc + insn_length(0x00000053);
- #include "insns/fadd_s.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_05d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_067(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000067);
- #include "insns/j.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_071(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_07b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x7ffffff) == 0x7b)
- {
- reg_t npc = pc + insn_length(0x0000007b);
- #include "insns/ei.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_085(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_08f(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xfff) == 0x88f)
- {
- reg_t npc = pc + insn_length(0x0000088f);
- #include "insns/vssegsth.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x108f)
- {
- reg_t npc = pc + insn_length(0x0000108f);
- #include "insns/vssth.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x8f)
- {
- reg_t npc = pc + insn_length(0x0000008f);
- #include "insns/vsh.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x208f)
- {
- reg_t npc = pc + insn_length(0x0000208f);
- #include "insns/vssegh.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_099(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0a3(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000a3);
- #include "insns/sh.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ad(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0b7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000037);
- #include "insns/lui.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0c1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0cb(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000cb);
- #include "insns/fnmsub_d.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0d5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0df(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0e9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0f3(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000f3);
- #include "insns/vvcfgivl.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0fd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_107(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000107);
- #include "insns/flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_111(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_11b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_125(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_12f(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000012f);
- #include "insns/fence.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_139(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_143(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_14d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_157(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_161(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_16b(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000016b);
- #include "insns/jalr_j.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_175(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_17f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_189(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_193(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000193);
- #include "insns/sltiu.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_19d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1a7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000001a7);
- #include "insns/fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1b1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1bb(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1c5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1cf(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1d9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1e3(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1ed(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1f7(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x7ffffff) == 0x1f7)
- {
- reg_t npc = pc + insn_length(0x000001f7);
- #include "insns/utidx.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_201(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_20b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x120b)
- {
- reg_t npc = pc + insn_length(0x0000120b);
- #include "insns/vlstbu.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x220b)
- {
- reg_t npc = pc + insn_length(0x0000220b);
- #include "insns/vlsegbu.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0xa0b)
- {
- reg_t npc = pc + insn_length(0x00000a0b);
- #include "insns/vlsegstbu.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x20b)
- {
- reg_t npc = pc + insn_length(0x0000020b);
- #include "insns/vlbu.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_215(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_21f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_229(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_233(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x633)
- {
- reg_t npc = pc + insn_length(0x00000633);
- #include "insns/div.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x233)
- {
- reg_t npc = pc + insn_length(0x00000233);
- #include "insns/xor.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_23d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_247(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000047);
- #include "insns/fmsub_s.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_251(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_25b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_265(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_26f(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000006f);
- #include "insns/jal.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_279(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_283(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000283);
- #include "insns/lhu.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_28d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_297(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2a1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2ab(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2b5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2bf(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2c9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2d3(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x3ff1ff) == 0xc0d3)
- {
- reg_t npc = pc + insn_length(0x0000c0d3);
- #include "insns/fcvt_d_l.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xe0d3)
- {
- reg_t npc = pc + insn_length(0x0000e0d3);
- #include "insns/fcvt_d_w.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x100d3)
- {
- reg_t npc = pc + insn_length(0x000100d3);
- #include "insns/fcvt_d_s.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x20d3)
- {
- reg_t npc = pc + insn_length(0x000020d3);
- #include "insns/fmul_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xf0d3)
- {
- reg_t npc = pc + insn_length(0x0000f0d3);
- #include "insns/fcvt_d_wu.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xb0d3)
- {
- reg_t npc = pc + insn_length(0x0000b0d3);
- #include "insns/fcvt_wu_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xd0d3)
- {
- reg_t npc = pc + insn_length(0x0000d0d3);
- #include "insns/fcvt_d_lu.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xa0d3)
- {
- reg_t npc = pc + insn_length(0x0000a0d3);
- #include "insns/fcvt_w_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x80d3)
- {
- reg_t npc = pc + insn_length(0x000080d3);
- #include "insns/fcvt_l_d.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0xd3)
- {
- reg_t npc = pc + insn_length(0x000000d3);
- #include "insns/fadd_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x90d3)
- {
- reg_t npc = pc + insn_length(0x000090d3);
- #include "insns/fcvt_lu_d.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x10d3)
- {
- reg_t npc = pc + insn_length(0x000010d3);
- #include "insns/fsub_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x40d3)
- {
- reg_t npc = pc + insn_length(0x000040d3);
- #include "insns/fsqrt_d.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x30d3)
- {
- reg_t npc = pc + insn_length(0x000030d3);
- #include "insns/fdiv_d.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2dd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2e7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000067);
- #include "insns/j.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2f1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2fb(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xffffffff) == 0x2fb)
- {
- reg_t npc = pc + insn_length(0x000002fb);
- #include "insns/cflush.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_305(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_30f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_319(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_323(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_32d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_337(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000037);
- #include "insns/lui.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_341(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_34b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_355(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_35f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_369(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_373(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_37d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_387(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_391(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_39b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3a5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3af(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000003af);
- #include "insns/fence_g_cv.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3b9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3c3(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3cd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3d7(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3e1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3eb(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3f5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3ff(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
diff --git a/riscv/dispatch_4.cc b/riscv/dispatch_4.cc
deleted file mode 100644
index 294ff1a..0000000
--- a/riscv/dispatch_4.cc
+++ /dev/null
@@ -1,880 +0,0 @@
-#include "insn_includes.h"
-
-reg_t processor_t::opcode_func_004(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_00e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_018(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_022(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_02c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_036(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_040(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_04a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_054(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_05e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_068(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_072(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_07c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001c);
- #include "insns/c_add3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_086(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_090(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_09a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0a4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ae(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0b8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0c2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0cc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0d6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0e0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ea(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0f4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0fe(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_108(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_112(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_11c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000011c);
- #include "insns/c_sub3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_126(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_130(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_13a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_144(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_14e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_158(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_162(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_16c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_176(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_180(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_18a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_194(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_19e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1a8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1b2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1bc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000011c);
- #include "insns/c_sub3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1c6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1d0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1da(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1e4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1ee(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1f8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_202(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_20c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_216(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_220(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_22a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_234(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_23e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_248(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_252(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_25c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000021c);
- #include "insns/c_or3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_266(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_270(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_27a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_284(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_28e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_298(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2a2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2ac(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2b6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2c0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2ca(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2d4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2de(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2e8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2f2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2fc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000021c);
- #include "insns/c_or3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_306(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_310(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_31a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_324(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_32e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_338(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_342(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_34c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_356(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_360(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_36a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_374(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_37e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_388(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_392(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_39c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000031c);
- #include "insns/c_and3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3a6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3b0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3ba(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3c4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3ce(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3d8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3e2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3ec(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3f6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
diff --git a/riscv/dispatch_5.cc b/riscv/dispatch_5.cc
deleted file mode 100644
index 37dc146..0000000
--- a/riscv/dispatch_5.cc
+++ /dev/null
@@ -1,1148 +0,0 @@
-#include "insn_includes.h"
-
-reg_t processor_t::opcode_func_005(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_00f(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xfff) == 0x80f)
- {
- reg_t npc = pc + insn_length(0x0000080f);
- #include "insns/vssegstb.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0xf)
- {
- reg_t npc = pc + insn_length(0x0000000f);
- #include "insns/vsb.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x100f)
- {
- reg_t npc = pc + insn_length(0x0000100f);
- #include "insns/vsstb.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x200f)
- {
- reg_t npc = pc + insn_length(0x0000200f);
- #include "insns/vssegb.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_019(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_023(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000023);
- #include "insns/sb.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_02d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_037(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000037);
- #include "insns/lui.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_041(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_04b(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000004b);
- #include "insns/fnmsub_s.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_055(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_05f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_069(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_073(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x1873)
- {
- reg_t npc = pc + insn_length(0x00001873);
- #include "insns/vmts.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x73)
- {
- reg_t npc = pc + insn_length(0x00000073);
- #include "insns/vmvv.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x873)
- {
- reg_t npc = pc + insn_length(0x00000873);
- #include "insns/vmsv.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x1073)
- {
- reg_t npc = pc + insn_length(0x00001073);
- #include "insns/vmst.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_07d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_087(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_091(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_09b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x3f83ff) == 0x9b)
- {
- reg_t npc = pc + insn_length(0x0000009b);
- #include "insns/slliw.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0a5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0af(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000af);
- #include "insns/fence_i.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0b9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0c3(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000c3);
- #include "insns/fmadd_d.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0cd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0d7(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0e1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0eb(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000eb);
- #include "insns/jalr_r.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0f5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ff(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_109(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_113(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000113);
- #include "insns/slti.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_11d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_127(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000127);
- #include "insns/fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_131(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_13b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_145(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_14f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_159(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_163(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_16d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_177(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xffffffff) == 0x177)
- {
- reg_t npc = pc + insn_length(0x00000177);
- #include "insns/stop.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_181(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_18b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x158b)
- {
- reg_t npc = pc + insn_length(0x0000158b);
- #include "insns/vflstd.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x18b)
- {
- reg_t npc = pc + insn_length(0x0000018b);
- #include "insns/vld.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x118b)
- {
- reg_t npc = pc + insn_length(0x0000118b);
- #include "insns/vlstd.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0x98b)
- {
- reg_t npc = pc + insn_length(0x0000098b);
- #include "insns/vlsegstd.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x258b)
- {
- reg_t npc = pc + insn_length(0x0000258b);
- #include "insns/vflsegd.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0xd8b)
- {
- reg_t npc = pc + insn_length(0x00000d8b);
- #include "insns/vflsegstd.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x58b)
- {
- reg_t npc = pc + insn_length(0x0000058b);
- #include "insns/vfld.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x218b)
- {
- reg_t npc = pc + insn_length(0x0000218b);
- #include "insns/vlsegd.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_195(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_19f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1a9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1b3(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x1b3)
- {
- reg_t npc = pc + insn_length(0x000001b3);
- #include "insns/sltu.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x5b3)
- {
- reg_t npc = pc + insn_length(0x000005b3);
- #include "insns/mulhu.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1bd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1c7(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1d1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1db(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1e5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1ef(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000006f);
- #include "insns/jal.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1f9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_203(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000203);
- #include "insns/lbu.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_20d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_217(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_221(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_22b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_235(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_23f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_249(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_253(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x3ff1ff) == 0x9053)
- {
- reg_t npc = pc + insn_length(0x00009053);
- #include "insns/fcvt_lu_s.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x11053)
- {
- reg_t npc = pc + insn_length(0x00011053);
- #include "insns/fcvt_s_d.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xe053)
- {
- reg_t npc = pc + insn_length(0x0000e053);
- #include "insns/fcvt_s_w.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x8053)
- {
- reg_t npc = pc + insn_length(0x00008053);
- #include "insns/fcvt_l_s.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x3053)
- {
- reg_t npc = pc + insn_length(0x00003053);
- #include "insns/fdiv_s.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xd053)
- {
- reg_t npc = pc + insn_length(0x0000d053);
- #include "insns/fcvt_s_lu.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x2053)
- {
- reg_t npc = pc + insn_length(0x00002053);
- #include "insns/fmul_s.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xb053)
- {
- reg_t npc = pc + insn_length(0x0000b053);
- #include "insns/fcvt_wu_s.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x1053)
- {
- reg_t npc = pc + insn_length(0x00001053);
- #include "insns/fsub_s.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xf053)
- {
- reg_t npc = pc + insn_length(0x0000f053);
- #include "insns/fcvt_s_wu.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xc053)
- {
- reg_t npc = pc + insn_length(0x0000c053);
- #include "insns/fcvt_s_l.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0xa053)
- {
- reg_t npc = pc + insn_length(0x0000a053);
- #include "insns/fcvt_w_s.h"
- return npc;
- }
- if((insn.bits & 0x3ff1ff) == 0x4053)
- {
- reg_t npc = pc + insn_length(0x00004053);
- #include "insns/fsqrt_s.h"
- return npc;
- }
- if((insn.bits & 0x1f1ff) == 0x53)
- {
- reg_t npc = pc + insn_length(0x00000053);
- #include "insns/fadd_s.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_25d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_267(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000067);
- #include "insns/j.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_271(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_27b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xffffffff) == 0x27b)
- {
- reg_t npc = pc + insn_length(0x0000027b);
- #include "insns/eret.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_285(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_28f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_299(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2a3(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2ad(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2b7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000037);
- #include "insns/lui.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2c1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2cb(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000cb);
- #include "insns/fnmsub_d.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2d5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2df(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2e9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2f3(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x3fffff) == 0x2f3)
- {
- reg_t npc = pc + insn_length(0x000002f3);
- #include "insns/vsetvl.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2fd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_307(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_311(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_31b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_325(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_32f(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000032f);
- #include "insns/fence_l_cv.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_339(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_343(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_34d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_357(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_361(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_36b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_375(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_37f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_389(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_393(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000393);
- #include "insns/andi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_39d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3a7(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3b1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3bb(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x7bb)
- {
- reg_t npc = pc + insn_length(0x000007bb);
- #include "insns/remuw.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3c5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3cf(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3d9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3e3(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000003e3);
- #include "insns/bgeu.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3ed(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3f7(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
diff --git a/riscv/dispatch_6.cc b/riscv/dispatch_6.cc
deleted file mode 100644
index 11a3c04..0000000
--- a/riscv/dispatch_6.cc
+++ /dev/null
@@ -1,880 +0,0 @@
-#include "insn_includes.h"
-
-reg_t processor_t::opcode_func_006(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_010(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_01a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_024(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_02e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_038(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_042(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_04c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_056(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_060(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_06a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_074(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_07e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_088(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_092(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_09c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001c);
- #include "insns/c_add3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0a6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0b0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ba(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0c4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ce(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0d8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0e2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0ec(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0f6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_100(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_10a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_114(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_11e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_128(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_132(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_13c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000011c);
- #include "insns/c_sub3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_146(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_150(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_15a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_164(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_16e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_178(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_182(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_18c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_196(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1a0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1aa(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1b4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1be(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1c8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1d2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1dc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000011c);
- #include "insns/c_sub3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1e6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1f0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1fa(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_204(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_20e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_218(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_222(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_22c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_236(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_240(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_24a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_254(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_25e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_268(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_272(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_27c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000021c);
- #include "insns/c_or3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_286(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_290(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_29a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2a4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2ae(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2b8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2c2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2cc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2d6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2e0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2ea(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2f4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2fe(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_308(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_312(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_31c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000031c);
- #include "insns/c_and3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_326(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_330(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_33a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_344(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_34e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_358(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_362(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_36c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_376(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_380(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_38a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_394(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_39e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3a8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3b2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3bc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000031c);
- #include "insns/c_and3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3c6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3d0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3da(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3e4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3ee(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3f8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
diff --git a/riscv/dispatch_7.cc b/riscv/dispatch_7.cc
deleted file mode 100644
index 7e8dbd8..0000000
--- a/riscv/dispatch_7.cc
+++ /dev/null
@@ -1,1086 +0,0 @@
-#include "insn_includes.h"
-
-reg_t processor_t::opcode_func_007(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_011(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_01b(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001b);
- #include "insns/addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_025(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_02f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_039(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_043(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000043);
- #include "insns/fmadd_s.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_04d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_057(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_061(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_06b(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000006b);
- #include "insns/jalr_c.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_075(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_07f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_089(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_093(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x3f03ff) == 0x93)
- {
- reg_t npc = pc + insn_length(0x00000093);
- #include "insns/slli.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_09d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0a7(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0b1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0bb(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0xbb)
- {
- reg_t npc = pc + insn_length(0x000000bb);
- #include "insns/sllw.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0c5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0cf(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000cf);
- #include "insns/fnmadd_d.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0d9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0e3(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000e3);
- #include "insns/bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ed(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0f7(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xffffffff) == 0xf7)
- {
- reg_t npc = pc + insn_length(0x000000f7);
- #include "insns/break.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_101(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_10b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x150b)
- {
- reg_t npc = pc + insn_length(0x0000150b);
- #include "insns/vflstw.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x10b)
- {
- reg_t npc = pc + insn_length(0x0000010b);
- #include "insns/vlw.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x110b)
- {
- reg_t npc = pc + insn_length(0x0000110b);
- #include "insns/vlstw.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0x90b)
- {
- reg_t npc = pc + insn_length(0x0000090b);
- #include "insns/vlsegstw.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x250b)
- {
- reg_t npc = pc + insn_length(0x0000250b);
- #include "insns/vflsegw.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0xd0b)
- {
- reg_t npc = pc + insn_length(0x00000d0b);
- #include "insns/vflsegstw.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x50b)
- {
- reg_t npc = pc + insn_length(0x0000050b);
- #include "insns/vflw.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x210b)
- {
- reg_t npc = pc + insn_length(0x0000210b);
- #include "insns/vlsegw.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_115(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_11f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_129(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_133(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x533)
- {
- reg_t npc = pc + insn_length(0x00000533);
- #include "insns/mulhsu.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x133)
- {
- reg_t npc = pc + insn_length(0x00000133);
- #include "insns/slt.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_13d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_147(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_151(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_15b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_165(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_16f(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000006f);
- #include "insns/jal.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_179(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_183(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000183);
- #include "insns/ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_18d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_197(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1a1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1ab(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x19ab)
- {
- reg_t npc = pc + insn_length(0x000019ab);
- #include "insns/amominu_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x9ab)
- {
- reg_t npc = pc + insn_length(0x000009ab);
- #include "insns/amoand_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x1dab)
- {
- reg_t npc = pc + insn_length(0x00001dab);
- #include "insns/amomaxu_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x1ab)
- {
- reg_t npc = pc + insn_length(0x000001ab);
- #include "insns/amoadd_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x15ab)
- {
- reg_t npc = pc + insn_length(0x000015ab);
- #include "insns/amomax_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0xdab)
- {
- reg_t npc = pc + insn_length(0x00000dab);
- #include "insns/amoor_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x5ab)
- {
- reg_t npc = pc + insn_length(0x000005ab);
- #include "insns/amoswap_d.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x11ab)
- {
- reg_t npc = pc + insn_length(0x000011ab);
- #include "insns/amomin_d.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1b5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1bf(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1c9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1d3(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1dd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1e7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000067);
- #include "insns/j.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1f1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1fb(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xf801ffff) == 0x1fb)
- {
- reg_t npc = pc + insn_length(0x000001fb);
- #include "insns/mtpcr.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_205(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_20f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_219(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_223(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_22d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_237(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000037);
- #include "insns/lui.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_241(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_24b(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000004b);
- #include "insns/fnmsub_s.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_255(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_25f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_269(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_273(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_27d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_287(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_291(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_29b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x3f83ff) == 0x29b)
- {
- reg_t npc = pc + insn_length(0x0000029b);
- #include "insns/srliw.h"
- return npc;
- }
- if((insn.bits & 0x3f83ff) == 0x1029b)
- {
- reg_t npc = pc + insn_length(0x0001029b);
- #include "insns/sraiw.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2a5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2af(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000002af);
- #include "insns/fence_g_v.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2b9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2c3(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000c3);
- #include "insns/fmadd_d.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2cd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2d7(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2e1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2eb(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2f5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2ff(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_309(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_313(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000313);
- #include "insns/ori.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_31d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_327(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_331(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_33b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x73b)
- {
- reg_t npc = pc + insn_length(0x0000073b);
- #include "insns/remw.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_345(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_34f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_359(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_363(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000363);
- #include "insns/bltu.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_36d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_377(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_381(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_38b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_395(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_39f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3a9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3b3(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x7b3)
- {
- reg_t npc = pc + insn_length(0x000007b3);
- #include "insns/remu.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x3b3)
- {
- reg_t npc = pc + insn_length(0x000003b3);
- #include "insns/and.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3bd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3c7(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3d1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3db(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3e5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3ef(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000006f);
- #include "insns/jal.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3f9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
diff --git a/riscv/dispatch_8.cc b/riscv/dispatch_8.cc
deleted file mode 100644
index 3dd44dd..0000000
--- a/riscv/dispatch_8.cc
+++ /dev/null
@@ -1,892 +0,0 @@
-#include "insn_includes.h"
-
-reg_t processor_t::opcode_func_008(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_012(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_01c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001c);
- #include "insns/c_add3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_026(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_030(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_03a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_044(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_04e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_058(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_062(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_06c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_076(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_080(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_08a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_094(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_09e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0a8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0b2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0bc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001c);
- #include "insns/c_add3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0c6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0d0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0da(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0e4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ee(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0f8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_102(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_10c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_116(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_120(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_12a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_134(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_13e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_148(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_152(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_15c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000011c);
- #include "insns/c_sub3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_166(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_170(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_17a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_184(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_18e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_198(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1a2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1ac(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1b6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1c0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1ca(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1d4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1de(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1e8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1f2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1fc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000011c);
- #include "insns/c_sub3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_206(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_210(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_21a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_224(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_22e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_238(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_242(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_24c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_256(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_260(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_26a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_274(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_27e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_288(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_292(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_29c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000021c);
- #include "insns/c_or3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2a6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2b0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2ba(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2c4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2ce(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2d8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2e2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2ec(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2f6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_300(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_30a(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_314(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_31e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_328(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_332(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_33c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000031c);
- #include "insns/c_and3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_346(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_350(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_35a(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_364(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000004);
- #include "insns/c_ldsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_36e(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_378(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000018);
- #include "insns/c_fsd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_382(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x2)
- {
- reg_t npc = pc + insn_length(0x00000002);
- #include "insns/c_move.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8002)
- {
- reg_t npc = pc + insn_length(0x00008002);
- #include "insns/c_j.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_38c(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000c);
- #include "insns/c_sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_396(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000016);
- #include "insns/c_fsw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3a0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000000);
- #include "insns/c_li.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3aa(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000a);
- #include "insns/c_lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3b4(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000014);
- #include "insns/c_flw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3be(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3c8(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000008);
- #include "insns/c_swsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3d2(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x12)
- {
- reg_t npc = pc + insn_length(0x00000012);
- #include "insns/c_lw0.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x8012)
- {
- reg_t npc = pc + insn_length(0x00008012);
- #include "insns/c_ld0.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3dc(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000031c);
- #include "insns/c_and3.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3e6(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000006);
- #include "insns/c_sdsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3f0(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000010);
- #include "insns/c_beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3fa(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x801f) == 0x801a)
- {
- reg_t npc = pc + insn_length(0x0000801a);
- #include "insns/c_sub.h"
- return npc;
- }
- if((insn.bits & 0x801f) == 0x1a)
- {
- reg_t npc = pc + insn_length(0x0000001a);
- #include "insns/c_add.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
diff --git a/riscv/dispatch_9.cc b/riscv/dispatch_9.cc
deleted file mode 100644
index eb5d76c..0000000
--- a/riscv/dispatch_9.cc
+++ /dev/null
@@ -1,1144 +0,0 @@
-#include "insn_includes.h"
-
-reg_t processor_t::opcode_func_009(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_013(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000013);
- #include "insns/addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_01d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_027(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_031(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_03b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x43b)
- {
- reg_t npc = pc + insn_length(0x0000043b);
- #include "insns/mulw.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x3b)
- {
- reg_t npc = pc + insn_length(0x0000003b);
- #include "insns/addw.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x1003b)
- {
- reg_t npc = pc + insn_length(0x0001003b);
- #include "insns/subw.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_045(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_04f(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000004f);
- #include "insns/fnmadd_s.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_059(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_063(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000063);
- #include "insns/beq.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_06d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_077(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xffffffff) == 0x77)
- {
- reg_t npc = pc + insn_length(0x00000077);
- #include "insns/syscall.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_081(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_08b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x3fffff) == 0x8b)
- {
- reg_t npc = pc + insn_length(0x0000008b);
- #include "insns/vlh.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x108b)
- {
- reg_t npc = pc + insn_length(0x0000108b);
- #include "insns/vlsth.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0x88b)
- {
- reg_t npc = pc + insn_length(0x0000088b);
- #include "insns/vlsegsth.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x208b)
- {
- reg_t npc = pc + insn_length(0x0000208b);
- #include "insns/vlsegh.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_095(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_09f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0a9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0b3(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0xb3)
- {
- reg_t npc = pc + insn_length(0x000000b3);
- #include "insns/sll.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x4b3)
- {
- reg_t npc = pc + insn_length(0x000004b3);
- #include "insns/mulh.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0bd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0c7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000c7);
- #include "insns/fmsub_d.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0d1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0db(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_0e5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0ef(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000006f);
- #include "insns/jal.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_0f9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_103(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000103);
- #include "insns/lw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_10d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_117(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_121(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_12b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x192b)
- {
- reg_t npc = pc + insn_length(0x0000192b);
- #include "insns/amominu_w.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x92b)
- {
- reg_t npc = pc + insn_length(0x0000092b);
- #include "insns/amoand_w.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x1d2b)
- {
- reg_t npc = pc + insn_length(0x00001d2b);
- #include "insns/amomaxu_w.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x152b)
- {
- reg_t npc = pc + insn_length(0x0000152b);
- #include "insns/amomax_w.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x12b)
- {
- reg_t npc = pc + insn_length(0x0000012b);
- #include "insns/amoadd_w.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0xd2b)
- {
- reg_t npc = pc + insn_length(0x00000d2b);
- #include "insns/amoor_w.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x112b)
- {
- reg_t npc = pc + insn_length(0x0000112b);
- #include "insns/amomin_w.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x52b)
- {
- reg_t npc = pc + insn_length(0x0000052b);
- #include "insns/amoswap_w.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_135(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_13f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_149(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_153(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_15d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_167(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000067);
- #include "insns/j.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_171(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_17b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x7c1ffff) == 0x17b)
- {
- reg_t npc = pc + insn_length(0x0000017b);
- #include "insns/mfpcr.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_185(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_18f(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xfff) == 0x98f)
- {
- reg_t npc = pc + insn_length(0x0000098f);
- #include "insns/vssegstd.h"
- return npc;
- }
- if((insn.bits & 0xfff) == 0xd8f)
- {
- reg_t npc = pc + insn_length(0x00000d8f);
- #include "insns/vfssegstd.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x118f)
- {
- reg_t npc = pc + insn_length(0x0000118f);
- #include "insns/vsstd.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x218f)
- {
- reg_t npc = pc + insn_length(0x0000218f);
- #include "insns/vssegd.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x158f)
- {
- reg_t npc = pc + insn_length(0x0000158f);
- #include "insns/vfsstd.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x18f)
- {
- reg_t npc = pc + insn_length(0x0000018f);
- #include "insns/vsd.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x58f)
- {
- reg_t npc = pc + insn_length(0x0000058f);
- #include "insns/vfsd.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x258f)
- {
- reg_t npc = pc + insn_length(0x0000258f);
- #include "insns/vfssegd.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_199(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1a3(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000001a3);
- #include "insns/sd.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1ad(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1b7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000037);
- #include "insns/lui.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1c1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1cb(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1d5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1df(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_1e9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1f3(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000001f3);
- #include "insns/vtcfgivl.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_1fd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_207(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_211(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_21b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_225(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_22f(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000022f);
- #include "insns/fence_l_v.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_239(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_243(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000043);
- #include "insns/fmadd_s.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_24d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_257(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_261(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_26b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x7ffffff) == 0x26b)
- {
- reg_t npc = pc + insn_length(0x0000026b);
- #include "insns/rdnpc.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_275(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_27f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_289(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_293(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x3f03ff) == 0x293)
- {
- reg_t npc = pc + insn_length(0x00000293);
- #include "insns/srli.h"
- return npc;
- }
- if((insn.bits & 0x3f03ff) == 0x10293)
- {
- reg_t npc = pc + insn_length(0x00010293);
- #include "insns/srai.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_29d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2a7(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2b1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2bb(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x6bb)
- {
- reg_t npc = pc + insn_length(0x000006bb);
- #include "insns/divuw.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x2bb)
- {
- reg_t npc = pc + insn_length(0x000002bb);
- #include "insns/srlw.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x102bb)
- {
- reg_t npc = pc + insn_length(0x000102bb);
- #include "insns/sraw.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2c5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2cf(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000000cf);
- #include "insns/fnmadd_d.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2d9(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_2e3(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x000002e3);
- #include "insns/bge.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2ed(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_2f7(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x6f7)
- {
- reg_t npc = pc + insn_length(0x000006f7);
- #include "insns/movn.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x2f7)
- {
- reg_t npc = pc + insn_length(0x000002f7);
- #include "insns/movz.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0xef7)
- {
- reg_t npc = pc + insn_length(0x00000ef7);
- #include "insns/fmovn.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0xaf7)
- {
- reg_t npc = pc + insn_length(0x00000af7);
- #include "insns/fmovz.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_301(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_30b(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0xfff) == 0xb0b)
- {
- reg_t npc = pc + insn_length(0x00000b0b);
- #include "insns/vlsegstwu.h"
- return npc;
- }
- if((insn.bits & 0x3fffff) == 0x30b)
- {
- reg_t npc = pc + insn_length(0x0000030b);
- #include "insns/vlwu.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x130b)
- {
- reg_t npc = pc + insn_length(0x0000130b);
- #include "insns/vlstwu.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x230b)
- {
- reg_t npc = pc + insn_length(0x0000230b);
- #include "insns/vlsegwu.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_315(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_31f(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_329(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_333(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1ffff) == 0x733)
- {
- reg_t npc = pc + insn_length(0x00000733);
- #include "insns/rem.h"
- return npc;
- }
- if((insn.bits & 0x1ffff) == 0x333)
- {
- reg_t npc = pc + insn_length(0x00000333);
- #include "insns/or.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_33d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_347(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_351(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_35b(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_365(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000005);
- #include "insns/c_lwsp.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_36f(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000006f);
- #include "insns/jal.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_379(insn_t insn, reg_t pc)
-{
- if((insn.bits & 0x1c1f) == 0x19)
- {
- reg_t npc = pc + insn_length(0x00000019);
- #include "insns/c_slli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x819)
- {
- reg_t npc = pc + insn_length(0x00000819);
- #include "insns/c_srli.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1419)
- {
- reg_t npc = pc + insn_length(0x00001419);
- #include "insns/c_srai32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1819)
- {
- reg_t npc = pc + insn_length(0x00001819);
- #include "insns/c_slliw.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0xc19)
- {
- reg_t npc = pc + insn_length(0x00000c19);
- #include "insns/c_srli32.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x1019)
- {
- reg_t npc = pc + insn_length(0x00001019);
- #include "insns/c_srai.h"
- return npc;
- }
- if((insn.bits & 0x1c1f) == 0x419)
- {
- reg_t npc = pc + insn_length(0x00000419);
- #include "insns/c_slli32.h"
- return npc;
- }
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_383(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_38d(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000000d);
- #include "insns/c_sw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_397(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3a1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000001);
- #include "insns/c_addi.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3ab(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3b5(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000015);
- #include "insns/c_fld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3bf(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3c9(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000009);
- #include "insns/c_ld.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3d3(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
-reg_t processor_t::opcode_func_3dd(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x0000001d);
- #include "insns/c_addiw.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3e7(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000067);
- #include "insns/j.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3f1(insn_t insn, reg_t pc)
-{
- reg_t npc = pc + insn_length(0x00000011);
- #include "insns/c_bne.h"
- return npc;
-}
-
-reg_t processor_t::opcode_func_3fb(insn_t insn, reg_t pc)
-{
- throw trap_illegal_instruction;
-}
-
diff --git a/riscv/dispatch_decl.h b/riscv/dispatch_decl.h
deleted file mode 100644
index efd4f99..0000000
--- a/riscv/dispatch_decl.h
+++ /dev/null
@@ -1,1026 +0,0 @@
-/* Automatically generated by parse-opcodes */
-#define dispatch_index(insn) (((insn).bits >> 0) & 1023)
-reg_t opcode_func_000(insn_t insn, reg_t pc);
-reg_t opcode_func_001(insn_t insn, reg_t pc);
-reg_t opcode_func_002(insn_t insn, reg_t pc);
-reg_t opcode_func_003(insn_t insn, reg_t pc);
-reg_t opcode_func_004(insn_t insn, reg_t pc);
-reg_t opcode_func_005(insn_t insn, reg_t pc);
-reg_t opcode_func_006(insn_t insn, reg_t pc);
-reg_t opcode_func_007(insn_t insn, reg_t pc);
-reg_t opcode_func_008(insn_t insn, reg_t pc);
-reg_t opcode_func_009(insn_t insn, reg_t pc);
-reg_t opcode_func_00a(insn_t insn, reg_t pc);
-reg_t opcode_func_00b(insn_t insn, reg_t pc);
-reg_t opcode_func_00c(insn_t insn, reg_t pc);
-reg_t opcode_func_00d(insn_t insn, reg_t pc);
-reg_t opcode_func_00e(insn_t insn, reg_t pc);
-reg_t opcode_func_00f(insn_t insn, reg_t pc);
-reg_t opcode_func_010(insn_t insn, reg_t pc);
-reg_t opcode_func_011(insn_t insn, reg_t pc);
-reg_t opcode_func_012(insn_t insn, reg_t pc);
-reg_t opcode_func_013(insn_t insn, reg_t pc);
-reg_t opcode_func_014(insn_t insn, reg_t pc);
-reg_t opcode_func_015(insn_t insn, reg_t pc);
-reg_t opcode_func_016(insn_t insn, reg_t pc);
-reg_t opcode_func_017(insn_t insn, reg_t pc);
-reg_t opcode_func_018(insn_t insn, reg_t pc);
-reg_t opcode_func_019(insn_t insn, reg_t pc);
-reg_t opcode_func_01a(insn_t insn, reg_t pc);
-reg_t opcode_func_01b(insn_t insn, reg_t pc);
-reg_t opcode_func_01c(insn_t insn, reg_t pc);
-reg_t opcode_func_01d(insn_t insn, reg_t pc);
-reg_t opcode_func_01e(insn_t insn, reg_t pc);
-reg_t opcode_func_01f(insn_t insn, reg_t pc);
-reg_t opcode_func_020(insn_t insn, reg_t pc);
-reg_t opcode_func_021(insn_t insn, reg_t pc);
-reg_t opcode_func_022(insn_t insn, reg_t pc);
-reg_t opcode_func_023(insn_t insn, reg_t pc);
-reg_t opcode_func_024(insn_t insn, reg_t pc);
-reg_t opcode_func_025(insn_t insn, reg_t pc);
-reg_t opcode_func_026(insn_t insn, reg_t pc);
-reg_t opcode_func_027(insn_t insn, reg_t pc);
-reg_t opcode_func_028(insn_t insn, reg_t pc);
-reg_t opcode_func_029(insn_t insn, reg_t pc);
-reg_t opcode_func_02a(insn_t insn, reg_t pc);
-reg_t opcode_func_02b(insn_t insn, reg_t pc);
-reg_t opcode_func_02c(insn_t insn, reg_t pc);
-reg_t opcode_func_02d(insn_t insn, reg_t pc);
-reg_t opcode_func_02e(insn_t insn, reg_t pc);
-reg_t opcode_func_02f(insn_t insn, reg_t pc);
-reg_t opcode_func_030(insn_t insn, reg_t pc);
-reg_t opcode_func_031(insn_t insn, reg_t pc);
-reg_t opcode_func_032(insn_t insn, reg_t pc);
-reg_t opcode_func_033(insn_t insn, reg_t pc);
-reg_t opcode_func_034(insn_t insn, reg_t pc);
-reg_t opcode_func_035(insn_t insn, reg_t pc);
-reg_t opcode_func_036(insn_t insn, reg_t pc);
-reg_t opcode_func_037(insn_t insn, reg_t pc);
-reg_t opcode_func_038(insn_t insn, reg_t pc);
-reg_t opcode_func_039(insn_t insn, reg_t pc);
-reg_t opcode_func_03a(insn_t insn, reg_t pc);
-reg_t opcode_func_03b(insn_t insn, reg_t pc);
-reg_t opcode_func_03c(insn_t insn, reg_t pc);
-reg_t opcode_func_03d(insn_t insn, reg_t pc);
-reg_t opcode_func_03e(insn_t insn, reg_t pc);
-reg_t opcode_func_03f(insn_t insn, reg_t pc);
-reg_t opcode_func_040(insn_t insn, reg_t pc);
-reg_t opcode_func_041(insn_t insn, reg_t pc);
-reg_t opcode_func_042(insn_t insn, reg_t pc);
-reg_t opcode_func_043(insn_t insn, reg_t pc);
-reg_t opcode_func_044(insn_t insn, reg_t pc);
-reg_t opcode_func_045(insn_t insn, reg_t pc);
-reg_t opcode_func_046(insn_t insn, reg_t pc);
-reg_t opcode_func_047(insn_t insn, reg_t pc);
-reg_t opcode_func_048(insn_t insn, reg_t pc);
-reg_t opcode_func_049(insn_t insn, reg_t pc);
-reg_t opcode_func_04a(insn_t insn, reg_t pc);
-reg_t opcode_func_04b(insn_t insn, reg_t pc);
-reg_t opcode_func_04c(insn_t insn, reg_t pc);
-reg_t opcode_func_04d(insn_t insn, reg_t pc);
-reg_t opcode_func_04e(insn_t insn, reg_t pc);
-reg_t opcode_func_04f(insn_t insn, reg_t pc);
-reg_t opcode_func_050(insn_t insn, reg_t pc);
-reg_t opcode_func_051(insn_t insn, reg_t pc);
-reg_t opcode_func_052(insn_t insn, reg_t pc);
-reg_t opcode_func_053(insn_t insn, reg_t pc);
-reg_t opcode_func_054(insn_t insn, reg_t pc);
-reg_t opcode_func_055(insn_t insn, reg_t pc);
-reg_t opcode_func_056(insn_t insn, reg_t pc);
-reg_t opcode_func_057(insn_t insn, reg_t pc);
-reg_t opcode_func_058(insn_t insn, reg_t pc);
-reg_t opcode_func_059(insn_t insn, reg_t pc);
-reg_t opcode_func_05a(insn_t insn, reg_t pc);
-reg_t opcode_func_05b(insn_t insn, reg_t pc);
-reg_t opcode_func_05c(insn_t insn, reg_t pc);
-reg_t opcode_func_05d(insn_t insn, reg_t pc);
-reg_t opcode_func_05e(insn_t insn, reg_t pc);
-reg_t opcode_func_05f(insn_t insn, reg_t pc);
-reg_t opcode_func_060(insn_t insn, reg_t pc);
-reg_t opcode_func_061(insn_t insn, reg_t pc);
-reg_t opcode_func_062(insn_t insn, reg_t pc);
-reg_t opcode_func_063(insn_t insn, reg_t pc);
-reg_t opcode_func_064(insn_t insn, reg_t pc);
-reg_t opcode_func_065(insn_t insn, reg_t pc);
-reg_t opcode_func_066(insn_t insn, reg_t pc);
-reg_t opcode_func_067(insn_t insn, reg_t pc);
-reg_t opcode_func_068(insn_t insn, reg_t pc);
-reg_t opcode_func_069(insn_t insn, reg_t pc);
-reg_t opcode_func_06a(insn_t insn, reg_t pc);
-reg_t opcode_func_06b(insn_t insn, reg_t pc);
-reg_t opcode_func_06c(insn_t insn, reg_t pc);
-reg_t opcode_func_06d(insn_t insn, reg_t pc);
-reg_t opcode_func_06e(insn_t insn, reg_t pc);
-reg_t opcode_func_06f(insn_t insn, reg_t pc);
-reg_t opcode_func_070(insn_t insn, reg_t pc);
-reg_t opcode_func_071(insn_t insn, reg_t pc);
-reg_t opcode_func_072(insn_t insn, reg_t pc);
-reg_t opcode_func_073(insn_t insn, reg_t pc);
-reg_t opcode_func_074(insn_t insn, reg_t pc);
-reg_t opcode_func_075(insn_t insn, reg_t pc);
-reg_t opcode_func_076(insn_t insn, reg_t pc);
-reg_t opcode_func_077(insn_t insn, reg_t pc);
-reg_t opcode_func_078(insn_t insn, reg_t pc);
-reg_t opcode_func_079(insn_t insn, reg_t pc);
-reg_t opcode_func_07a(insn_t insn, reg_t pc);
-reg_t opcode_func_07b(insn_t insn, reg_t pc);
-reg_t opcode_func_07c(insn_t insn, reg_t pc);
-reg_t opcode_func_07d(insn_t insn, reg_t pc);
-reg_t opcode_func_07e(insn_t insn, reg_t pc);
-reg_t opcode_func_07f(insn_t insn, reg_t pc);
-reg_t opcode_func_080(insn_t insn, reg_t pc);
-reg_t opcode_func_081(insn_t insn, reg_t pc);
-reg_t opcode_func_082(insn_t insn, reg_t pc);
-reg_t opcode_func_083(insn_t insn, reg_t pc);
-reg_t opcode_func_084(insn_t insn, reg_t pc);
-reg_t opcode_func_085(insn_t insn, reg_t pc);
-reg_t opcode_func_086(insn_t insn, reg_t pc);
-reg_t opcode_func_087(insn_t insn, reg_t pc);
-reg_t opcode_func_088(insn_t insn, reg_t pc);
-reg_t opcode_func_089(insn_t insn, reg_t pc);
-reg_t opcode_func_08a(insn_t insn, reg_t pc);
-reg_t opcode_func_08b(insn_t insn, reg_t pc);
-reg_t opcode_func_08c(insn_t insn, reg_t pc);
-reg_t opcode_func_08d(insn_t insn, reg_t pc);
-reg_t opcode_func_08e(insn_t insn, reg_t pc);
-reg_t opcode_func_08f(insn_t insn, reg_t pc);
-reg_t opcode_func_090(insn_t insn, reg_t pc);
-reg_t opcode_func_091(insn_t insn, reg_t pc);
-reg_t opcode_func_092(insn_t insn, reg_t pc);
-reg_t opcode_func_093(insn_t insn, reg_t pc);
-reg_t opcode_func_094(insn_t insn, reg_t pc);
-reg_t opcode_func_095(insn_t insn, reg_t pc);
-reg_t opcode_func_096(insn_t insn, reg_t pc);
-reg_t opcode_func_097(insn_t insn, reg_t pc);
-reg_t opcode_func_098(insn_t insn, reg_t pc);
-reg_t opcode_func_099(insn_t insn, reg_t pc);
-reg_t opcode_func_09a(insn_t insn, reg_t pc);
-reg_t opcode_func_09b(insn_t insn, reg_t pc);
-reg_t opcode_func_09c(insn_t insn, reg_t pc);
-reg_t opcode_func_09d(insn_t insn, reg_t pc);
-reg_t opcode_func_09e(insn_t insn, reg_t pc);
-reg_t opcode_func_09f(insn_t insn, reg_t pc);
-reg_t opcode_func_0a0(insn_t insn, reg_t pc);
-reg_t opcode_func_0a1(insn_t insn, reg_t pc);
-reg_t opcode_func_0a2(insn_t insn, reg_t pc);
-reg_t opcode_func_0a3(insn_t insn, reg_t pc);
-reg_t opcode_func_0a4(insn_t insn, reg_t pc);
-reg_t opcode_func_0a5(insn_t insn, reg_t pc);
-reg_t opcode_func_0a6(insn_t insn, reg_t pc);
-reg_t opcode_func_0a7(insn_t insn, reg_t pc);
-reg_t opcode_func_0a8(insn_t insn, reg_t pc);
-reg_t opcode_func_0a9(insn_t insn, reg_t pc);
-reg_t opcode_func_0aa(insn_t insn, reg_t pc);
-reg_t opcode_func_0ab(insn_t insn, reg_t pc);
-reg_t opcode_func_0ac(insn_t insn, reg_t pc);
-reg_t opcode_func_0ad(insn_t insn, reg_t pc);
-reg_t opcode_func_0ae(insn_t insn, reg_t pc);
-reg_t opcode_func_0af(insn_t insn, reg_t pc);
-reg_t opcode_func_0b0(insn_t insn, reg_t pc);
-reg_t opcode_func_0b1(insn_t insn, reg_t pc);
-reg_t opcode_func_0b2(insn_t insn, reg_t pc);
-reg_t opcode_func_0b3(insn_t insn, reg_t pc);
-reg_t opcode_func_0b4(insn_t insn, reg_t pc);
-reg_t opcode_func_0b5(insn_t insn, reg_t pc);
-reg_t opcode_func_0b6(insn_t insn, reg_t pc);
-reg_t opcode_func_0b7(insn_t insn, reg_t pc);
-reg_t opcode_func_0b8(insn_t insn, reg_t pc);
-reg_t opcode_func_0b9(insn_t insn, reg_t pc);
-reg_t opcode_func_0ba(insn_t insn, reg_t pc);
-reg_t opcode_func_0bb(insn_t insn, reg_t pc);
-reg_t opcode_func_0bc(insn_t insn, reg_t pc);
-reg_t opcode_func_0bd(insn_t insn, reg_t pc);
-reg_t opcode_func_0be(insn_t insn, reg_t pc);
-reg_t opcode_func_0bf(insn_t insn, reg_t pc);
-reg_t opcode_func_0c0(insn_t insn, reg_t pc);
-reg_t opcode_func_0c1(insn_t insn, reg_t pc);
-reg_t opcode_func_0c2(insn_t insn, reg_t pc);
-reg_t opcode_func_0c3(insn_t insn, reg_t pc);
-reg_t opcode_func_0c4(insn_t insn, reg_t pc);
-reg_t opcode_func_0c5(insn_t insn, reg_t pc);
-reg_t opcode_func_0c6(insn_t insn, reg_t pc);
-reg_t opcode_func_0c7(insn_t insn, reg_t pc);
-reg_t opcode_func_0c8(insn_t insn, reg_t pc);
-reg_t opcode_func_0c9(insn_t insn, reg_t pc);
-reg_t opcode_func_0ca(insn_t insn, reg_t pc);
-reg_t opcode_func_0cb(insn_t insn, reg_t pc);
-reg_t opcode_func_0cc(insn_t insn, reg_t pc);
-reg_t opcode_func_0cd(insn_t insn, reg_t pc);
-reg_t opcode_func_0ce(insn_t insn, reg_t pc);
-reg_t opcode_func_0cf(insn_t insn, reg_t pc);
-reg_t opcode_func_0d0(insn_t insn, reg_t pc);
-reg_t opcode_func_0d1(insn_t insn, reg_t pc);
-reg_t opcode_func_0d2(insn_t insn, reg_t pc);
-reg_t opcode_func_0d3(insn_t insn, reg_t pc);
-reg_t opcode_func_0d4(insn_t insn, reg_t pc);
-reg_t opcode_func_0d5(insn_t insn, reg_t pc);
-reg_t opcode_func_0d6(insn_t insn, reg_t pc);
-reg_t opcode_func_0d7(insn_t insn, reg_t pc);
-reg_t opcode_func_0d8(insn_t insn, reg_t pc);
-reg_t opcode_func_0d9(insn_t insn, reg_t pc);
-reg_t opcode_func_0da(insn_t insn, reg_t pc);
-reg_t opcode_func_0db(insn_t insn, reg_t pc);
-reg_t opcode_func_0dc(insn_t insn, reg_t pc);
-reg_t opcode_func_0dd(insn_t insn, reg_t pc);
-reg_t opcode_func_0de(insn_t insn, reg_t pc);
-reg_t opcode_func_0df(insn_t insn, reg_t pc);
-reg_t opcode_func_0e0(insn_t insn, reg_t pc);
-reg_t opcode_func_0e1(insn_t insn, reg_t pc);
-reg_t opcode_func_0e2(insn_t insn, reg_t pc);
-reg_t opcode_func_0e3(insn_t insn, reg_t pc);
-reg_t opcode_func_0e4(insn_t insn, reg_t pc);
-reg_t opcode_func_0e5(insn_t insn, reg_t pc);
-reg_t opcode_func_0e6(insn_t insn, reg_t pc);
-reg_t opcode_func_0e7(insn_t insn, reg_t pc);
-reg_t opcode_func_0e8(insn_t insn, reg_t pc);
-reg_t opcode_func_0e9(insn_t insn, reg_t pc);
-reg_t opcode_func_0ea(insn_t insn, reg_t pc);
-reg_t opcode_func_0eb(insn_t insn, reg_t pc);
-reg_t opcode_func_0ec(insn_t insn, reg_t pc);
-reg_t opcode_func_0ed(insn_t insn, reg_t pc);
-reg_t opcode_func_0ee(insn_t insn, reg_t pc);
-reg_t opcode_func_0ef(insn_t insn, reg_t pc);
-reg_t opcode_func_0f0(insn_t insn, reg_t pc);
-reg_t opcode_func_0f1(insn_t insn, reg_t pc);
-reg_t opcode_func_0f2(insn_t insn, reg_t pc);
-reg_t opcode_func_0f3(insn_t insn, reg_t pc);
-reg_t opcode_func_0f4(insn_t insn, reg_t pc);
-reg_t opcode_func_0f5(insn_t insn, reg_t pc);
-reg_t opcode_func_0f6(insn_t insn, reg_t pc);
-reg_t opcode_func_0f7(insn_t insn, reg_t pc);
-reg_t opcode_func_0f8(insn_t insn, reg_t pc);
-reg_t opcode_func_0f9(insn_t insn, reg_t pc);
-reg_t opcode_func_0fa(insn_t insn, reg_t pc);
-reg_t opcode_func_0fb(insn_t insn, reg_t pc);
-reg_t opcode_func_0fc(insn_t insn, reg_t pc);
-reg_t opcode_func_0fd(insn_t insn, reg_t pc);
-reg_t opcode_func_0fe(insn_t insn, reg_t pc);
-reg_t opcode_func_0ff(insn_t insn, reg_t pc);
-reg_t opcode_func_100(insn_t insn, reg_t pc);
-reg_t opcode_func_101(insn_t insn, reg_t pc);
-reg_t opcode_func_102(insn_t insn, reg_t pc);
-reg_t opcode_func_103(insn_t insn, reg_t pc);
-reg_t opcode_func_104(insn_t insn, reg_t pc);
-reg_t opcode_func_105(insn_t insn, reg_t pc);
-reg_t opcode_func_106(insn_t insn, reg_t pc);
-reg_t opcode_func_107(insn_t insn, reg_t pc);
-reg_t opcode_func_108(insn_t insn, reg_t pc);
-reg_t opcode_func_109(insn_t insn, reg_t pc);
-reg_t opcode_func_10a(insn_t insn, reg_t pc);
-reg_t opcode_func_10b(insn_t insn, reg_t pc);
-reg_t opcode_func_10c(insn_t insn, reg_t pc);
-reg_t opcode_func_10d(insn_t insn, reg_t pc);
-reg_t opcode_func_10e(insn_t insn, reg_t pc);
-reg_t opcode_func_10f(insn_t insn, reg_t pc);
-reg_t opcode_func_110(insn_t insn, reg_t pc);
-reg_t opcode_func_111(insn_t insn, reg_t pc);
-reg_t opcode_func_112(insn_t insn, reg_t pc);
-reg_t opcode_func_113(insn_t insn, reg_t pc);
-reg_t opcode_func_114(insn_t insn, reg_t pc);
-reg_t opcode_func_115(insn_t insn, reg_t pc);
-reg_t opcode_func_116(insn_t insn, reg_t pc);
-reg_t opcode_func_117(insn_t insn, reg_t pc);
-reg_t opcode_func_118(insn_t insn, reg_t pc);
-reg_t opcode_func_119(insn_t insn, reg_t pc);
-reg_t opcode_func_11a(insn_t insn, reg_t pc);
-reg_t opcode_func_11b(insn_t insn, reg_t pc);
-reg_t opcode_func_11c(insn_t insn, reg_t pc);
-reg_t opcode_func_11d(insn_t insn, reg_t pc);
-reg_t opcode_func_11e(insn_t insn, reg_t pc);
-reg_t opcode_func_11f(insn_t insn, reg_t pc);
-reg_t opcode_func_120(insn_t insn, reg_t pc);
-reg_t opcode_func_121(insn_t insn, reg_t pc);
-reg_t opcode_func_122(insn_t insn, reg_t pc);
-reg_t opcode_func_123(insn_t insn, reg_t pc);
-reg_t opcode_func_124(insn_t insn, reg_t pc);
-reg_t opcode_func_125(insn_t insn, reg_t pc);
-reg_t opcode_func_126(insn_t insn, reg_t pc);
-reg_t opcode_func_127(insn_t insn, reg_t pc);
-reg_t opcode_func_128(insn_t insn, reg_t pc);
-reg_t opcode_func_129(insn_t insn, reg_t pc);
-reg_t opcode_func_12a(insn_t insn, reg_t pc);
-reg_t opcode_func_12b(insn_t insn, reg_t pc);
-reg_t opcode_func_12c(insn_t insn, reg_t pc);
-reg_t opcode_func_12d(insn_t insn, reg_t pc);
-reg_t opcode_func_12e(insn_t insn, reg_t pc);
-reg_t opcode_func_12f(insn_t insn, reg_t pc);
-reg_t opcode_func_130(insn_t insn, reg_t pc);
-reg_t opcode_func_131(insn_t insn, reg_t pc);
-reg_t opcode_func_132(insn_t insn, reg_t pc);
-reg_t opcode_func_133(insn_t insn, reg_t pc);
-reg_t opcode_func_134(insn_t insn, reg_t pc);
-reg_t opcode_func_135(insn_t insn, reg_t pc);
-reg_t opcode_func_136(insn_t insn, reg_t pc);
-reg_t opcode_func_137(insn_t insn, reg_t pc);
-reg_t opcode_func_138(insn_t insn, reg_t pc);
-reg_t opcode_func_139(insn_t insn, reg_t pc);
-reg_t opcode_func_13a(insn_t insn, reg_t pc);
-reg_t opcode_func_13b(insn_t insn, reg_t pc);
-reg_t opcode_func_13c(insn_t insn, reg_t pc);
-reg_t opcode_func_13d(insn_t insn, reg_t pc);
-reg_t opcode_func_13e(insn_t insn, reg_t pc);
-reg_t opcode_func_13f(insn_t insn, reg_t pc);
-reg_t opcode_func_140(insn_t insn, reg_t pc);
-reg_t opcode_func_141(insn_t insn, reg_t pc);
-reg_t opcode_func_142(insn_t insn, reg_t pc);
-reg_t opcode_func_143(insn_t insn, reg_t pc);
-reg_t opcode_func_144(insn_t insn, reg_t pc);
-reg_t opcode_func_145(insn_t insn, reg_t pc);
-reg_t opcode_func_146(insn_t insn, reg_t pc);
-reg_t opcode_func_147(insn_t insn, reg_t pc);
-reg_t opcode_func_148(insn_t insn, reg_t pc);
-reg_t opcode_func_149(insn_t insn, reg_t pc);
-reg_t opcode_func_14a(insn_t insn, reg_t pc);
-reg_t opcode_func_14b(insn_t insn, reg_t pc);
-reg_t opcode_func_14c(insn_t insn, reg_t pc);
-reg_t opcode_func_14d(insn_t insn, reg_t pc);
-reg_t opcode_func_14e(insn_t insn, reg_t pc);
-reg_t opcode_func_14f(insn_t insn, reg_t pc);
-reg_t opcode_func_150(insn_t insn, reg_t pc);
-reg_t opcode_func_151(insn_t insn, reg_t pc);
-reg_t opcode_func_152(insn_t insn, reg_t pc);
-reg_t opcode_func_153(insn_t insn, reg_t pc);
-reg_t opcode_func_154(insn_t insn, reg_t pc);
-reg_t opcode_func_155(insn_t insn, reg_t pc);
-reg_t opcode_func_156(insn_t insn, reg_t pc);
-reg_t opcode_func_157(insn_t insn, reg_t pc);
-reg_t opcode_func_158(insn_t insn, reg_t pc);
-reg_t opcode_func_159(insn_t insn, reg_t pc);
-reg_t opcode_func_15a(insn_t insn, reg_t pc);
-reg_t opcode_func_15b(insn_t insn, reg_t pc);
-reg_t opcode_func_15c(insn_t insn, reg_t pc);
-reg_t opcode_func_15d(insn_t insn, reg_t pc);
-reg_t opcode_func_15e(insn_t insn, reg_t pc);
-reg_t opcode_func_15f(insn_t insn, reg_t pc);
-reg_t opcode_func_160(insn_t insn, reg_t pc);
-reg_t opcode_func_161(insn_t insn, reg_t pc);
-reg_t opcode_func_162(insn_t insn, reg_t pc);
-reg_t opcode_func_163(insn_t insn, reg_t pc);
-reg_t opcode_func_164(insn_t insn, reg_t pc);
-reg_t opcode_func_165(insn_t insn, reg_t pc);
-reg_t opcode_func_166(insn_t insn, reg_t pc);
-reg_t opcode_func_167(insn_t insn, reg_t pc);
-reg_t opcode_func_168(insn_t insn, reg_t pc);
-reg_t opcode_func_169(insn_t insn, reg_t pc);
-reg_t opcode_func_16a(insn_t insn, reg_t pc);
-reg_t opcode_func_16b(insn_t insn, reg_t pc);
-reg_t opcode_func_16c(insn_t insn, reg_t pc);
-reg_t opcode_func_16d(insn_t insn, reg_t pc);
-reg_t opcode_func_16e(insn_t insn, reg_t pc);
-reg_t opcode_func_16f(insn_t insn, reg_t pc);
-reg_t opcode_func_170(insn_t insn, reg_t pc);
-reg_t opcode_func_171(insn_t insn, reg_t pc);
-reg_t opcode_func_172(insn_t insn, reg_t pc);
-reg_t opcode_func_173(insn_t insn, reg_t pc);
-reg_t opcode_func_174(insn_t insn, reg_t pc);
-reg_t opcode_func_175(insn_t insn, reg_t pc);
-reg_t opcode_func_176(insn_t insn, reg_t pc);
-reg_t opcode_func_177(insn_t insn, reg_t pc);
-reg_t opcode_func_178(insn_t insn, reg_t pc);
-reg_t opcode_func_179(insn_t insn, reg_t pc);
-reg_t opcode_func_17a(insn_t insn, reg_t pc);
-reg_t opcode_func_17b(insn_t insn, reg_t pc);
-reg_t opcode_func_17c(insn_t insn, reg_t pc);
-reg_t opcode_func_17d(insn_t insn, reg_t pc);
-reg_t opcode_func_17e(insn_t insn, reg_t pc);
-reg_t opcode_func_17f(insn_t insn, reg_t pc);
-reg_t opcode_func_180(insn_t insn, reg_t pc);
-reg_t opcode_func_181(insn_t insn, reg_t pc);
-reg_t opcode_func_182(insn_t insn, reg_t pc);
-reg_t opcode_func_183(insn_t insn, reg_t pc);
-reg_t opcode_func_184(insn_t insn, reg_t pc);
-reg_t opcode_func_185(insn_t insn, reg_t pc);
-reg_t opcode_func_186(insn_t insn, reg_t pc);
-reg_t opcode_func_187(insn_t insn, reg_t pc);
-reg_t opcode_func_188(insn_t insn, reg_t pc);
-reg_t opcode_func_189(insn_t insn, reg_t pc);
-reg_t opcode_func_18a(insn_t insn, reg_t pc);
-reg_t opcode_func_18b(insn_t insn, reg_t pc);
-reg_t opcode_func_18c(insn_t insn, reg_t pc);
-reg_t opcode_func_18d(insn_t insn, reg_t pc);
-reg_t opcode_func_18e(insn_t insn, reg_t pc);
-reg_t opcode_func_18f(insn_t insn, reg_t pc);
-reg_t opcode_func_190(insn_t insn, reg_t pc);
-reg_t opcode_func_191(insn_t insn, reg_t pc);
-reg_t opcode_func_192(insn_t insn, reg_t pc);
-reg_t opcode_func_193(insn_t insn, reg_t pc);
-reg_t opcode_func_194(insn_t insn, reg_t pc);
-reg_t opcode_func_195(insn_t insn, reg_t pc);
-reg_t opcode_func_196(insn_t insn, reg_t pc);
-reg_t opcode_func_197(insn_t insn, reg_t pc);
-reg_t opcode_func_198(insn_t insn, reg_t pc);
-reg_t opcode_func_199(insn_t insn, reg_t pc);
-reg_t opcode_func_19a(insn_t insn, reg_t pc);
-reg_t opcode_func_19b(insn_t insn, reg_t pc);
-reg_t opcode_func_19c(insn_t insn, reg_t pc);
-reg_t opcode_func_19d(insn_t insn, reg_t pc);
-reg_t opcode_func_19e(insn_t insn, reg_t pc);
-reg_t opcode_func_19f(insn_t insn, reg_t pc);
-reg_t opcode_func_1a0(insn_t insn, reg_t pc);
-reg_t opcode_func_1a1(insn_t insn, reg_t pc);
-reg_t opcode_func_1a2(insn_t insn, reg_t pc);
-reg_t opcode_func_1a3(insn_t insn, reg_t pc);
-reg_t opcode_func_1a4(insn_t insn, reg_t pc);
-reg_t opcode_func_1a5(insn_t insn, reg_t pc);
-reg_t opcode_func_1a6(insn_t insn, reg_t pc);
-reg_t opcode_func_1a7(insn_t insn, reg_t pc);
-reg_t opcode_func_1a8(insn_t insn, reg_t pc);
-reg_t opcode_func_1a9(insn_t insn, reg_t pc);
-reg_t opcode_func_1aa(insn_t insn, reg_t pc);
-reg_t opcode_func_1ab(insn_t insn, reg_t pc);
-reg_t opcode_func_1ac(insn_t insn, reg_t pc);
-reg_t opcode_func_1ad(insn_t insn, reg_t pc);
-reg_t opcode_func_1ae(insn_t insn, reg_t pc);
-reg_t opcode_func_1af(insn_t insn, reg_t pc);
-reg_t opcode_func_1b0(insn_t insn, reg_t pc);
-reg_t opcode_func_1b1(insn_t insn, reg_t pc);
-reg_t opcode_func_1b2(insn_t insn, reg_t pc);
-reg_t opcode_func_1b3(insn_t insn, reg_t pc);
-reg_t opcode_func_1b4(insn_t insn, reg_t pc);
-reg_t opcode_func_1b5(insn_t insn, reg_t pc);
-reg_t opcode_func_1b6(insn_t insn, reg_t pc);
-reg_t opcode_func_1b7(insn_t insn, reg_t pc);
-reg_t opcode_func_1b8(insn_t insn, reg_t pc);
-reg_t opcode_func_1b9(insn_t insn, reg_t pc);
-reg_t opcode_func_1ba(insn_t insn, reg_t pc);
-reg_t opcode_func_1bb(insn_t insn, reg_t pc);
-reg_t opcode_func_1bc(insn_t insn, reg_t pc);
-reg_t opcode_func_1bd(insn_t insn, reg_t pc);
-reg_t opcode_func_1be(insn_t insn, reg_t pc);
-reg_t opcode_func_1bf(insn_t insn, reg_t pc);
-reg_t opcode_func_1c0(insn_t insn, reg_t pc);
-reg_t opcode_func_1c1(insn_t insn, reg_t pc);
-reg_t opcode_func_1c2(insn_t insn, reg_t pc);
-reg_t opcode_func_1c3(insn_t insn, reg_t pc);
-reg_t opcode_func_1c4(insn_t insn, reg_t pc);
-reg_t opcode_func_1c5(insn_t insn, reg_t pc);
-reg_t opcode_func_1c6(insn_t insn, reg_t pc);
-reg_t opcode_func_1c7(insn_t insn, reg_t pc);
-reg_t opcode_func_1c8(insn_t insn, reg_t pc);
-reg_t opcode_func_1c9(insn_t insn, reg_t pc);
-reg_t opcode_func_1ca(insn_t insn, reg_t pc);
-reg_t opcode_func_1cb(insn_t insn, reg_t pc);
-reg_t opcode_func_1cc(insn_t insn, reg_t pc);
-reg_t opcode_func_1cd(insn_t insn, reg_t pc);
-reg_t opcode_func_1ce(insn_t insn, reg_t pc);
-reg_t opcode_func_1cf(insn_t insn, reg_t pc);
-reg_t opcode_func_1d0(insn_t insn, reg_t pc);
-reg_t opcode_func_1d1(insn_t insn, reg_t pc);
-reg_t opcode_func_1d2(insn_t insn, reg_t pc);
-reg_t opcode_func_1d3(insn_t insn, reg_t pc);
-reg_t opcode_func_1d4(insn_t insn, reg_t pc);
-reg_t opcode_func_1d5(insn_t insn, reg_t pc);
-reg_t opcode_func_1d6(insn_t insn, reg_t pc);
-reg_t opcode_func_1d7(insn_t insn, reg_t pc);
-reg_t opcode_func_1d8(insn_t insn, reg_t pc);
-reg_t opcode_func_1d9(insn_t insn, reg_t pc);
-reg_t opcode_func_1da(insn_t insn, reg_t pc);
-reg_t opcode_func_1db(insn_t insn, reg_t pc);
-reg_t opcode_func_1dc(insn_t insn, reg_t pc);
-reg_t opcode_func_1dd(insn_t insn, reg_t pc);
-reg_t opcode_func_1de(insn_t insn, reg_t pc);
-reg_t opcode_func_1df(insn_t insn, reg_t pc);
-reg_t opcode_func_1e0(insn_t insn, reg_t pc);
-reg_t opcode_func_1e1(insn_t insn, reg_t pc);
-reg_t opcode_func_1e2(insn_t insn, reg_t pc);
-reg_t opcode_func_1e3(insn_t insn, reg_t pc);
-reg_t opcode_func_1e4(insn_t insn, reg_t pc);
-reg_t opcode_func_1e5(insn_t insn, reg_t pc);
-reg_t opcode_func_1e6(insn_t insn, reg_t pc);
-reg_t opcode_func_1e7(insn_t insn, reg_t pc);
-reg_t opcode_func_1e8(insn_t insn, reg_t pc);
-reg_t opcode_func_1e9(insn_t insn, reg_t pc);
-reg_t opcode_func_1ea(insn_t insn, reg_t pc);
-reg_t opcode_func_1eb(insn_t insn, reg_t pc);
-reg_t opcode_func_1ec(insn_t insn, reg_t pc);
-reg_t opcode_func_1ed(insn_t insn, reg_t pc);
-reg_t opcode_func_1ee(insn_t insn, reg_t pc);
-reg_t opcode_func_1ef(insn_t insn, reg_t pc);
-reg_t opcode_func_1f0(insn_t insn, reg_t pc);
-reg_t opcode_func_1f1(insn_t insn, reg_t pc);
-reg_t opcode_func_1f2(insn_t insn, reg_t pc);
-reg_t opcode_func_1f3(insn_t insn, reg_t pc);
-reg_t opcode_func_1f4(insn_t insn, reg_t pc);
-reg_t opcode_func_1f5(insn_t insn, reg_t pc);
-reg_t opcode_func_1f6(insn_t insn, reg_t pc);
-reg_t opcode_func_1f7(insn_t insn, reg_t pc);
-reg_t opcode_func_1f8(insn_t insn, reg_t pc);
-reg_t opcode_func_1f9(insn_t insn, reg_t pc);
-reg_t opcode_func_1fa(insn_t insn, reg_t pc);
-reg_t opcode_func_1fb(insn_t insn, reg_t pc);
-reg_t opcode_func_1fc(insn_t insn, reg_t pc);
-reg_t opcode_func_1fd(insn_t insn, reg_t pc);
-reg_t opcode_func_1fe(insn_t insn, reg_t pc);
-reg_t opcode_func_1ff(insn_t insn, reg_t pc);
-reg_t opcode_func_200(insn_t insn, reg_t pc);
-reg_t opcode_func_201(insn_t insn, reg_t pc);
-reg_t opcode_func_202(insn_t insn, reg_t pc);
-reg_t opcode_func_203(insn_t insn, reg_t pc);
-reg_t opcode_func_204(insn_t insn, reg_t pc);
-reg_t opcode_func_205(insn_t insn, reg_t pc);
-reg_t opcode_func_206(insn_t insn, reg_t pc);
-reg_t opcode_func_207(insn_t insn, reg_t pc);
-reg_t opcode_func_208(insn_t insn, reg_t pc);
-reg_t opcode_func_209(insn_t insn, reg_t pc);
-reg_t opcode_func_20a(insn_t insn, reg_t pc);
-reg_t opcode_func_20b(insn_t insn, reg_t pc);
-reg_t opcode_func_20c(insn_t insn, reg_t pc);
-reg_t opcode_func_20d(insn_t insn, reg_t pc);
-reg_t opcode_func_20e(insn_t insn, reg_t pc);
-reg_t opcode_func_20f(insn_t insn, reg_t pc);
-reg_t opcode_func_210(insn_t insn, reg_t pc);
-reg_t opcode_func_211(insn_t insn, reg_t pc);
-reg_t opcode_func_212(insn_t insn, reg_t pc);
-reg_t opcode_func_213(insn_t insn, reg_t pc);
-reg_t opcode_func_214(insn_t insn, reg_t pc);
-reg_t opcode_func_215(insn_t insn, reg_t pc);
-reg_t opcode_func_216(insn_t insn, reg_t pc);
-reg_t opcode_func_217(insn_t insn, reg_t pc);
-reg_t opcode_func_218(insn_t insn, reg_t pc);
-reg_t opcode_func_219(insn_t insn, reg_t pc);
-reg_t opcode_func_21a(insn_t insn, reg_t pc);
-reg_t opcode_func_21b(insn_t insn, reg_t pc);
-reg_t opcode_func_21c(insn_t insn, reg_t pc);
-reg_t opcode_func_21d(insn_t insn, reg_t pc);
-reg_t opcode_func_21e(insn_t insn, reg_t pc);
-reg_t opcode_func_21f(insn_t insn, reg_t pc);
-reg_t opcode_func_220(insn_t insn, reg_t pc);
-reg_t opcode_func_221(insn_t insn, reg_t pc);
-reg_t opcode_func_222(insn_t insn, reg_t pc);
-reg_t opcode_func_223(insn_t insn, reg_t pc);
-reg_t opcode_func_224(insn_t insn, reg_t pc);
-reg_t opcode_func_225(insn_t insn, reg_t pc);
-reg_t opcode_func_226(insn_t insn, reg_t pc);
-reg_t opcode_func_227(insn_t insn, reg_t pc);
-reg_t opcode_func_228(insn_t insn, reg_t pc);
-reg_t opcode_func_229(insn_t insn, reg_t pc);
-reg_t opcode_func_22a(insn_t insn, reg_t pc);
-reg_t opcode_func_22b(insn_t insn, reg_t pc);
-reg_t opcode_func_22c(insn_t insn, reg_t pc);
-reg_t opcode_func_22d(insn_t insn, reg_t pc);
-reg_t opcode_func_22e(insn_t insn, reg_t pc);
-reg_t opcode_func_22f(insn_t insn, reg_t pc);
-reg_t opcode_func_230(insn_t insn, reg_t pc);
-reg_t opcode_func_231(insn_t insn, reg_t pc);
-reg_t opcode_func_232(insn_t insn, reg_t pc);
-reg_t opcode_func_233(insn_t insn, reg_t pc);
-reg_t opcode_func_234(insn_t insn, reg_t pc);
-reg_t opcode_func_235(insn_t insn, reg_t pc);
-reg_t opcode_func_236(insn_t insn, reg_t pc);
-reg_t opcode_func_237(insn_t insn, reg_t pc);
-reg_t opcode_func_238(insn_t insn, reg_t pc);
-reg_t opcode_func_239(insn_t insn, reg_t pc);
-reg_t opcode_func_23a(insn_t insn, reg_t pc);
-reg_t opcode_func_23b(insn_t insn, reg_t pc);
-reg_t opcode_func_23c(insn_t insn, reg_t pc);
-reg_t opcode_func_23d(insn_t insn, reg_t pc);
-reg_t opcode_func_23e(insn_t insn, reg_t pc);
-reg_t opcode_func_23f(insn_t insn, reg_t pc);
-reg_t opcode_func_240(insn_t insn, reg_t pc);
-reg_t opcode_func_241(insn_t insn, reg_t pc);
-reg_t opcode_func_242(insn_t insn, reg_t pc);
-reg_t opcode_func_243(insn_t insn, reg_t pc);
-reg_t opcode_func_244(insn_t insn, reg_t pc);
-reg_t opcode_func_245(insn_t insn, reg_t pc);
-reg_t opcode_func_246(insn_t insn, reg_t pc);
-reg_t opcode_func_247(insn_t insn, reg_t pc);
-reg_t opcode_func_248(insn_t insn, reg_t pc);
-reg_t opcode_func_249(insn_t insn, reg_t pc);
-reg_t opcode_func_24a(insn_t insn, reg_t pc);
-reg_t opcode_func_24b(insn_t insn, reg_t pc);
-reg_t opcode_func_24c(insn_t insn, reg_t pc);
-reg_t opcode_func_24d(insn_t insn, reg_t pc);
-reg_t opcode_func_24e(insn_t insn, reg_t pc);
-reg_t opcode_func_24f(insn_t insn, reg_t pc);
-reg_t opcode_func_250(insn_t insn, reg_t pc);
-reg_t opcode_func_251(insn_t insn, reg_t pc);
-reg_t opcode_func_252(insn_t insn, reg_t pc);
-reg_t opcode_func_253(insn_t insn, reg_t pc);
-reg_t opcode_func_254(insn_t insn, reg_t pc);
-reg_t opcode_func_255(insn_t insn, reg_t pc);
-reg_t opcode_func_256(insn_t insn, reg_t pc);
-reg_t opcode_func_257(insn_t insn, reg_t pc);
-reg_t opcode_func_258(insn_t insn, reg_t pc);
-reg_t opcode_func_259(insn_t insn, reg_t pc);
-reg_t opcode_func_25a(insn_t insn, reg_t pc);
-reg_t opcode_func_25b(insn_t insn, reg_t pc);
-reg_t opcode_func_25c(insn_t insn, reg_t pc);
-reg_t opcode_func_25d(insn_t insn, reg_t pc);
-reg_t opcode_func_25e(insn_t insn, reg_t pc);
-reg_t opcode_func_25f(insn_t insn, reg_t pc);
-reg_t opcode_func_260(insn_t insn, reg_t pc);
-reg_t opcode_func_261(insn_t insn, reg_t pc);
-reg_t opcode_func_262(insn_t insn, reg_t pc);
-reg_t opcode_func_263(insn_t insn, reg_t pc);
-reg_t opcode_func_264(insn_t insn, reg_t pc);
-reg_t opcode_func_265(insn_t insn, reg_t pc);
-reg_t opcode_func_266(insn_t insn, reg_t pc);
-reg_t opcode_func_267(insn_t insn, reg_t pc);
-reg_t opcode_func_268(insn_t insn, reg_t pc);
-reg_t opcode_func_269(insn_t insn, reg_t pc);
-reg_t opcode_func_26a(insn_t insn, reg_t pc);
-reg_t opcode_func_26b(insn_t insn, reg_t pc);
-reg_t opcode_func_26c(insn_t insn, reg_t pc);
-reg_t opcode_func_26d(insn_t insn, reg_t pc);
-reg_t opcode_func_26e(insn_t insn, reg_t pc);
-reg_t opcode_func_26f(insn_t insn, reg_t pc);
-reg_t opcode_func_270(insn_t insn, reg_t pc);
-reg_t opcode_func_271(insn_t insn, reg_t pc);
-reg_t opcode_func_272(insn_t insn, reg_t pc);
-reg_t opcode_func_273(insn_t insn, reg_t pc);
-reg_t opcode_func_274(insn_t insn, reg_t pc);
-reg_t opcode_func_275(insn_t insn, reg_t pc);
-reg_t opcode_func_276(insn_t insn, reg_t pc);
-reg_t opcode_func_277(insn_t insn, reg_t pc);
-reg_t opcode_func_278(insn_t insn, reg_t pc);
-reg_t opcode_func_279(insn_t insn, reg_t pc);
-reg_t opcode_func_27a(insn_t insn, reg_t pc);
-reg_t opcode_func_27b(insn_t insn, reg_t pc);
-reg_t opcode_func_27c(insn_t insn, reg_t pc);
-reg_t opcode_func_27d(insn_t insn, reg_t pc);
-reg_t opcode_func_27e(insn_t insn, reg_t pc);
-reg_t opcode_func_27f(insn_t insn, reg_t pc);
-reg_t opcode_func_280(insn_t insn, reg_t pc);
-reg_t opcode_func_281(insn_t insn, reg_t pc);
-reg_t opcode_func_282(insn_t insn, reg_t pc);
-reg_t opcode_func_283(insn_t insn, reg_t pc);
-reg_t opcode_func_284(insn_t insn, reg_t pc);
-reg_t opcode_func_285(insn_t insn, reg_t pc);
-reg_t opcode_func_286(insn_t insn, reg_t pc);
-reg_t opcode_func_287(insn_t insn, reg_t pc);
-reg_t opcode_func_288(insn_t insn, reg_t pc);
-reg_t opcode_func_289(insn_t insn, reg_t pc);
-reg_t opcode_func_28a(insn_t insn, reg_t pc);
-reg_t opcode_func_28b(insn_t insn, reg_t pc);
-reg_t opcode_func_28c(insn_t insn, reg_t pc);
-reg_t opcode_func_28d(insn_t insn, reg_t pc);
-reg_t opcode_func_28e(insn_t insn, reg_t pc);
-reg_t opcode_func_28f(insn_t insn, reg_t pc);
-reg_t opcode_func_290(insn_t insn, reg_t pc);
-reg_t opcode_func_291(insn_t insn, reg_t pc);
-reg_t opcode_func_292(insn_t insn, reg_t pc);
-reg_t opcode_func_293(insn_t insn, reg_t pc);
-reg_t opcode_func_294(insn_t insn, reg_t pc);
-reg_t opcode_func_295(insn_t insn, reg_t pc);
-reg_t opcode_func_296(insn_t insn, reg_t pc);
-reg_t opcode_func_297(insn_t insn, reg_t pc);
-reg_t opcode_func_298(insn_t insn, reg_t pc);
-reg_t opcode_func_299(insn_t insn, reg_t pc);
-reg_t opcode_func_29a(insn_t insn, reg_t pc);
-reg_t opcode_func_29b(insn_t insn, reg_t pc);
-reg_t opcode_func_29c(insn_t insn, reg_t pc);
-reg_t opcode_func_29d(insn_t insn, reg_t pc);
-reg_t opcode_func_29e(insn_t insn, reg_t pc);
-reg_t opcode_func_29f(insn_t insn, reg_t pc);
-reg_t opcode_func_2a0(insn_t insn, reg_t pc);
-reg_t opcode_func_2a1(insn_t insn, reg_t pc);
-reg_t opcode_func_2a2(insn_t insn, reg_t pc);
-reg_t opcode_func_2a3(insn_t insn, reg_t pc);
-reg_t opcode_func_2a4(insn_t insn, reg_t pc);
-reg_t opcode_func_2a5(insn_t insn, reg_t pc);
-reg_t opcode_func_2a6(insn_t insn, reg_t pc);
-reg_t opcode_func_2a7(insn_t insn, reg_t pc);
-reg_t opcode_func_2a8(insn_t insn, reg_t pc);
-reg_t opcode_func_2a9(insn_t insn, reg_t pc);
-reg_t opcode_func_2aa(insn_t insn, reg_t pc);
-reg_t opcode_func_2ab(insn_t insn, reg_t pc);
-reg_t opcode_func_2ac(insn_t insn, reg_t pc);
-reg_t opcode_func_2ad(insn_t insn, reg_t pc);
-reg_t opcode_func_2ae(insn_t insn, reg_t pc);
-reg_t opcode_func_2af(insn_t insn, reg_t pc);
-reg_t opcode_func_2b0(insn_t insn, reg_t pc);
-reg_t opcode_func_2b1(insn_t insn, reg_t pc);
-reg_t opcode_func_2b2(insn_t insn, reg_t pc);
-reg_t opcode_func_2b3(insn_t insn, reg_t pc);
-reg_t opcode_func_2b4(insn_t insn, reg_t pc);
-reg_t opcode_func_2b5(insn_t insn, reg_t pc);
-reg_t opcode_func_2b6(insn_t insn, reg_t pc);
-reg_t opcode_func_2b7(insn_t insn, reg_t pc);
-reg_t opcode_func_2b8(insn_t insn, reg_t pc);
-reg_t opcode_func_2b9(insn_t insn, reg_t pc);
-reg_t opcode_func_2ba(insn_t insn, reg_t pc);
-reg_t opcode_func_2bb(insn_t insn, reg_t pc);
-reg_t opcode_func_2bc(insn_t insn, reg_t pc);
-reg_t opcode_func_2bd(insn_t insn, reg_t pc);
-reg_t opcode_func_2be(insn_t insn, reg_t pc);
-reg_t opcode_func_2bf(insn_t insn, reg_t pc);
-reg_t opcode_func_2c0(insn_t insn, reg_t pc);
-reg_t opcode_func_2c1(insn_t insn, reg_t pc);
-reg_t opcode_func_2c2(insn_t insn, reg_t pc);
-reg_t opcode_func_2c3(insn_t insn, reg_t pc);
-reg_t opcode_func_2c4(insn_t insn, reg_t pc);
-reg_t opcode_func_2c5(insn_t insn, reg_t pc);
-reg_t opcode_func_2c6(insn_t insn, reg_t pc);
-reg_t opcode_func_2c7(insn_t insn, reg_t pc);
-reg_t opcode_func_2c8(insn_t insn, reg_t pc);
-reg_t opcode_func_2c9(insn_t insn, reg_t pc);
-reg_t opcode_func_2ca(insn_t insn, reg_t pc);
-reg_t opcode_func_2cb(insn_t insn, reg_t pc);
-reg_t opcode_func_2cc(insn_t insn, reg_t pc);
-reg_t opcode_func_2cd(insn_t insn, reg_t pc);
-reg_t opcode_func_2ce(insn_t insn, reg_t pc);
-reg_t opcode_func_2cf(insn_t insn, reg_t pc);
-reg_t opcode_func_2d0(insn_t insn, reg_t pc);
-reg_t opcode_func_2d1(insn_t insn, reg_t pc);
-reg_t opcode_func_2d2(insn_t insn, reg_t pc);
-reg_t opcode_func_2d3(insn_t insn, reg_t pc);
-reg_t opcode_func_2d4(insn_t insn, reg_t pc);
-reg_t opcode_func_2d5(insn_t insn, reg_t pc);
-reg_t opcode_func_2d6(insn_t insn, reg_t pc);
-reg_t opcode_func_2d7(insn_t insn, reg_t pc);
-reg_t opcode_func_2d8(insn_t insn, reg_t pc);
-reg_t opcode_func_2d9(insn_t insn, reg_t pc);
-reg_t opcode_func_2da(insn_t insn, reg_t pc);
-reg_t opcode_func_2db(insn_t insn, reg_t pc);
-reg_t opcode_func_2dc(insn_t insn, reg_t pc);
-reg_t opcode_func_2dd(insn_t insn, reg_t pc);
-reg_t opcode_func_2de(insn_t insn, reg_t pc);
-reg_t opcode_func_2df(insn_t insn, reg_t pc);
-reg_t opcode_func_2e0(insn_t insn, reg_t pc);
-reg_t opcode_func_2e1(insn_t insn, reg_t pc);
-reg_t opcode_func_2e2(insn_t insn, reg_t pc);
-reg_t opcode_func_2e3(insn_t insn, reg_t pc);
-reg_t opcode_func_2e4(insn_t insn, reg_t pc);
-reg_t opcode_func_2e5(insn_t insn, reg_t pc);
-reg_t opcode_func_2e6(insn_t insn, reg_t pc);
-reg_t opcode_func_2e7(insn_t insn, reg_t pc);
-reg_t opcode_func_2e8(insn_t insn, reg_t pc);
-reg_t opcode_func_2e9(insn_t insn, reg_t pc);
-reg_t opcode_func_2ea(insn_t insn, reg_t pc);
-reg_t opcode_func_2eb(insn_t insn, reg_t pc);
-reg_t opcode_func_2ec(insn_t insn, reg_t pc);
-reg_t opcode_func_2ed(insn_t insn, reg_t pc);
-reg_t opcode_func_2ee(insn_t insn, reg_t pc);
-reg_t opcode_func_2ef(insn_t insn, reg_t pc);
-reg_t opcode_func_2f0(insn_t insn, reg_t pc);
-reg_t opcode_func_2f1(insn_t insn, reg_t pc);
-reg_t opcode_func_2f2(insn_t insn, reg_t pc);
-reg_t opcode_func_2f3(insn_t insn, reg_t pc);
-reg_t opcode_func_2f4(insn_t insn, reg_t pc);
-reg_t opcode_func_2f5(insn_t insn, reg_t pc);
-reg_t opcode_func_2f6(insn_t insn, reg_t pc);
-reg_t opcode_func_2f7(insn_t insn, reg_t pc);
-reg_t opcode_func_2f8(insn_t insn, reg_t pc);
-reg_t opcode_func_2f9(insn_t insn, reg_t pc);
-reg_t opcode_func_2fa(insn_t insn, reg_t pc);
-reg_t opcode_func_2fb(insn_t insn, reg_t pc);
-reg_t opcode_func_2fc(insn_t insn, reg_t pc);
-reg_t opcode_func_2fd(insn_t insn, reg_t pc);
-reg_t opcode_func_2fe(insn_t insn, reg_t pc);
-reg_t opcode_func_2ff(insn_t insn, reg_t pc);
-reg_t opcode_func_300(insn_t insn, reg_t pc);
-reg_t opcode_func_301(insn_t insn, reg_t pc);
-reg_t opcode_func_302(insn_t insn, reg_t pc);
-reg_t opcode_func_303(insn_t insn, reg_t pc);
-reg_t opcode_func_304(insn_t insn, reg_t pc);
-reg_t opcode_func_305(insn_t insn, reg_t pc);
-reg_t opcode_func_306(insn_t insn, reg_t pc);
-reg_t opcode_func_307(insn_t insn, reg_t pc);
-reg_t opcode_func_308(insn_t insn, reg_t pc);
-reg_t opcode_func_309(insn_t insn, reg_t pc);
-reg_t opcode_func_30a(insn_t insn, reg_t pc);
-reg_t opcode_func_30b(insn_t insn, reg_t pc);
-reg_t opcode_func_30c(insn_t insn, reg_t pc);
-reg_t opcode_func_30d(insn_t insn, reg_t pc);
-reg_t opcode_func_30e(insn_t insn, reg_t pc);
-reg_t opcode_func_30f(insn_t insn, reg_t pc);
-reg_t opcode_func_310(insn_t insn, reg_t pc);
-reg_t opcode_func_311(insn_t insn, reg_t pc);
-reg_t opcode_func_312(insn_t insn, reg_t pc);
-reg_t opcode_func_313(insn_t insn, reg_t pc);
-reg_t opcode_func_314(insn_t insn, reg_t pc);
-reg_t opcode_func_315(insn_t insn, reg_t pc);
-reg_t opcode_func_316(insn_t insn, reg_t pc);
-reg_t opcode_func_317(insn_t insn, reg_t pc);
-reg_t opcode_func_318(insn_t insn, reg_t pc);
-reg_t opcode_func_319(insn_t insn, reg_t pc);
-reg_t opcode_func_31a(insn_t insn, reg_t pc);
-reg_t opcode_func_31b(insn_t insn, reg_t pc);
-reg_t opcode_func_31c(insn_t insn, reg_t pc);
-reg_t opcode_func_31d(insn_t insn, reg_t pc);
-reg_t opcode_func_31e(insn_t insn, reg_t pc);
-reg_t opcode_func_31f(insn_t insn, reg_t pc);
-reg_t opcode_func_320(insn_t insn, reg_t pc);
-reg_t opcode_func_321(insn_t insn, reg_t pc);
-reg_t opcode_func_322(insn_t insn, reg_t pc);
-reg_t opcode_func_323(insn_t insn, reg_t pc);
-reg_t opcode_func_324(insn_t insn, reg_t pc);
-reg_t opcode_func_325(insn_t insn, reg_t pc);
-reg_t opcode_func_326(insn_t insn, reg_t pc);
-reg_t opcode_func_327(insn_t insn, reg_t pc);
-reg_t opcode_func_328(insn_t insn, reg_t pc);
-reg_t opcode_func_329(insn_t insn, reg_t pc);
-reg_t opcode_func_32a(insn_t insn, reg_t pc);
-reg_t opcode_func_32b(insn_t insn, reg_t pc);
-reg_t opcode_func_32c(insn_t insn, reg_t pc);
-reg_t opcode_func_32d(insn_t insn, reg_t pc);
-reg_t opcode_func_32e(insn_t insn, reg_t pc);
-reg_t opcode_func_32f(insn_t insn, reg_t pc);
-reg_t opcode_func_330(insn_t insn, reg_t pc);
-reg_t opcode_func_331(insn_t insn, reg_t pc);
-reg_t opcode_func_332(insn_t insn, reg_t pc);
-reg_t opcode_func_333(insn_t insn, reg_t pc);
-reg_t opcode_func_334(insn_t insn, reg_t pc);
-reg_t opcode_func_335(insn_t insn, reg_t pc);
-reg_t opcode_func_336(insn_t insn, reg_t pc);
-reg_t opcode_func_337(insn_t insn, reg_t pc);
-reg_t opcode_func_338(insn_t insn, reg_t pc);
-reg_t opcode_func_339(insn_t insn, reg_t pc);
-reg_t opcode_func_33a(insn_t insn, reg_t pc);
-reg_t opcode_func_33b(insn_t insn, reg_t pc);
-reg_t opcode_func_33c(insn_t insn, reg_t pc);
-reg_t opcode_func_33d(insn_t insn, reg_t pc);
-reg_t opcode_func_33e(insn_t insn, reg_t pc);
-reg_t opcode_func_33f(insn_t insn, reg_t pc);
-reg_t opcode_func_340(insn_t insn, reg_t pc);
-reg_t opcode_func_341(insn_t insn, reg_t pc);
-reg_t opcode_func_342(insn_t insn, reg_t pc);
-reg_t opcode_func_343(insn_t insn, reg_t pc);
-reg_t opcode_func_344(insn_t insn, reg_t pc);
-reg_t opcode_func_345(insn_t insn, reg_t pc);
-reg_t opcode_func_346(insn_t insn, reg_t pc);
-reg_t opcode_func_347(insn_t insn, reg_t pc);
-reg_t opcode_func_348(insn_t insn, reg_t pc);
-reg_t opcode_func_349(insn_t insn, reg_t pc);
-reg_t opcode_func_34a(insn_t insn, reg_t pc);
-reg_t opcode_func_34b(insn_t insn, reg_t pc);
-reg_t opcode_func_34c(insn_t insn, reg_t pc);
-reg_t opcode_func_34d(insn_t insn, reg_t pc);
-reg_t opcode_func_34e(insn_t insn, reg_t pc);
-reg_t opcode_func_34f(insn_t insn, reg_t pc);
-reg_t opcode_func_350(insn_t insn, reg_t pc);
-reg_t opcode_func_351(insn_t insn, reg_t pc);
-reg_t opcode_func_352(insn_t insn, reg_t pc);
-reg_t opcode_func_353(insn_t insn, reg_t pc);
-reg_t opcode_func_354(insn_t insn, reg_t pc);
-reg_t opcode_func_355(insn_t insn, reg_t pc);
-reg_t opcode_func_356(insn_t insn, reg_t pc);
-reg_t opcode_func_357(insn_t insn, reg_t pc);
-reg_t opcode_func_358(insn_t insn, reg_t pc);
-reg_t opcode_func_359(insn_t insn, reg_t pc);
-reg_t opcode_func_35a(insn_t insn, reg_t pc);
-reg_t opcode_func_35b(insn_t insn, reg_t pc);
-reg_t opcode_func_35c(insn_t insn, reg_t pc);
-reg_t opcode_func_35d(insn_t insn, reg_t pc);
-reg_t opcode_func_35e(insn_t insn, reg_t pc);
-reg_t opcode_func_35f(insn_t insn, reg_t pc);
-reg_t opcode_func_360(insn_t insn, reg_t pc);
-reg_t opcode_func_361(insn_t insn, reg_t pc);
-reg_t opcode_func_362(insn_t insn, reg_t pc);
-reg_t opcode_func_363(insn_t insn, reg_t pc);
-reg_t opcode_func_364(insn_t insn, reg_t pc);
-reg_t opcode_func_365(insn_t insn, reg_t pc);
-reg_t opcode_func_366(insn_t insn, reg_t pc);
-reg_t opcode_func_367(insn_t insn, reg_t pc);
-reg_t opcode_func_368(insn_t insn, reg_t pc);
-reg_t opcode_func_369(insn_t insn, reg_t pc);
-reg_t opcode_func_36a(insn_t insn, reg_t pc);
-reg_t opcode_func_36b(insn_t insn, reg_t pc);
-reg_t opcode_func_36c(insn_t insn, reg_t pc);
-reg_t opcode_func_36d(insn_t insn, reg_t pc);
-reg_t opcode_func_36e(insn_t insn, reg_t pc);
-reg_t opcode_func_36f(insn_t insn, reg_t pc);
-reg_t opcode_func_370(insn_t insn, reg_t pc);
-reg_t opcode_func_371(insn_t insn, reg_t pc);
-reg_t opcode_func_372(insn_t insn, reg_t pc);
-reg_t opcode_func_373(insn_t insn, reg_t pc);
-reg_t opcode_func_374(insn_t insn, reg_t pc);
-reg_t opcode_func_375(insn_t insn, reg_t pc);
-reg_t opcode_func_376(insn_t insn, reg_t pc);
-reg_t opcode_func_377(insn_t insn, reg_t pc);
-reg_t opcode_func_378(insn_t insn, reg_t pc);
-reg_t opcode_func_379(insn_t insn, reg_t pc);
-reg_t opcode_func_37a(insn_t insn, reg_t pc);
-reg_t opcode_func_37b(insn_t insn, reg_t pc);
-reg_t opcode_func_37c(insn_t insn, reg_t pc);
-reg_t opcode_func_37d(insn_t insn, reg_t pc);
-reg_t opcode_func_37e(insn_t insn, reg_t pc);
-reg_t opcode_func_37f(insn_t insn, reg_t pc);
-reg_t opcode_func_380(insn_t insn, reg_t pc);
-reg_t opcode_func_381(insn_t insn, reg_t pc);
-reg_t opcode_func_382(insn_t insn, reg_t pc);
-reg_t opcode_func_383(insn_t insn, reg_t pc);
-reg_t opcode_func_384(insn_t insn, reg_t pc);
-reg_t opcode_func_385(insn_t insn, reg_t pc);
-reg_t opcode_func_386(insn_t insn, reg_t pc);
-reg_t opcode_func_387(insn_t insn, reg_t pc);
-reg_t opcode_func_388(insn_t insn, reg_t pc);
-reg_t opcode_func_389(insn_t insn, reg_t pc);
-reg_t opcode_func_38a(insn_t insn, reg_t pc);
-reg_t opcode_func_38b(insn_t insn, reg_t pc);
-reg_t opcode_func_38c(insn_t insn, reg_t pc);
-reg_t opcode_func_38d(insn_t insn, reg_t pc);
-reg_t opcode_func_38e(insn_t insn, reg_t pc);
-reg_t opcode_func_38f(insn_t insn, reg_t pc);
-reg_t opcode_func_390(insn_t insn, reg_t pc);
-reg_t opcode_func_391(insn_t insn, reg_t pc);
-reg_t opcode_func_392(insn_t insn, reg_t pc);
-reg_t opcode_func_393(insn_t insn, reg_t pc);
-reg_t opcode_func_394(insn_t insn, reg_t pc);
-reg_t opcode_func_395(insn_t insn, reg_t pc);
-reg_t opcode_func_396(insn_t insn, reg_t pc);
-reg_t opcode_func_397(insn_t insn, reg_t pc);
-reg_t opcode_func_398(insn_t insn, reg_t pc);
-reg_t opcode_func_399(insn_t insn, reg_t pc);
-reg_t opcode_func_39a(insn_t insn, reg_t pc);
-reg_t opcode_func_39b(insn_t insn, reg_t pc);
-reg_t opcode_func_39c(insn_t insn, reg_t pc);
-reg_t opcode_func_39d(insn_t insn, reg_t pc);
-reg_t opcode_func_39e(insn_t insn, reg_t pc);
-reg_t opcode_func_39f(insn_t insn, reg_t pc);
-reg_t opcode_func_3a0(insn_t insn, reg_t pc);
-reg_t opcode_func_3a1(insn_t insn, reg_t pc);
-reg_t opcode_func_3a2(insn_t insn, reg_t pc);
-reg_t opcode_func_3a3(insn_t insn, reg_t pc);
-reg_t opcode_func_3a4(insn_t insn, reg_t pc);
-reg_t opcode_func_3a5(insn_t insn, reg_t pc);
-reg_t opcode_func_3a6(insn_t insn, reg_t pc);
-reg_t opcode_func_3a7(insn_t insn, reg_t pc);
-reg_t opcode_func_3a8(insn_t insn, reg_t pc);
-reg_t opcode_func_3a9(insn_t insn, reg_t pc);
-reg_t opcode_func_3aa(insn_t insn, reg_t pc);
-reg_t opcode_func_3ab(insn_t insn, reg_t pc);
-reg_t opcode_func_3ac(insn_t insn, reg_t pc);
-reg_t opcode_func_3ad(insn_t insn, reg_t pc);
-reg_t opcode_func_3ae(insn_t insn, reg_t pc);
-reg_t opcode_func_3af(insn_t insn, reg_t pc);
-reg_t opcode_func_3b0(insn_t insn, reg_t pc);
-reg_t opcode_func_3b1(insn_t insn, reg_t pc);
-reg_t opcode_func_3b2(insn_t insn, reg_t pc);
-reg_t opcode_func_3b3(insn_t insn, reg_t pc);
-reg_t opcode_func_3b4(insn_t insn, reg_t pc);
-reg_t opcode_func_3b5(insn_t insn, reg_t pc);
-reg_t opcode_func_3b6(insn_t insn, reg_t pc);
-reg_t opcode_func_3b7(insn_t insn, reg_t pc);
-reg_t opcode_func_3b8(insn_t insn, reg_t pc);
-reg_t opcode_func_3b9(insn_t insn, reg_t pc);
-reg_t opcode_func_3ba(insn_t insn, reg_t pc);
-reg_t opcode_func_3bb(insn_t insn, reg_t pc);
-reg_t opcode_func_3bc(insn_t insn, reg_t pc);
-reg_t opcode_func_3bd(insn_t insn, reg_t pc);
-reg_t opcode_func_3be(insn_t insn, reg_t pc);
-reg_t opcode_func_3bf(insn_t insn, reg_t pc);
-reg_t opcode_func_3c0(insn_t insn, reg_t pc);
-reg_t opcode_func_3c1(insn_t insn, reg_t pc);
-reg_t opcode_func_3c2(insn_t insn, reg_t pc);
-reg_t opcode_func_3c3(insn_t insn, reg_t pc);
-reg_t opcode_func_3c4(insn_t insn, reg_t pc);
-reg_t opcode_func_3c5(insn_t insn, reg_t pc);
-reg_t opcode_func_3c6(insn_t insn, reg_t pc);
-reg_t opcode_func_3c7(insn_t insn, reg_t pc);
-reg_t opcode_func_3c8(insn_t insn, reg_t pc);
-reg_t opcode_func_3c9(insn_t insn, reg_t pc);
-reg_t opcode_func_3ca(insn_t insn, reg_t pc);
-reg_t opcode_func_3cb(insn_t insn, reg_t pc);
-reg_t opcode_func_3cc(insn_t insn, reg_t pc);
-reg_t opcode_func_3cd(insn_t insn, reg_t pc);
-reg_t opcode_func_3ce(insn_t insn, reg_t pc);
-reg_t opcode_func_3cf(insn_t insn, reg_t pc);
-reg_t opcode_func_3d0(insn_t insn, reg_t pc);
-reg_t opcode_func_3d1(insn_t insn, reg_t pc);
-reg_t opcode_func_3d2(insn_t insn, reg_t pc);
-reg_t opcode_func_3d3(insn_t insn, reg_t pc);
-reg_t opcode_func_3d4(insn_t insn, reg_t pc);
-reg_t opcode_func_3d5(insn_t insn, reg_t pc);
-reg_t opcode_func_3d6(insn_t insn, reg_t pc);
-reg_t opcode_func_3d7(insn_t insn, reg_t pc);
-reg_t opcode_func_3d8(insn_t insn, reg_t pc);
-reg_t opcode_func_3d9(insn_t insn, reg_t pc);
-reg_t opcode_func_3da(insn_t insn, reg_t pc);
-reg_t opcode_func_3db(insn_t insn, reg_t pc);
-reg_t opcode_func_3dc(insn_t insn, reg_t pc);
-reg_t opcode_func_3dd(insn_t insn, reg_t pc);
-reg_t opcode_func_3de(insn_t insn, reg_t pc);
-reg_t opcode_func_3df(insn_t insn, reg_t pc);
-reg_t opcode_func_3e0(insn_t insn, reg_t pc);
-reg_t opcode_func_3e1(insn_t insn, reg_t pc);
-reg_t opcode_func_3e2(insn_t insn, reg_t pc);
-reg_t opcode_func_3e3(insn_t insn, reg_t pc);
-reg_t opcode_func_3e4(insn_t insn, reg_t pc);
-reg_t opcode_func_3e5(insn_t insn, reg_t pc);
-reg_t opcode_func_3e6(insn_t insn, reg_t pc);
-reg_t opcode_func_3e7(insn_t insn, reg_t pc);
-reg_t opcode_func_3e8(insn_t insn, reg_t pc);
-reg_t opcode_func_3e9(insn_t insn, reg_t pc);
-reg_t opcode_func_3ea(insn_t insn, reg_t pc);
-reg_t opcode_func_3eb(insn_t insn, reg_t pc);
-reg_t opcode_func_3ec(insn_t insn, reg_t pc);
-reg_t opcode_func_3ed(insn_t insn, reg_t pc);
-reg_t opcode_func_3ee(insn_t insn, reg_t pc);
-reg_t opcode_func_3ef(insn_t insn, reg_t pc);
-reg_t opcode_func_3f0(insn_t insn, reg_t pc);
-reg_t opcode_func_3f1(insn_t insn, reg_t pc);
-reg_t opcode_func_3f2(insn_t insn, reg_t pc);
-reg_t opcode_func_3f3(insn_t insn, reg_t pc);
-reg_t opcode_func_3f4(insn_t insn, reg_t pc);
-reg_t opcode_func_3f5(insn_t insn, reg_t pc);
-reg_t opcode_func_3f6(insn_t insn, reg_t pc);
-reg_t opcode_func_3f7(insn_t insn, reg_t pc);
-reg_t opcode_func_3f8(insn_t insn, reg_t pc);
-reg_t opcode_func_3f9(insn_t insn, reg_t pc);
-reg_t opcode_func_3fa(insn_t insn, reg_t pc);
-reg_t opcode_func_3fb(insn_t insn, reg_t pc);
-reg_t opcode_func_3fc(insn_t insn, reg_t pc);
-reg_t opcode_func_3fd(insn_t insn, reg_t pc);
-reg_t opcode_func_3fe(insn_t insn, reg_t pc);
-reg_t opcode_func_3ff(insn_t insn, reg_t pc);
diff --git a/riscv/insn_footer.h b/riscv/insn_footer.h
new file mode 100644
index 0000000..0d53966
--- /dev/null
+++ b/riscv/insn_footer.h
@@ -0,0 +1,2 @@
+ return npc;
+}
diff --git a/riscv/insn_header.h b/riscv/insn_header.h
new file mode 100644
index 0000000..6a8f818
--- /dev/null
+++ b/riscv/insn_header.h
@@ -0,0 +1,22 @@
+#include "processor.h"
+#include "common.h"
+#include "config.h"
+#include "sim.h"
+#include "softfloat.h"
+#include "platform.h" // softfloat isNaNF32UI, etc.
+#include "internals.h" // ditto
+
+#define DECLARE_INSN(name, opcode, mask) \
+ const uint32_t MATCH_ ## name = opcode; \
+ const uint32_t MASK_ ## name = mask;
+#include "opcodes.h"
+#undef DECLARE_INSN
+
+reg_t processor_t::FUNC (insn_t insn, reg_t pc)
+{
+ #define MASK (~(DISPATCH_TABLE_SIZE-1) & OPCODE_MASK)
+ #define MATCH (~(DISPATCH_TABLE_SIZE-1) & OPCODE_MATCH)
+ if(unlikely((insn.bits & MASK) != MATCH))
+ throw trap_illegal_instruction;
+
+ reg_t npc = pc + insn_length(OPCODE_MATCH);
diff --git a/riscv/insn_includes.h b/riscv/insn_includes.h
deleted file mode 100644
index 9496572..0000000
--- a/riscv/insn_includes.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "processor.h"
-#include "common.h"
-#include "config.h"
-#include "sim.h"
-#include "softfloat.h"
-#include "platform.h" // softfloat isNaNF32UI, etc.
-#include "internals.h" // ditto
diff --git a/riscv/insns/jalr_j.h b/riscv/insns/jalr_j.h
index 5e9bb49..0d2ef12 100644
--- a/riscv/insns/jalr_j.h
+++ b/riscv/insns/jalr_j.h
@@ -1 +1 @@
-#include "jalr_c.h"
+#include "insns/jalr_c.h"
diff --git a/riscv/insns/jalr_r.h b/riscv/insns/jalr_r.h
index 5e9bb49..0d2ef12 100644
--- a/riscv/insns/jalr_r.h
+++ b/riscv/insns/jalr_r.h
@@ -1 +1 @@
-#include "jalr_c.h"
+#include "insns/jalr_c.h"
diff --git a/riscv/opcodes.h b/riscv/opcodes.h
new file mode 100644
index 0000000..b37b833
--- /dev/null
+++ b/riscv/opcodes.h
@@ -0,0 +1,272 @@
+DECLARE_INSN(movn, 0x6f7, 0x1ffff)
+DECLARE_INSN(vfsstw, 0x150f, 0x1ffff)
+DECLARE_INSN(remuw, 0x7bb, 0x1ffff)
+DECLARE_INSN(fmin_d, 0x180d3, 0x1ffff)
+DECLARE_INSN(vlsthu, 0x128b, 0x1ffff)
+DECLARE_INSN(c_swsp, 0x8, 0x1f)
+DECLARE_INSN(bltu, 0x363, 0x3ff)
+DECLARE_INSN(vlsegstwu, 0xb0b, 0xfff)
+DECLARE_INSN(movz, 0x2f7, 0x1ffff)
+DECLARE_INSN(fcvt_lu_s, 0x9053, 0x3ff1ff)
+DECLARE_INSN(fence_l_cv, 0x32f, 0x3ff)
+DECLARE_INSN(fmin_s, 0x18053, 0x1ffff)
+DECLARE_INSN(c_lw0, 0x12, 0x801f)
+DECLARE_INSN(slliw, 0x9b, 0x3f83ff)
+DECLARE_INSN(lb, 0x3, 0x3ff)
+DECLARE_INSN(vlwu, 0x30b, 0x3fffff)
+DECLARE_INSN(fcvt_d_l, 0xc0d3, 0x3ff1ff)
+DECLARE_INSN(lh, 0x83, 0x3ff)
+DECLARE_INSN(fcvt_d_w, 0xe0d3, 0x3ff1ff)
+DECLARE_INSN(lw, 0x103, 0x3ff)
+DECLARE_INSN(add, 0x33, 0x1ffff)
+DECLARE_INSN(fcvt_d_s, 0x100d3, 0x3ff1ff)
+DECLARE_INSN(fence_g_v, 0x2af, 0x3ff)
+DECLARE_INSN(mfpcr, 0x17b, 0x7c1ffff)
+DECLARE_INSN(c_fsd, 0x18, 0x1f)
+DECLARE_INSN(fmax_d, 0x190d3, 0x1ffff)
+DECLARE_INSN(bne, 0xe3, 0x3ff)
+DECLARE_INSN(rdcycle, 0x277, 0x7ffffff)
+DECLARE_INSN(fcvt_s_d, 0x11053, 0x3ff1ff)
+DECLARE_INSN(vlh, 0x8b, 0x3fffff)
+DECLARE_INSN(bgeu, 0x3e3, 0x3ff)
+DECLARE_INSN(vflstd, 0x158b, 0x1ffff)
+DECLARE_INSN(c_li, 0x0, 0x1f)
+DECLARE_INSN(di, 0xfb, 0x7ffffff)
+DECLARE_INSN(sltiu, 0x193, 0x3ff)
+DECLARE_INSN(mtpcr, 0x1fb, 0xf801ffff)
+DECLARE_INSN(vlb, 0xb, 0x3fffff)
+DECLARE_INSN(stop, 0x177, 0xffffffff)
+DECLARE_INSN(vld, 0x18b, 0x3fffff)
+DECLARE_INSN(c_slli, 0x19, 0x1c1f)
+DECLARE_INSN(break, 0xf7, 0xffffffff)
+DECLARE_INSN(cflush, 0x2fb, 0xffffffff)
+DECLARE_INSN(fcvt_s_w, 0xe053, 0x3ff1ff)
+DECLARE_INSN(vflstw, 0x150b, 0x1ffff)
+DECLARE_INSN(mul, 0x433, 0x1ffff)
+DECLARE_INSN(c_lw, 0xa, 0x1f)
+DECLARE_INSN(vlw, 0x10b, 0x3fffff)
+DECLARE_INSN(vssegstw, 0x90f, 0xfff)
+DECLARE_INSN(amominu_d, 0x19ab, 0x1ffff)
+DECLARE_INSN(c_sdsp, 0x6, 0x1f)
+DECLARE_INSN(utidx, 0x1f7, 0x7ffffff)
+DECLARE_INSN(srli, 0x293, 0x3f03ff)
+DECLARE_INSN(c_srli, 0x819, 0x1c1f)
+DECLARE_INSN(c_ldsp, 0x4, 0x1f)
+DECLARE_INSN(c_flw, 0x14, 0x1f)
+DECLARE_INSN(c_srai32, 0x1419, 0x1c1f)
+DECLARE_INSN(amominu_w, 0x192b, 0x1ffff)
+DECLARE_INSN(divuw, 0x6bb, 0x1ffff)
+DECLARE_INSN(mulw, 0x43b, 0x1ffff)
+DECLARE_INSN(vssegstd, 0x98f, 0xfff)
+DECLARE_INSN(srlw, 0x2bb, 0x1ffff)
+DECLARE_INSN(vssegstb, 0x80f, 0xfff)
+DECLARE_INSN(mftx_d, 0x1c0d3, 0x7c1ffff)
+DECLARE_INSN(div, 0x633, 0x1ffff)
+DECLARE_INSN(c_ld, 0x9, 0x1f)
+DECLARE_INSN(mftx_s, 0x1c053, 0x7c1ffff)
+DECLARE_INSN(vssegsth, 0x88f, 0xfff)
+DECLARE_INSN(vvcfgivl, 0xf3, 0x3ff)
+DECLARE_INSN(j, 0x67, 0x7f)
+DECLARE_INSN(ei, 0x7b, 0x7ffffff)
+DECLARE_INSN(fence, 0x12f, 0x3ff)
+DECLARE_INSN(vsw, 0x10f, 0x3fffff)
+DECLARE_INSN(fnmsub_s, 0x4b, 0x1ff)
+DECLARE_INSN(vfssegstd, 0xd8f, 0xfff)
+DECLARE_INSN(fcvt_l_s, 0x8053, 0x3ff1ff)
+DECLARE_INSN(fle_s, 0x17053, 0x1ffff)
+DECLARE_INSN(vsb, 0xf, 0x3fffff)
+DECLARE_INSN(mffsr, 0x1d053, 0x7ffffff)
+DECLARE_INSN(fdiv_s, 0x3053, 0x1f1ff)
+DECLARE_INSN(vlstbu, 0x120b, 0x1ffff)
+DECLARE_INSN(vsetvl, 0x2f3, 0x3fffff)
+DECLARE_INSN(fle_d, 0x170d3, 0x1ffff)
+DECLARE_INSN(fence_i, 0xaf, 0x3ff)
+DECLARE_INSN(vlsegbu, 0x220b, 0x1ffff)
+DECLARE_INSN(fnmsub_d, 0xcb, 0x1ff)
+DECLARE_INSN(addw, 0x3b, 0x1ffff)
+DECLARE_INSN(sll, 0xb3, 0x1ffff)
+DECLARE_INSN(xor, 0x233, 0x1ffff)
+DECLARE_INSN(sub, 0x10033, 0x1ffff)
+DECLARE_INSN(eret, 0x27b, 0xffffffff)
+DECLARE_INSN(blt, 0x263, 0x3ff)
+DECLARE_INSN(vsstw, 0x110f, 0x1ffff)
+DECLARE_INSN(mtfsr, 0x1f053, 0x3fffff)
+DECLARE_INSN(vssth, 0x108f, 0x1ffff)
+DECLARE_INSN(rem, 0x733, 0x1ffff)
+DECLARE_INSN(srliw, 0x29b, 0x3f83ff)
+DECLARE_INSN(lui, 0x37, 0x7f)
+DECLARE_INSN(vsstb, 0x100f, 0x1ffff)
+DECLARE_INSN(fcvt_s_lu, 0xd053, 0x3ff1ff)
+DECLARE_INSN(vsstd, 0x118f, 0x1ffff)
+DECLARE_INSN(addi, 0x13, 0x3ff)
+DECLARE_INSN(vfmst, 0x1173, 0x1ffff)
+DECLARE_INSN(mulh, 0x4b3, 0x1ffff)
+DECLARE_INSN(fmul_s, 0x2053, 0x1f1ff)
+DECLARE_INSN(vlsegsthu, 0xa8b, 0xfff)
+DECLARE_INSN(srai, 0x10293, 0x3f03ff)
+DECLARE_INSN(amoand_d, 0x9ab, 0x1ffff)
+DECLARE_INSN(flt_d, 0x160d3, 0x1ffff)
+DECLARE_INSN(sraw, 0x102bb, 0x1ffff)
+DECLARE_INSN(fmul_d, 0x20d3, 0x1f1ff)
+DECLARE_INSN(ld, 0x183, 0x3ff)
+DECLARE_INSN(ori, 0x313, 0x3ff)
+DECLARE_INSN(flt_s, 0x16053, 0x1ffff)
+DECLARE_INSN(addiw, 0x1b, 0x3ff)
+DECLARE_INSN(amoand_w, 0x92b, 0x1ffff)
+DECLARE_INSN(feq_s, 0x15053, 0x1ffff)
+DECLARE_INSN(fsgnjx_d, 0x70d3, 0x1ffff)
+DECLARE_INSN(sra, 0x102b3, 0x1ffff)
+DECLARE_INSN(c_lwsp, 0x5, 0x1f)
+DECLARE_INSN(bge, 0x2e3, 0x3ff)
+DECLARE_INSN(c_add3, 0x1c, 0x31f)
+DECLARE_INSN(sraiw, 0x1029b, 0x3f83ff)
+DECLARE_INSN(vssegd, 0x218f, 0x1ffff)
+DECLARE_INSN(srl, 0x2b3, 0x1ffff)
+DECLARE_INSN(vfmts, 0x1973, 0x1ffff)
+DECLARE_INSN(fsgnjx_s, 0x7053, 0x1ffff)
+DECLARE_INSN(vfmsv, 0x973, 0x3fffff)
+DECLARE_INSN(feq_d, 0x150d3, 0x1ffff)
+DECLARE_INSN(fcvt_d_wu, 0xf0d3, 0x3ff1ff)
+DECLARE_INSN(vmts, 0x1873, 0x1ffff)
+DECLARE_INSN(or, 0x333, 0x1ffff)
+DECLARE_INSN(rdinstret, 0xa77, 0x7ffffff)
+DECLARE_INSN(fcvt_wu_d, 0xb0d3, 0x3ff1ff)
+DECLARE_INSN(subw, 0x1003b, 0x1ffff)
+DECLARE_INSN(jalr_c, 0x6b, 0x3ff)
+DECLARE_INSN(fmax_s, 0x19053, 0x1ffff)
+DECLARE_INSN(amomaxu_d, 0x1dab, 0x1ffff)
+DECLARE_INSN(c_slliw, 0x1819, 0x1c1f)
+DECLARE_INSN(jalr_j, 0x16b, 0x3ff)
+DECLARE_INSN(c_fld, 0x15, 0x1f)
+DECLARE_INSN(vlstw, 0x110b, 0x1ffff)
+DECLARE_INSN(vlsth, 0x108b, 0x1ffff)
+DECLARE_INSN(xori, 0x213, 0x3ff)
+DECLARE_INSN(jalr_r, 0xeb, 0x3ff)
+DECLARE_INSN(amomaxu_w, 0x1d2b, 0x1ffff)
+DECLARE_INSN(fcvt_wu_s, 0xb053, 0x3ff1ff)
+DECLARE_INSN(vlstb, 0x100b, 0x1ffff)
+DECLARE_INSN(vlstd, 0x118b, 0x1ffff)
+DECLARE_INSN(c_ld0, 0x8012, 0x801f)
+DECLARE_INSN(rdtime, 0x677, 0x7ffffff)
+DECLARE_INSN(andi, 0x393, 0x3ff)
+DECLARE_INSN(c_srli32, 0xc19, 0x1c1f)
+DECLARE_INSN(fsgnjn_d, 0x60d3, 0x1ffff)
+DECLARE_INSN(fnmadd_s, 0x4f, 0x1ff)
+DECLARE_INSN(jal, 0x6f, 0x7f)
+DECLARE_INSN(lwu, 0x303, 0x3ff)
+DECLARE_INSN(vlsegstbu, 0xa0b, 0xfff)
+DECLARE_INSN(c_beq, 0x10, 0x1f)
+DECLARE_INSN(vlhu, 0x28b, 0x3fffff)
+DECLARE_INSN(vfsstd, 0x158f, 0x1ffff)
+DECLARE_INSN(c_bne, 0x11, 0x1f)
+DECLARE_INSN(fnmadd_d, 0xcf, 0x1ff)
+DECLARE_INSN(fence_g_cv, 0x3af, 0x3ff)
+DECLARE_INSN(amoadd_d, 0x1ab, 0x1ffff)
+DECLARE_INSN(c_sw, 0xd, 0x1f)
+DECLARE_INSN(amomax_w, 0x152b, 0x1ffff)
+DECLARE_INSN(c_move, 0x2, 0x801f)
+DECLARE_INSN(fmovn, 0xef7, 0x1ffff)
+DECLARE_INSN(c_fsw, 0x16, 0x1f)
+DECLARE_INSN(c_j, 0x8002, 0x801f)
+DECLARE_INSN(mulhsu, 0x533, 0x1ffff)
+DECLARE_INSN(c_sd, 0xc, 0x1f)
+DECLARE_INSN(amoadd_w, 0x12b, 0x1ffff)
+DECLARE_INSN(fcvt_d_lu, 0xd0d3, 0x3ff1ff)
+DECLARE_INSN(amomax_d, 0x15ab, 0x1ffff)
+DECLARE_INSN(fcvt_w_d, 0xa0d3, 0x3ff1ff)
+DECLARE_INSN(fmovz, 0xaf7, 0x1ffff)
+DECLARE_INSN(c_or3, 0x21c, 0x31f)
+DECLARE_INSN(vmvv, 0x73, 0x3fffff)
+DECLARE_INSN(vfssegstw, 0xd0f, 0xfff)
+DECLARE_INSN(slt, 0x133, 0x1ffff)
+DECLARE_INSN(mxtf_d, 0x1e0d3, 0x3fffff)
+DECLARE_INSN(sllw, 0xbb, 0x1ffff)
+DECLARE_INSN(amoor_d, 0xdab, 0x1ffff)
+DECLARE_INSN(slti, 0x113, 0x3ff)
+DECLARE_INSN(remu, 0x7b3, 0x1ffff)
+DECLARE_INSN(flw, 0x107, 0x3ff)
+DECLARE_INSN(remw, 0x73b, 0x1ffff)
+DECLARE_INSN(sltu, 0x1b3, 0x1ffff)
+DECLARE_INSN(slli, 0x93, 0x3f03ff)
+DECLARE_INSN(c_and3, 0x31c, 0x31f)
+DECLARE_INSN(vssegw, 0x210f, 0x1ffff)
+DECLARE_INSN(amoor_w, 0xd2b, 0x1ffff)
+DECLARE_INSN(vsd, 0x18f, 0x3fffff)
+DECLARE_INSN(beq, 0x63, 0x3ff)
+DECLARE_INSN(fld, 0x187, 0x3ff)
+DECLARE_INSN(mxtf_s, 0x1e053, 0x3fffff)
+DECLARE_INSN(fsub_s, 0x1053, 0x1f1ff)
+DECLARE_INSN(and, 0x3b3, 0x1ffff)
+DECLARE_INSN(vtcfgivl, 0x1f3, 0x3ff)
+DECLARE_INSN(lbu, 0x203, 0x3ff)
+DECLARE_INSN(vf, 0x3f3, 0xf80003ff)
+DECLARE_INSN(vlsegstw, 0x90b, 0xfff)
+DECLARE_INSN(syscall, 0x77, 0xffffffff)
+DECLARE_INSN(fsgnj_s, 0x5053, 0x1ffff)
+DECLARE_INSN(c_addi, 0x1, 0x1f)
+DECLARE_INSN(vfmvv, 0x173, 0x3fffff)
+DECLARE_INSN(vlstwu, 0x130b, 0x1ffff)
+DECLARE_INSN(c_sub3, 0x11c, 0x31f)
+DECLARE_INSN(vsh, 0x8f, 0x3fffff)
+DECLARE_INSN(vlsegstb, 0x80b, 0xfff)
+DECLARE_INSN(vlsegstd, 0x98b, 0xfff)
+DECLARE_INSN(vflsegd, 0x258b, 0x1ffff)
+DECLARE_INSN(vflsegw, 0x250b, 0x1ffff)
+DECLARE_INSN(vlsegsth, 0x88b, 0xfff)
+DECLARE_INSN(fsgnj_d, 0x50d3, 0x1ffff)
+DECLARE_INSN(vflsegstw, 0xd0b, 0xfff)
+DECLARE_INSN(c_sub, 0x801a, 0x801f)
+DECLARE_INSN(mulhu, 0x5b3, 0x1ffff)
+DECLARE_INSN(fcvt_l_d, 0x80d3, 0x3ff1ff)
+DECLARE_INSN(vmsv, 0x873, 0x3fffff)
+DECLARE_INSN(vmst, 0x1073, 0x1ffff)
+DECLARE_INSN(fadd_d, 0xd3, 0x1f1ff)
+DECLARE_INSN(fcvt_s_wu, 0xf053, 0x3ff1ff)
+DECLARE_INSN(rdnpc, 0x26b, 0x7ffffff)
+DECLARE_INSN(fcvt_s_l, 0xc053, 0x3ff1ff)
+DECLARE_INSN(vflsegstd, 0xd8b, 0xfff)
+DECLARE_INSN(c_add, 0x1a, 0x801f)
+DECLARE_INSN(fcvt_lu_d, 0x90d3, 0x3ff1ff)
+DECLARE_INSN(vfld, 0x58b, 0x3fffff)
+DECLARE_INSN(fsub_d, 0x10d3, 0x1f1ff)
+DECLARE_INSN(fmadd_s, 0x43, 0x1ff)
+DECLARE_INSN(fcvt_w_s, 0xa053, 0x3ff1ff)
+DECLARE_INSN(vssegh, 0x208f, 0x1ffff)
+DECLARE_INSN(fsqrt_s, 0x4053, 0x3ff1ff)
+DECLARE_INSN(c_srai, 0x1019, 0x1c1f)
+DECLARE_INSN(amomin_w, 0x112b, 0x1ffff)
+DECLARE_INSN(fsgnjn_s, 0x6053, 0x1ffff)
+DECLARE_INSN(c_slli32, 0x419, 0x1c1f)
+DECLARE_INSN(vlsegwu, 0x230b, 0x1ffff)
+DECLARE_INSN(vfsw, 0x50f, 0x3fffff)
+DECLARE_INSN(amoswap_d, 0x5ab, 0x1ffff)
+DECLARE_INSN(fence_l_v, 0x22f, 0x3ff)
+DECLARE_INSN(fsqrt_d, 0x40d3, 0x3ff1ff)
+DECLARE_INSN(vflw, 0x50b, 0x3fffff)
+DECLARE_INSN(fdiv_d, 0x30d3, 0x1f1ff)
+DECLARE_INSN(fmadd_d, 0xc3, 0x1ff)
+DECLARE_INSN(divw, 0x63b, 0x1ffff)
+DECLARE_INSN(amomin_d, 0x11ab, 0x1ffff)
+DECLARE_INSN(divu, 0x6b3, 0x1ffff)
+DECLARE_INSN(amoswap_w, 0x52b, 0x1ffff)
+DECLARE_INSN(vfsd, 0x58f, 0x3fffff)
+DECLARE_INSN(fadd_s, 0x53, 0x1f1ff)
+DECLARE_INSN(vlsegb, 0x200b, 0x1ffff)
+DECLARE_INSN(fsd, 0x1a7, 0x3ff)
+DECLARE_INSN(vlsegd, 0x218b, 0x1ffff)
+DECLARE_INSN(vlsegh, 0x208b, 0x1ffff)
+DECLARE_INSN(sw, 0x123, 0x3ff)
+DECLARE_INSN(fmsub_s, 0x47, 0x1ff)
+DECLARE_INSN(vfssegw, 0x250f, 0x1ffff)
+DECLARE_INSN(c_addiw, 0x1d, 0x1f)
+DECLARE_INSN(lhu, 0x283, 0x3ff)
+DECLARE_INSN(sh, 0xa3, 0x3ff)
+DECLARE_INSN(vlsegw, 0x210b, 0x1ffff)
+DECLARE_INSN(fsw, 0x127, 0x3ff)
+DECLARE_INSN(vlbu, 0x20b, 0x3fffff)
+DECLARE_INSN(sb, 0x23, 0x3ff)
+DECLARE_INSN(fmsub_d, 0xc7, 0x1ff)
+DECLARE_INSN(vlseghu, 0x228b, 0x1ffff)
+DECLARE_INSN(vssegb, 0x200f, 0x1ffff)
+DECLARE_INSN(vfssegd, 0x258f, 0x1ffff)
+DECLARE_INSN(sd, 0x1a3, 0x3ff)
diff --git a/riscv/processor.cc b/riscv/processor.cc
index eea2ce2..cb2188b 100644
--- a/riscv/processor.cc
+++ b/riscv/processor.cc
@@ -12,6 +12,7 @@
processor_t::processor_t(sim_t* _sim, char* _mem, size_t _memsz)
: sim(_sim), mmu(_mem,_memsz)
{
+ initialize_dispatch_table();
// a few assumptions about endianness, including freg_t union
static_assert(BYTE_ORDER == LITTLE_ENDIAN);
static_assert(sizeof(freg_t) == 8);
@@ -172,12 +173,10 @@ void processor_t::step(size_t n, bool noisy)
{
take_interrupt();
- #include "dispatch.h"
-
#define execute_insn(noisy) \
do { insn_t insn = mmu.load_insn(pc, sr & SR_EC); \
if(noisy) disasm(insn,pc); \
- pc = dispatch_table[dispatch_index(insn)](this, insn, pc); \
+ pc = dispatch_table[insn.bits % DISPATCH_TABLE_SIZE](this, insn, pc); \
XPR[0] = 0; } while(0)
if(noisy) for( ; i < n; i++)
@@ -267,3 +266,54 @@ void processor_t::disasm(insn_t insn, reg_t pc)
#endif
printf("\n");
}
+
+// if the lower log2(DISPATCH_TABLE_SIZE) bits of an instruction
+// uniquely identify that instruction, the dispatch table points
+// directly to that insn_func. otherwise, we search the short
+// list of instructions that match.
+
+insn_func_t processor_t::dispatch_table[DISPATCH_TABLE_SIZE];
+
+struct insn_chain_t
+{
+ insn_func_t func;
+ uint32_t opcode;
+ uint32_t mask;
+};
+static std::vector<insn_chain_t> dispatch_chain[DISPATCH_TABLE_SIZE];
+
+reg_t processor_t::dispatch(insn_t insn, reg_t pc)
+{
+ size_t idx = insn.bits % DISPATCH_TABLE_SIZE;
+ for(size_t i = 0; i < dispatch_chain[idx].size(); i++)
+ {
+ insn_chain_t& c = dispatch_chain[idx][i];
+ if((insn.bits & c.mask) == c.opcode)
+ return c.func(this, insn, pc);
+ }
+ throw trap_illegal_instruction;
+}
+
+void processor_t::initialize_dispatch_table()
+{
+ if(dispatch_table[0] != NULL)
+ return;
+
+ for(size_t i = 0; i < DISPATCH_TABLE_SIZE; i++)
+ {
+ #define DECLARE_INSN(name, opcode, mask) \
+ if((i & (mask)) == ((opcode) & (mask) & (DISPATCH_TABLE_SIZE-1))) \
+ dispatch_chain[i].push_back( \
+ (insn_chain_t){&processor_t::insn_func_ ## name, opcode, mask});
+ #include "opcodes.h"
+ #undef DECLARE_INSN
+ }
+
+ for(size_t i = 0; i < DISPATCH_TABLE_SIZE; i++)
+ {
+ if(dispatch_chain[i].size() == 1)
+ dispatch_table[i] = dispatch_chain[i][0].func;
+ else
+ dispatch_table[i] = &processor_t::dispatch;
+ }
+}
diff --git a/riscv/processor.h b/riscv/processor.h
index 10abe14..b72fa27 100644
--- a/riscv/processor.h
+++ b/riscv/processor.h
@@ -9,6 +9,10 @@
#define MAX_UTS 2048
+#define DISPATCH_TABLE_SIZE 1024
+class processor_t;
+typedef reg_t (*insn_func_t)(processor_t*, insn_t, reg_t);
+
class sim_t;
class processor_t
@@ -87,8 +91,14 @@ private:
icsim_t* dtlbsim;
friend class sim_t;
-
- #include "dispatch_decl.h"
+
+ static insn_func_t dispatch_table[DISPATCH_TABLE_SIZE];
+ reg_t dispatch(insn_t insn, reg_t pc);
+ static void initialize_dispatch_table();
+
+ #define DECLARE_INSN(name, m, o) reg_t insn_func_ ## name (insn_t, reg_t);
+ #include "opcodes.h"
+ #undef DECLARE_INSN
};
#endif
diff --git a/riscv/riscv.mk.in b/riscv/riscv.mk.in
index 202d437..f6553c1 100644
--- a/riscv/riscv.mk.in
+++ b/riscv/riscv.mk.in
@@ -2,16 +2,27 @@ riscv_subproject_deps = \
softfloat_riscv \
softfloat \
+riscv_insn_hdrs := $(notdir $(wildcard $(src_dir)/riscv/insns/*.h))
+
riscv_hdrs = \
applink.h \
common.h \
decode.h \
- dispatch.h \
mmu.h \
processor.h \
sim.h \
trap.h \
- insns/*.h \
+ opcodes.h \
+ insn_header.h \
+ insn_footer.h \
+
+$(patsubst %.h, %.cc, $(riscv_insn_hdrs)): %.cc: insns/%.h $(riscv_hdrs)
+ @echo \#define FUNC insn_func_$(@:.cc=) > $@
+ @echo \#define OPCODE_MASK MASK_$(@:.cc=) >> $@
+ @echo \#define OPCODE_MATCH MATCH_$(@:.cc=) >> $@
+ @cat $(src_dir)/riscv/insn_header.h >> $@
+ @cat $< >> $@
+ @cat $(src_dir)/riscv/insn_footer.h >> $@
riscv_srcs = \
applink.cc \
@@ -20,16 +31,7 @@ riscv_srcs = \
trap.cc \
icsim.cc \
mmu.cc \
- dispatch_0.cc \
- dispatch_1.cc \
- dispatch_2.cc \
- dispatch_3.cc \
- dispatch_4.cc \
- dispatch_5.cc \
- dispatch_6.cc \
- dispatch_7.cc \
- dispatch_8.cc \
- dispatch_9.cc \
+ $(patsubst %.h, %.cc, $(riscv_insn_hdrs)) \
riscv_test_srcs =