OSDN Git Service

Regenerate cgen files, update copyright year.
[pf3gnuchains/pf3gnuchains3x.git] / sid / component / cgen-cpu / sh / sh2e-decode.cxx
1 /* Simulator instruction decoder for sh2e.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright (C) 2000-2010 Red Hat, Inc.
6
7 This file is part of the Red Hat simulators.
8
9
10 */
11
12
13 #if HAVE_CONFIG_H
14 #include "config.h"
15 #endif
16 #include "sh2e.h"
17
18 using namespace sh2e; // FIXME: namespace organization still wip
19
20
21 // The instruction descriptor array. 
22
23 sh2e_idesc sh2e_idesc::idesc_table[SH2E_INSN_XTRCT_COMPACT + 1] =
24 {
25   { sh2e_sem_x_invalid, "X_INVALID", SH2E_INSN_X_INVALID, { 0|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_NONE } },
26   { sh2e_sem_add_compact, "ADD_COMPACT", SH2E_INSN_ADD_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
27   { sh2e_sem_addi_compact, "ADDI_COMPACT", SH2E_INSN_ADDI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_NONE } },
28   { sh2e_sem_addc_compact, "ADDC_COMPACT", SH2E_INSN_ADDC_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
29   { sh2e_sem_addv_compact, "ADDV_COMPACT", SH2E_INSN_ADDV_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
30   { sh2e_sem_and_compact, "AND_COMPACT", SH2E_INSN_AND_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
31   { sh2e_sem_andi_compact, "ANDI_COMPACT", SH2E_INSN_ANDI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
32   { sh2e_sem_andb_compact, "ANDB_COMPACT", SH2E_INSN_ANDB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
33   { sh2e_sem_bf_compact, "BF_COMPACT", SH2E_INSN_BF_COMPACT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_BR, SH4A_GROUP_BR } },
34   { sh2e_sem_bfs_compact, "BFS_COMPACT", SH2E_INSN_BFS_COMPACT, { 0|(1<<CGEN_INSN_DELAY_SLOT)|(1<<CGEN_INSN_COND_CTI), (1<<MACH_SH2)|(1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH2A_NOFPU)|(1<<MACH_SH3)|(1<<MACH_SH3E)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH4)|(1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_BR, SH4A_GROUP_BR } },
35   { sh2e_sem_bra_compact, "BRA_COMPACT", SH2E_INSN_BRA_COMPACT, { 0|(1<<CGEN_INSN_DELAY_SLOT)|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_BR, SH4A_GROUP_BR } },
36   { sh2e_sem_braf_compact, "BRAF_COMPACT", SH2E_INSN_BRAF_COMPACT, { 0|(1<<CGEN_INSN_DELAY_SLOT)|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_SH2)|(1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH2A_NOFPU)|(1<<MACH_SH3)|(1<<MACH_SH3E)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH4)|(1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_BR } },
37   { sh2e_sem_bsr_compact, "BSR_COMPACT", SH2E_INSN_BSR_COMPACT, { 0|(1<<CGEN_INSN_DELAY_SLOT)|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_BR, SH4A_GROUP_BR } },
38   { sh2e_sem_bsrf_compact, "BSRF_COMPACT", SH2E_INSN_BSRF_COMPACT, { 0|(1<<CGEN_INSN_DELAY_SLOT)|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_SH2)|(1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH2A_NOFPU)|(1<<MACH_SH3)|(1<<MACH_SH3E)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH4)|(1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_BR } },
39   { sh2e_sem_bt_compact, "BT_COMPACT", SH2E_INSN_BT_COMPACT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_BR, SH4A_GROUP_BR } },
40   { sh2e_sem_bts_compact, "BTS_COMPACT", SH2E_INSN_BTS_COMPACT, { 0|(1<<CGEN_INSN_DELAY_SLOT)|(1<<CGEN_INSN_COND_CTI), (1<<MACH_SH2)|(1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH2A_NOFPU)|(1<<MACH_SH3)|(1<<MACH_SH3E)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH4)|(1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_BR, SH4A_GROUP_BR } },
41   { sh2e_sem_clrmac_compact, "CLRMAC_COMPACT", SH2E_INSN_CLRMAC_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_EX } },
42   { sh2e_sem_clrt_compact, "CLRT_COMPACT", SH2E_INSN_CLRT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
43   { sh2e_sem_cmpeq_compact, "CMPEQ_COMPACT", SH2E_INSN_CMPEQ_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
44   { sh2e_sem_cmpeqi_compact, "CMPEQI_COMPACT", SH2E_INSN_CMPEQI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
45   { sh2e_sem_cmpge_compact, "CMPGE_COMPACT", SH2E_INSN_CMPGE_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
46   { sh2e_sem_cmpgt_compact, "CMPGT_COMPACT", SH2E_INSN_CMPGT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
47   { sh2e_sem_cmphi_compact, "CMPHI_COMPACT", SH2E_INSN_CMPHI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
48   { sh2e_sem_cmphs_compact, "CMPHS_COMPACT", SH2E_INSN_CMPHS_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
49   { sh2e_sem_cmppl_compact, "CMPPL_COMPACT", SH2E_INSN_CMPPL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
50   { sh2e_sem_cmppz_compact, "CMPPZ_COMPACT", SH2E_INSN_CMPPZ_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
51   { sh2e_sem_cmpstr_compact, "CMPSTR_COMPACT", SH2E_INSN_CMPSTR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
52   { sh2e_sem_div0s_compact, "DIV0S_COMPACT", SH2E_INSN_DIV0S_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
53   { sh2e_sem_div0u_compact, "DIV0U_COMPACT", SH2E_INSN_DIV0U_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
54   { sh2e_sem_div1_compact, "DIV1_COMPACT", SH2E_INSN_DIV1_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
55   { sh2e_sem_dmulsl_compact, "DMULSL_COMPACT", SH2E_INSN_DMULSL_COMPACT, { 0, (1<<MACH_SH2)|(1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH2A_NOFPU)|(1<<MACH_SH3)|(1<<MACH_SH3E)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH4)|(1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_EX } },
56   { sh2e_sem_dmulul_compact, "DMULUL_COMPACT", SH2E_INSN_DMULUL_COMPACT, { 0, (1<<MACH_SH2)|(1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH2A_NOFPU)|(1<<MACH_SH3)|(1<<MACH_SH3E)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH4)|(1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_EX } },
57   { sh2e_sem_dt_compact, "DT_COMPACT", SH2E_INSN_DT_COMPACT, { 0, (1<<MACH_SH2)|(1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH2A_NOFPU)|(1<<MACH_SH3)|(1<<MACH_SH3E)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH4)|(1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
58   { sh2e_sem_extsb_compact, "EXTSB_COMPACT", SH2E_INSN_EXTSB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
59   { sh2e_sem_extsw_compact, "EXTSW_COMPACT", SH2E_INSN_EXTSW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
60   { sh2e_sem_extub_compact, "EXTUB_COMPACT", SH2E_INSN_EXTUB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
61   { sh2e_sem_extuw_compact, "EXTUW_COMPACT", SH2E_INSN_EXTUW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
62   { sh2e_sem_fabs_compact, "FABS_COMPACT", SH2E_INSN_FABS_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
63   { sh2e_sem_fadd_compact, "FADD_COMPACT", SH2E_INSN_FADD_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
64   { sh2e_sem_fcmpeq_compact, "FCMPEQ_COMPACT", SH2E_INSN_FCMPEQ_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
65   { sh2e_sem_fcmpgt_compact, "FCMPGT_COMPACT", SH2E_INSN_FCMPGT_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
66   { sh2e_sem_fdiv_compact, "FDIV_COMPACT", SH2E_INSN_FDIV_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
67   { sh2e_sem_flds_compact, "FLDS_COMPACT", SH2E_INSN_FLDS_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
68   { sh2e_sem_fldi0_compact, "FLDI0_COMPACT", SH2E_INSN_FLDI0_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
69   { sh2e_sem_fldi1_compact, "FLDI1_COMPACT", SH2E_INSN_FLDI1_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
70   { sh2e_sem_float_compact, "FLOAT_COMPACT", SH2E_INSN_FLOAT_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
71   { sh2e_sem_fmac_compact, "FMAC_COMPACT", SH2E_INSN_FMAC_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
72   { sh2e_sem_fmov1_compact, "FMOV1_COMPACT", SH2E_INSN_FMOV1_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
73   { sh2e_sem_fmov2_compact, "FMOV2_COMPACT", SH2E_INSN_FMOV2_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
74   { sh2e_sem_fmov3_compact, "FMOV3_COMPACT", SH2E_INSN_FMOV3_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
75   { sh2e_sem_fmov4_compact, "FMOV4_COMPACT", SH2E_INSN_FMOV4_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
76   { sh2e_sem_fmov5_compact, "FMOV5_COMPACT", SH2E_INSN_FMOV5_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
77   { sh2e_sem_fmov6_compact, "FMOV6_COMPACT", SH2E_INSN_FMOV6_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
78   { sh2e_sem_fmov7_compact, "FMOV7_COMPACT", SH2E_INSN_FMOV7_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
79   { sh2e_sem_fmul_compact, "FMUL_COMPACT", SH2E_INSN_FMUL_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
80   { sh2e_sem_fneg_compact, "FNEG_COMPACT", SH2E_INSN_FNEG_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
81   { sh2e_sem_frchg_compact, "FRCHG_COMPACT", SH2E_INSN_FRCHG_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
82   { sh2e_sem_fschg_compact, "FSCHG_COMPACT", SH2E_INSN_FSCHG_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
83   { sh2e_sem_fsts_compact, "FSTS_COMPACT", SH2E_INSN_FSTS_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
84   { sh2e_sem_fsub_compact, "FSUB_COMPACT", SH2E_INSN_FSUB_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
85   { sh2e_sem_ftrc_compact, "FTRC_COMPACT", SH2E_INSN_FTRC_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
86   { sh2e_sem_jmp_compact, "JMP_COMPACT", SH2E_INSN_JMP_COMPACT, { 0|(1<<CGEN_INSN_DELAY_SLOT)|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_BR } },
87   { sh2e_sem_jsr_compact, "JSR_COMPACT", SH2E_INSN_JSR_COMPACT, { 0|(1<<CGEN_INSN_DELAY_SLOT)|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_BR } },
88   { sh2e_sem_ldc_gbr_compact, "LDC_GBR_COMPACT", SH2E_INSN_LDC_GBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
89   { sh2e_sem_ldc_vbr_compact, "LDC_VBR_COMPACT", SH2E_INSN_LDC_VBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
90   { sh2e_sem_ldc_sr_compact, "LDC_SR_COMPACT", SH2E_INSN_LDC_SR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
91   { sh2e_sem_ldcl_gbr_compact, "LDCL_GBR_COMPACT", SH2E_INSN_LDCL_GBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
92   { sh2e_sem_ldcl_vbr_compact, "LDCL_VBR_COMPACT", SH2E_INSN_LDCL_VBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
93   { sh2e_sem_lds_fpscr_compact, "LDS_FPSCR_COMPACT", SH2E_INSN_LDS_FPSCR_COMPACT, { 0, (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
94   { sh2e_sem_ldsl_fpscr_compact, "LDSL_FPSCR_COMPACT", SH2E_INSN_LDSL_FPSCR_COMPACT, { 0, (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
95   { sh2e_sem_lds_fpul_compact, "LDS_FPUL_COMPACT", SH2E_INSN_LDS_FPUL_COMPACT, { 0, (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
96   { sh2e_sem_ldsl_fpul_compact, "LDSL_FPUL_COMPACT", SH2E_INSN_LDSL_FPUL_COMPACT, { 0, (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
97   { sh2e_sem_lds_mach_compact, "LDS_MACH_COMPACT", SH2E_INSN_LDS_MACH_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
98   { sh2e_sem_ldsl_mach_compact, "LDSL_MACH_COMPACT", SH2E_INSN_LDSL_MACH_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
99   { sh2e_sem_lds_macl_compact, "LDS_MACL_COMPACT", SH2E_INSN_LDS_MACL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
100   { sh2e_sem_ldsl_macl_compact, "LDSL_MACL_COMPACT", SH2E_INSN_LDSL_MACL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
101   { sh2e_sem_lds_pr_compact, "LDS_PR_COMPACT", SH2E_INSN_LDS_PR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
102   { sh2e_sem_ldsl_pr_compact, "LDSL_PR_COMPACT", SH2E_INSN_LDSL_PR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
103   { sh2e_sem_macl_compact, "MACL_COMPACT", SH2E_INSN_MACL_COMPACT, { 0, (1<<MACH_SH2)|(1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH2A_NOFPU)|(1<<MACH_SH3)|(1<<MACH_SH3E)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH4)|(1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
104   { sh2e_sem_macw_compact, "MACW_COMPACT", SH2E_INSN_MACW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
105   { sh2e_sem_mov_compact, "MOV_COMPACT", SH2E_INSN_MOV_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_MT } },
106   { sh2e_sem_movi_compact, "MOVI_COMPACT", SH2E_INSN_MOVI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_MT } },
107   { sh2e_sem_movb1_compact, "MOVB1_COMPACT", SH2E_INSN_MOVB1_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
108   { sh2e_sem_movb2_compact, "MOVB2_COMPACT", SH2E_INSN_MOVB2_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
109   { sh2e_sem_movb3_compact, "MOVB3_COMPACT", SH2E_INSN_MOVB3_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
110   { sh2e_sem_movb4_compact, "MOVB4_COMPACT", SH2E_INSN_MOVB4_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
111   { sh2e_sem_movb5_compact, "MOVB5_COMPACT", SH2E_INSN_MOVB5_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
112   { sh2e_sem_movb6_compact, "MOVB6_COMPACT", SH2E_INSN_MOVB6_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
113   { sh2e_sem_movb7_compact, "MOVB7_COMPACT", SH2E_INSN_MOVB7_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
114   { sh2e_sem_movb8_compact, "MOVB8_COMPACT", SH2E_INSN_MOVB8_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
115   { sh2e_sem_movb9_compact, "MOVB9_COMPACT", SH2E_INSN_MOVB9_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
116   { sh2e_sem_movb10_compact, "MOVB10_COMPACT", SH2E_INSN_MOVB10_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
117   { sh2e_sem_movl1_compact, "MOVL1_COMPACT", SH2E_INSN_MOVL1_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
118   { sh2e_sem_movl2_compact, "MOVL2_COMPACT", SH2E_INSN_MOVL2_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
119   { sh2e_sem_movl3_compact, "MOVL3_COMPACT", SH2E_INSN_MOVL3_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
120   { sh2e_sem_movl4_compact, "MOVL4_COMPACT", SH2E_INSN_MOVL4_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
121   { sh2e_sem_movl5_compact, "MOVL5_COMPACT", SH2E_INSN_MOVL5_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
122   { sh2e_sem_movl6_compact, "MOVL6_COMPACT", SH2E_INSN_MOVL6_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
123   { sh2e_sem_movl7_compact, "MOVL7_COMPACT", SH2E_INSN_MOVL7_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
124   { sh2e_sem_movl8_compact, "MOVL8_COMPACT", SH2E_INSN_MOVL8_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
125   { sh2e_sem_movl9_compact, "MOVL9_COMPACT", SH2E_INSN_MOVL9_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
126   { sh2e_sem_movl10_compact, "MOVL10_COMPACT", SH2E_INSN_MOVL10_COMPACT, { 0|(1<<CGEN_INSN_ILLSLOT), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
127   { sh2e_sem_movl11_compact, "MOVL11_COMPACT", SH2E_INSN_MOVL11_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
128   { sh2e_sem_movw1_compact, "MOVW1_COMPACT", SH2E_INSN_MOVW1_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
129   { sh2e_sem_movw2_compact, "MOVW2_COMPACT", SH2E_INSN_MOVW2_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
130   { sh2e_sem_movw3_compact, "MOVW3_COMPACT", SH2E_INSN_MOVW3_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
131   { sh2e_sem_movw4_compact, "MOVW4_COMPACT", SH2E_INSN_MOVW4_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
132   { sh2e_sem_movw5_compact, "MOVW5_COMPACT", SH2E_INSN_MOVW5_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
133   { sh2e_sem_movw6_compact, "MOVW6_COMPACT", SH2E_INSN_MOVW6_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
134   { sh2e_sem_movw7_compact, "MOVW7_COMPACT", SH2E_INSN_MOVW7_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
135   { sh2e_sem_movw8_compact, "MOVW8_COMPACT", SH2E_INSN_MOVW8_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
136   { sh2e_sem_movw9_compact, "MOVW9_COMPACT", SH2E_INSN_MOVW9_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
137   { sh2e_sem_movw10_compact, "MOVW10_COMPACT", SH2E_INSN_MOVW10_COMPACT, { 0|(1<<CGEN_INSN_ILLSLOT), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
138   { sh2e_sem_movw11_compact, "MOVW11_COMPACT", SH2E_INSN_MOVW11_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
139   { sh2e_sem_mova_compact, "MOVA_COMPACT", SH2E_INSN_MOVA_COMPACT, { 0|(1<<CGEN_INSN_ILLSLOT), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_LS } },
140   { sh2e_sem_movt_compact, "MOVT_COMPACT", SH2E_INSN_MOVT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
141   { sh2e_sem_mull_compact, "MULL_COMPACT", SH2E_INSN_MULL_COMPACT, { 0, (1<<MACH_SH2)|(1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH2A_NOFPU)|(1<<MACH_SH3)|(1<<MACH_SH3E)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH4)|(1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_EX } },
142   { sh2e_sem_mulsw_compact, "MULSW_COMPACT", SH2E_INSN_MULSW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_EX } },
143   { sh2e_sem_muluw_compact, "MULUW_COMPACT", SH2E_INSN_MULUW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_EX } },
144   { sh2e_sem_neg_compact, "NEG_COMPACT", SH2E_INSN_NEG_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
145   { sh2e_sem_negc_compact, "NEGC_COMPACT", SH2E_INSN_NEGC_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
146   { sh2e_sem_nop_compact, "NOP_COMPACT", SH2E_INSN_NOP_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_MT } },
147   { sh2e_sem_not_compact, "NOT_COMPACT", SH2E_INSN_NOT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
148   { sh2e_sem_or_compact, "OR_COMPACT", SH2E_INSN_OR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
149   { sh2e_sem_ori_compact, "ORI_COMPACT", SH2E_INSN_ORI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
150   { sh2e_sem_orb_compact, "ORB_COMPACT", SH2E_INSN_ORB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
151   { sh2e_sem_rotcl_compact, "ROTCL_COMPACT", SH2E_INSN_ROTCL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
152   { sh2e_sem_rotcr_compact, "ROTCR_COMPACT", SH2E_INSN_ROTCR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
153   { sh2e_sem_rotl_compact, "ROTL_COMPACT", SH2E_INSN_ROTL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
154   { sh2e_sem_rotr_compact, "ROTR_COMPACT", SH2E_INSN_ROTR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
155   { sh2e_sem_rts_compact, "RTS_COMPACT", SH2E_INSN_RTS_COMPACT, { 0|(1<<CGEN_INSN_DELAY_SLOT)|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_BR } },
156   { sh2e_sem_sett_compact, "SETT_COMPACT", SH2E_INSN_SETT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
157   { sh2e_sem_shal_compact, "SHAL_COMPACT", SH2E_INSN_SHAL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
158   { sh2e_sem_shar_compact, "SHAR_COMPACT", SH2E_INSN_SHAR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
159   { sh2e_sem_shll_compact, "SHLL_COMPACT", SH2E_INSN_SHLL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
160   { sh2e_sem_shll2_compact, "SHLL2_COMPACT", SH2E_INSN_SHLL2_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
161   { sh2e_sem_shll8_compact, "SHLL8_COMPACT", SH2E_INSN_SHLL8_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
162   { sh2e_sem_shll16_compact, "SHLL16_COMPACT", SH2E_INSN_SHLL16_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
163   { sh2e_sem_shlr_compact, "SHLR_COMPACT", SH2E_INSN_SHLR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
164   { sh2e_sem_shlr2_compact, "SHLR2_COMPACT", SH2E_INSN_SHLR2_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
165   { sh2e_sem_shlr8_compact, "SHLR8_COMPACT", SH2E_INSN_SHLR8_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
166   { sh2e_sem_shlr16_compact, "SHLR16_COMPACT", SH2E_INSN_SHLR16_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
167   { sh2e_sem_stc_gbr_compact, "STC_GBR_COMPACT", SH2E_INSN_STC_GBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_NONE } },
168   { sh2e_sem_stc_vbr_compact, "STC_VBR_COMPACT", SH2E_INSN_STC_VBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_NONE } },
169   { sh2e_sem_stcl_gbr_compact, "STCL_GBR_COMPACT", SH2E_INSN_STCL_GBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_NONE } },
170   { sh2e_sem_stcl_vbr_compact, "STCL_VBR_COMPACT", SH2E_INSN_STCL_VBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_NONE } },
171   { sh2e_sem_sts_fpscr_compact, "STS_FPSCR_COMPACT", SH2E_INSN_STS_FPSCR_COMPACT, { 0, (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
172   { sh2e_sem_stsl_fpscr_compact, "STSL_FPSCR_COMPACT", SH2E_INSN_STSL_FPSCR_COMPACT, { 0, (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
173   { sh2e_sem_sts_fpul_compact, "STS_FPUL_COMPACT", SH2E_INSN_STS_FPUL_COMPACT, { 0, (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
174   { sh2e_sem_stsl_fpul_compact, "STSL_FPUL_COMPACT", SH2E_INSN_STSL_FPUL_COMPACT, { 0, (1<<MACH_SH2E)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH3E)|(1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
175   { sh2e_sem_sts_mach_compact, "STS_MACH_COMPACT", SH2E_INSN_STS_MACH_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
176   { sh2e_sem_stsl_mach_compact, "STSL_MACH_COMPACT", SH2E_INSN_STSL_MACH_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
177   { sh2e_sem_sts_macl_compact, "STS_MACL_COMPACT", SH2E_INSN_STS_MACL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
178   { sh2e_sem_stsl_macl_compact, "STSL_MACL_COMPACT", SH2E_INSN_STSL_MACL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
179   { sh2e_sem_sts_pr_compact, "STS_PR_COMPACT", SH2E_INSN_STS_PR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
180   { sh2e_sem_stsl_pr_compact, "STSL_PR_COMPACT", SH2E_INSN_STSL_PR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
181   { sh2e_sem_sub_compact, "SUB_COMPACT", SH2E_INSN_SUB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
182   { sh2e_sem_subc_compact, "SUBC_COMPACT", SH2E_INSN_SUBC_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
183   { sh2e_sem_subv_compact, "SUBV_COMPACT", SH2E_INSN_SUBV_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
184   { sh2e_sem_swapb_compact, "SWAPB_COMPACT", SH2E_INSN_SWAPB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
185   { sh2e_sem_swapw_compact, "SWAPW_COMPACT", SH2E_INSN_SWAPW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
186   { sh2e_sem_tasb_compact, "TASB_COMPACT", SH2E_INSN_TASB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
187   { sh2e_sem_trapa_compact, "TRAPA_COMPACT", SH2E_INSN_TRAPA_COMPACT, { 0|(1<<CGEN_INSN_ILLSLOT), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
188   { sh2e_sem_tst_compact, "TST_COMPACT", SH2E_INSN_TST_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
189   { sh2e_sem_tsti_compact, "TSTI_COMPACT", SH2E_INSN_TSTI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
190   { sh2e_sem_tstb_compact, "TSTB_COMPACT", SH2E_INSN_TSTB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
191   { sh2e_sem_xor_compact, "XOR_COMPACT", SH2E_INSN_XOR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
192   { sh2e_sem_xori_compact, "XORI_COMPACT", SH2E_INSN_XORI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
193   { sh2e_sem_xorb_compact, "XORB_COMPACT", SH2E_INSN_XORB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
194   { sh2e_sem_xtrct_compact, "XTRCT_COMPACT", SH2E_INSN_XTRCT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
195
196 };
197
198 // Given a canonical virtual insn id, return the target specific one.
199
200 sh2e_insn_type
201 sh2e_idesc::lookup_virtual (virtual_insn_type vit)
202 {
203   switch (vit)
204     {
205       case VIRTUAL_INSN_INVALID: return SH2E_INSN_X_INVALID;
206       case VIRTUAL_INSN_COND: return SH2E_INSN_X_INVALID;
207     }
208   abort ();
209 }
210
211
212 // Declare extractor functions
213
214 static void
215 sh2e_extract_sfmt_empty (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
216 static void
217 sh2e_extract_sfmt_add_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
218 static void
219 sh2e_extract_sfmt_addi_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
220 static void
221 sh2e_extract_sfmt_addc_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
222 static void
223 sh2e_extract_sfmt_addv_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
224 static void
225 sh2e_extract_sfmt_and_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
226 static void
227 sh2e_extract_sfmt_andi_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
228 static void
229 sh2e_extract_sfmt_andb_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
230 static void
231 sh2e_extract_sfmt_bf_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
232 static void
233 sh2e_extract_sfmt_bfs_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
234 static void
235 sh2e_extract_sfmt_bra_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
236 static void
237 sh2e_extract_sfmt_braf_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
238 static void
239 sh2e_extract_sfmt_bsr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
240 static void
241 sh2e_extract_sfmt_bsrf_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
242 static void
243 sh2e_extract_sfmt_clrmac_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
244 static void
245 sh2e_extract_sfmt_clrt_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
246 static void
247 sh2e_extract_sfmt_cmpeq_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
248 static void
249 sh2e_extract_sfmt_cmpeqi_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
250 static void
251 sh2e_extract_sfmt_cmppl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
252 static void
253 sh2e_extract_sfmt_div0s_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
254 static void
255 sh2e_extract_sfmt_div0u_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
256 static void
257 sh2e_extract_sfmt_div1_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
258 static void
259 sh2e_extract_sfmt_dmulsl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
260 static void
261 sh2e_extract_sfmt_dt_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
262 static void
263 sh2e_extract_sfmt_extsb_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
264 static void
265 sh2e_extract_sfmt_fabs_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
266 static void
267 sh2e_extract_sfmt_fadd_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
268 static void
269 sh2e_extract_sfmt_fcmpeq_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
270 static void
271 sh2e_extract_sfmt_flds_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
272 static void
273 sh2e_extract_sfmt_fldi0_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
274 static void
275 sh2e_extract_sfmt_float_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
276 static void
277 sh2e_extract_sfmt_fmac_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
278 static void
279 sh2e_extract_sfmt_fmov1_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
280 static void
281 sh2e_extract_sfmt_fmov2_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
282 static void
283 sh2e_extract_sfmt_fmov3_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
284 static void
285 sh2e_extract_sfmt_fmov4_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
286 static void
287 sh2e_extract_sfmt_fmov5_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
288 static void
289 sh2e_extract_sfmt_fmov6_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
290 static void
291 sh2e_extract_sfmt_fmov7_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
292 static void
293 sh2e_extract_sfmt_frchg_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
294 static void
295 sh2e_extract_sfmt_fschg_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
296 static void
297 sh2e_extract_sfmt_fsts_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
298 static void
299 sh2e_extract_sfmt_ftrc_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
300 static void
301 sh2e_extract_sfmt_ldc_gbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
302 static void
303 sh2e_extract_sfmt_ldc_vbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
304 static void
305 sh2e_extract_sfmt_ldc_sr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
306 static void
307 sh2e_extract_sfmt_ldcl_gbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
308 static void
309 sh2e_extract_sfmt_ldcl_vbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
310 static void
311 sh2e_extract_sfmt_lds_fpscr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
312 static void
313 sh2e_extract_sfmt_ldsl_fpscr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
314 static void
315 sh2e_extract_sfmt_lds_fpul_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
316 static void
317 sh2e_extract_sfmt_ldsl_fpul_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
318 static void
319 sh2e_extract_sfmt_lds_mach_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
320 static void
321 sh2e_extract_sfmt_ldsl_mach_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
322 static void
323 sh2e_extract_sfmt_lds_macl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
324 static void
325 sh2e_extract_sfmt_ldsl_macl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
326 static void
327 sh2e_extract_sfmt_lds_pr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
328 static void
329 sh2e_extract_sfmt_ldsl_pr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
330 static void
331 sh2e_extract_sfmt_macl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
332 static void
333 sh2e_extract_sfmt_macw_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
334 static void
335 sh2e_extract_sfmt_mov_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
336 static void
337 sh2e_extract_sfmt_movi_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
338 static void
339 sh2e_extract_sfmt_movb1_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
340 static void
341 sh2e_extract_sfmt_movb2_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
342 static void
343 sh2e_extract_sfmt_movb3_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
344 static void
345 sh2e_extract_sfmt_movb4_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
346 static void
347 sh2e_extract_sfmt_movb5_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
348 static void
349 sh2e_extract_sfmt_movb6_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
350 static void
351 sh2e_extract_sfmt_movb7_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
352 static void
353 sh2e_extract_sfmt_movb8_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
354 static void
355 sh2e_extract_sfmt_movb9_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
356 static void
357 sh2e_extract_sfmt_movb10_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
358 static void
359 sh2e_extract_sfmt_movl1_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
360 static void
361 sh2e_extract_sfmt_movl2_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
362 static void
363 sh2e_extract_sfmt_movl3_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
364 static void
365 sh2e_extract_sfmt_movl4_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
366 static void
367 sh2e_extract_sfmt_movl5_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
368 static void
369 sh2e_extract_sfmt_movl6_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
370 static void
371 sh2e_extract_sfmt_movl7_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
372 static void
373 sh2e_extract_sfmt_movl8_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
374 static void
375 sh2e_extract_sfmt_movl9_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
376 static void
377 sh2e_extract_sfmt_movl10_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
378 static void
379 sh2e_extract_sfmt_movl11_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
380 static void
381 sh2e_extract_sfmt_movw1_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
382 static void
383 sh2e_extract_sfmt_movw2_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
384 static void
385 sh2e_extract_sfmt_movw3_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
386 static void
387 sh2e_extract_sfmt_movw4_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
388 static void
389 sh2e_extract_sfmt_movw5_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
390 static void
391 sh2e_extract_sfmt_movw6_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
392 static void
393 sh2e_extract_sfmt_movw7_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
394 static void
395 sh2e_extract_sfmt_movw8_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
396 static void
397 sh2e_extract_sfmt_movw9_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
398 static void
399 sh2e_extract_sfmt_movw10_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
400 static void
401 sh2e_extract_sfmt_movw11_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
402 static void
403 sh2e_extract_sfmt_mova_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
404 static void
405 sh2e_extract_sfmt_movt_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
406 static void
407 sh2e_extract_sfmt_mull_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
408 static void
409 sh2e_extract_sfmt_negc_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
410 static void
411 sh2e_extract_sfmt_nop_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
412 static void
413 sh2e_extract_sfmt_rotcl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
414 static void
415 sh2e_extract_sfmt_rts_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
416 static void
417 sh2e_extract_sfmt_shll2_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
418 static void
419 sh2e_extract_sfmt_stc_gbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
420 static void
421 sh2e_extract_sfmt_stc_vbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
422 static void
423 sh2e_extract_sfmt_stcl_gbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
424 static void
425 sh2e_extract_sfmt_stcl_vbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
426 static void
427 sh2e_extract_sfmt_sts_fpscr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
428 static void
429 sh2e_extract_sfmt_stsl_fpscr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
430 static void
431 sh2e_extract_sfmt_sts_fpul_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
432 static void
433 sh2e_extract_sfmt_stsl_fpul_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
434 static void
435 sh2e_extract_sfmt_sts_mach_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
436 static void
437 sh2e_extract_sfmt_stsl_mach_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
438 static void
439 sh2e_extract_sfmt_sts_macl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
440 static void
441 sh2e_extract_sfmt_stsl_macl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
442 static void
443 sh2e_extract_sfmt_sts_pr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
444 static void
445 sh2e_extract_sfmt_stsl_pr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
446 static void
447 sh2e_extract_sfmt_tasb_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
448 static void
449 sh2e_extract_sfmt_trapa_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
450 static void
451 sh2e_extract_sfmt_tsti_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
452 static void
453 sh2e_extract_sfmt_tstb_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn);
454
455 // Fetch & decode instruction
456 void
457 sh2e_scache::decode (sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn)
458 {
459   /* Result of decoder.  */
460   SH2E_INSN_TYPE itype;
461
462   {
463     sh2e_insn_word insn = base_insn;
464
465     {
466       unsigned int val = (((insn >> 21) & (15 << 7)) | ((insn >> 16) & (127 << 0)));
467       switch (val)
468       {
469       case 3 :
470         entire_insn = entire_insn >> 16;
471         if ((entire_insn & 0xf0ff) == 0x3)
472           { itype = SH2E_INSN_BSRF_COMPACT; sh2e_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
473         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
474       case 4 : /* fall through */
475       case 20 : /* fall through */
476       case 36 : /* fall through */
477       case 52 : /* fall through */
478       case 68 : /* fall through */
479       case 84 : /* fall through */
480       case 100 : /* fall through */
481       case 116 :
482         entire_insn = entire_insn >> 16;
483         itype = SH2E_INSN_MOVB3_COMPACT; sh2e_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
484       case 5 : /* fall through */
485       case 21 : /* fall through */
486       case 37 : /* fall through */
487       case 53 : /* fall through */
488       case 69 : /* fall through */
489       case 85 : /* fall through */
490       case 101 : /* fall through */
491       case 117 :
492         entire_insn = entire_insn >> 16;
493         itype = SH2E_INSN_MOVW3_COMPACT; sh2e_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
494       case 6 : /* fall through */
495       case 22 : /* fall through */
496       case 38 : /* fall through */
497       case 54 : /* fall through */
498       case 70 : /* fall through */
499       case 86 : /* fall through */
500       case 102 : /* fall through */
501       case 118 :
502         entire_insn = entire_insn >> 16;
503         itype = SH2E_INSN_MOVL3_COMPACT; sh2e_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
504       case 7 : /* fall through */
505       case 23 : /* fall through */
506       case 39 : /* fall through */
507       case 55 : /* fall through */
508       case 71 : /* fall through */
509       case 87 : /* fall through */
510       case 103 : /* fall through */
511       case 119 :
512         entire_insn = entire_insn >> 16;
513         itype = SH2E_INSN_MULL_COMPACT; sh2e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
514       case 8 :
515         entire_insn = entire_insn >> 16;
516         if ((entire_insn & 0xffff) == 0x8)
517           { itype = SH2E_INSN_CLRT_COMPACT; sh2e_extract_sfmt_clrt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
518         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
519       case 9 :
520         entire_insn = entire_insn >> 16;
521         if ((entire_insn & 0xffff) == 0x9)
522           { itype = SH2E_INSN_NOP_COMPACT; sh2e_extract_sfmt_nop_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
523         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
524       case 10 :
525         entire_insn = entire_insn >> 16;
526         if ((entire_insn & 0xf0ff) == 0xa)
527           { itype = SH2E_INSN_STS_MACH_COMPACT; sh2e_extract_sfmt_sts_mach_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
528         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
529       case 11 :
530         entire_insn = entire_insn >> 16;
531         if ((entire_insn & 0xffff) == 0xb)
532           { itype = SH2E_INSN_RTS_COMPACT; sh2e_extract_sfmt_rts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
533         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
534       case 12 : /* fall through */
535       case 28 : /* fall through */
536       case 44 : /* fall through */
537       case 60 : /* fall through */
538       case 76 : /* fall through */
539       case 92 : /* fall through */
540       case 108 : /* fall through */
541       case 124 :
542         entire_insn = entire_insn >> 16;
543         itype = SH2E_INSN_MOVB8_COMPACT; sh2e_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
544       case 13 : /* fall through */
545       case 29 : /* fall through */
546       case 45 : /* fall through */
547       case 61 : /* fall through */
548       case 77 : /* fall through */
549       case 93 : /* fall through */
550       case 109 : /* fall through */
551       case 125 :
552         entire_insn = entire_insn >> 16;
553         itype = SH2E_INSN_MOVW8_COMPACT; sh2e_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
554       case 14 : /* fall through */
555       case 30 : /* fall through */
556       case 46 : /* fall through */
557       case 62 : /* fall through */
558       case 78 : /* fall through */
559       case 94 : /* fall through */
560       case 110 : /* fall through */
561       case 126 :
562         entire_insn = entire_insn >> 16;
563         itype = SH2E_INSN_MOVL8_COMPACT; sh2e_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
564       case 15 : /* fall through */
565       case 31 : /* fall through */
566       case 47 : /* fall through */
567       case 63 : /* fall through */
568       case 79 : /* fall through */
569       case 95 : /* fall through */
570       case 111 : /* fall through */
571       case 127 :
572         entire_insn = entire_insn >> 16;
573         itype = SH2E_INSN_MACL_COMPACT; sh2e_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
574       case 18 :
575         entire_insn = entire_insn >> 16;
576         if ((entire_insn & 0xf0ff) == 0x12)
577           { itype = SH2E_INSN_STC_GBR_COMPACT; sh2e_extract_sfmt_stc_gbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
578         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
579       case 24 :
580         entire_insn = entire_insn >> 16;
581         if ((entire_insn & 0xffff) == 0x18)
582           { itype = SH2E_INSN_SETT_COMPACT; sh2e_extract_sfmt_clrt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
583         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
584       case 25 :
585         entire_insn = entire_insn >> 16;
586         if ((entire_insn & 0xffff) == 0x19)
587           { itype = SH2E_INSN_DIV0U_COMPACT; sh2e_extract_sfmt_div0u_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
588         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
589       case 26 :
590         entire_insn = entire_insn >> 16;
591         if ((entire_insn & 0xf0ff) == 0x1a)
592           { itype = SH2E_INSN_STS_MACL_COMPACT; sh2e_extract_sfmt_sts_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
593         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
594       case 34 :
595         entire_insn = entire_insn >> 16;
596         if ((entire_insn & 0xf0ff) == 0x22)
597           { itype = SH2E_INSN_STC_VBR_COMPACT; sh2e_extract_sfmt_stc_vbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
598         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
599       case 35 :
600         entire_insn = entire_insn >> 16;
601         if ((entire_insn & 0xf0ff) == 0x23)
602           { itype = SH2E_INSN_BRAF_COMPACT; sh2e_extract_sfmt_braf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
603         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
604       case 40 :
605         entire_insn = entire_insn >> 16;
606         if ((entire_insn & 0xffff) == 0x28)
607           { itype = SH2E_INSN_CLRMAC_COMPACT; sh2e_extract_sfmt_clrmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
608         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
609       case 41 :
610         entire_insn = entire_insn >> 16;
611         if ((entire_insn & 0xf0ff) == 0x29)
612           { itype = SH2E_INSN_MOVT_COMPACT; sh2e_extract_sfmt_movt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
613         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
614       case 42 :
615         entire_insn = entire_insn >> 16;
616         if ((entire_insn & 0xf0ff) == 0x2a)
617           { itype = SH2E_INSN_STS_PR_COMPACT; sh2e_extract_sfmt_sts_pr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
618         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
619       case 90 :
620         entire_insn = entire_insn >> 16;
621         if ((entire_insn & 0xf0ff) == 0x5a)
622           { itype = SH2E_INSN_STS_FPUL_COMPACT; sh2e_extract_sfmt_sts_fpul_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
623         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
624       case 106 :
625         entire_insn = entire_insn >> 16;
626         if ((entire_insn & 0xf0ff) == 0x6a)
627           { itype = SH2E_INSN_STS_FPSCR_COMPACT; sh2e_extract_sfmt_sts_fpscr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
628         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
629       case 128 : /* fall through */
630       case 129 : /* fall through */
631       case 130 : /* fall through */
632       case 131 : /* fall through */
633       case 132 : /* fall through */
634       case 133 : /* fall through */
635       case 134 : /* fall through */
636       case 135 : /* fall through */
637       case 136 : /* fall through */
638       case 137 : /* fall through */
639       case 138 : /* fall through */
640       case 139 : /* fall through */
641       case 140 : /* fall through */
642       case 141 : /* fall through */
643       case 142 : /* fall through */
644       case 143 : /* fall through */
645       case 144 : /* fall through */
646       case 145 : /* fall through */
647       case 146 : /* fall through */
648       case 147 : /* fall through */
649       case 148 : /* fall through */
650       case 149 : /* fall through */
651       case 150 : /* fall through */
652       case 151 : /* fall through */
653       case 152 : /* fall through */
654       case 153 : /* fall through */
655       case 154 : /* fall through */
656       case 155 : /* fall through */
657       case 156 : /* fall through */
658       case 157 : /* fall through */
659       case 158 : /* fall through */
660       case 159 : /* fall through */
661       case 160 : /* fall through */
662       case 161 : /* fall through */
663       case 162 : /* fall through */
664       case 163 : /* fall through */
665       case 164 : /* fall through */
666       case 165 : /* fall through */
667       case 166 : /* fall through */
668       case 167 : /* fall through */
669       case 168 : /* fall through */
670       case 169 : /* fall through */
671       case 170 : /* fall through */
672       case 171 : /* fall through */
673       case 172 : /* fall through */
674       case 173 : /* fall through */
675       case 174 : /* fall through */
676       case 175 : /* fall through */
677       case 176 : /* fall through */
678       case 177 : /* fall through */
679       case 178 : /* fall through */
680       case 179 : /* fall through */
681       case 180 : /* fall through */
682       case 181 : /* fall through */
683       case 182 : /* fall through */
684       case 183 : /* fall through */
685       case 184 : /* fall through */
686       case 185 : /* fall through */
687       case 186 : /* fall through */
688       case 187 : /* fall through */
689       case 188 : /* fall through */
690       case 189 : /* fall through */
691       case 190 : /* fall through */
692       case 191 : /* fall through */
693       case 192 : /* fall through */
694       case 193 : /* fall through */
695       case 194 : /* fall through */
696       case 195 : /* fall through */
697       case 196 : /* fall through */
698       case 197 : /* fall through */
699       case 198 : /* fall through */
700       case 199 : /* fall through */
701       case 200 : /* fall through */
702       case 201 : /* fall through */
703       case 202 : /* fall through */
704       case 203 : /* fall through */
705       case 204 : /* fall through */
706       case 205 : /* fall through */
707       case 206 : /* fall through */
708       case 207 : /* fall through */
709       case 208 : /* fall through */
710       case 209 : /* fall through */
711       case 210 : /* fall through */
712       case 211 : /* fall through */
713       case 212 : /* fall through */
714       case 213 : /* fall through */
715       case 214 : /* fall through */
716       case 215 : /* fall through */
717       case 216 : /* fall through */
718       case 217 : /* fall through */
719       case 218 : /* fall through */
720       case 219 : /* fall through */
721       case 220 : /* fall through */
722       case 221 : /* fall through */
723       case 222 : /* fall through */
724       case 223 : /* fall through */
725       case 224 : /* fall through */
726       case 225 : /* fall through */
727       case 226 : /* fall through */
728       case 227 : /* fall through */
729       case 228 : /* fall through */
730       case 229 : /* fall through */
731       case 230 : /* fall through */
732       case 231 : /* fall through */
733       case 232 : /* fall through */
734       case 233 : /* fall through */
735       case 234 : /* fall through */
736       case 235 : /* fall through */
737       case 236 : /* fall through */
738       case 237 : /* fall through */
739       case 238 : /* fall through */
740       case 239 : /* fall through */
741       case 240 : /* fall through */
742       case 241 : /* fall through */
743       case 242 : /* fall through */
744       case 243 : /* fall through */
745       case 244 : /* fall through */
746       case 245 : /* fall through */
747       case 246 : /* fall through */
748       case 247 : /* fall through */
749       case 248 : /* fall through */
750       case 249 : /* fall through */
751       case 250 : /* fall through */
752       case 251 : /* fall through */
753       case 252 : /* fall through */
754       case 253 : /* fall through */
755       case 254 : /* fall through */
756       case 255 :
757         entire_insn = entire_insn >> 16;
758         itype = SH2E_INSN_MOVL5_COMPACT; sh2e_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
759       case 256 : /* fall through */
760       case 272 : /* fall through */
761       case 288 : /* fall through */
762       case 304 : /* fall through */
763       case 320 : /* fall through */
764       case 336 : /* fall through */
765       case 352 : /* fall through */
766       case 368 :
767         entire_insn = entire_insn >> 16;
768         itype = SH2E_INSN_MOVB1_COMPACT; sh2e_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
769       case 257 : /* fall through */
770       case 273 : /* fall through */
771       case 289 : /* fall through */
772       case 305 : /* fall through */
773       case 321 : /* fall through */
774       case 337 : /* fall through */
775       case 353 : /* fall through */
776       case 369 :
777         entire_insn = entire_insn >> 16;
778         itype = SH2E_INSN_MOVW1_COMPACT; sh2e_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
779       case 258 : /* fall through */
780       case 274 : /* fall through */
781       case 290 : /* fall through */
782       case 306 : /* fall through */
783       case 322 : /* fall through */
784       case 338 : /* fall through */
785       case 354 : /* fall through */
786       case 370 :
787         entire_insn = entire_insn >> 16;
788         itype = SH2E_INSN_MOVL1_COMPACT; sh2e_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
789       case 260 : /* fall through */
790       case 276 : /* fall through */
791       case 292 : /* fall through */
792       case 308 : /* fall through */
793       case 324 : /* fall through */
794       case 340 : /* fall through */
795       case 356 : /* fall through */
796       case 372 :
797         entire_insn = entire_insn >> 16;
798         itype = SH2E_INSN_MOVB2_COMPACT; sh2e_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
799       case 261 : /* fall through */
800       case 277 : /* fall through */
801       case 293 : /* fall through */
802       case 309 : /* fall through */
803       case 325 : /* fall through */
804       case 341 : /* fall through */
805       case 357 : /* fall through */
806       case 373 :
807         entire_insn = entire_insn >> 16;
808         itype = SH2E_INSN_MOVW2_COMPACT; sh2e_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
809       case 262 : /* fall through */
810       case 278 : /* fall through */
811       case 294 : /* fall through */
812       case 310 : /* fall through */
813       case 326 : /* fall through */
814       case 342 : /* fall through */
815       case 358 : /* fall through */
816       case 374 :
817         entire_insn = entire_insn >> 16;
818         itype = SH2E_INSN_MOVL2_COMPACT; sh2e_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
819       case 263 : /* fall through */
820       case 279 : /* fall through */
821       case 295 : /* fall through */
822       case 311 : /* fall through */
823       case 327 : /* fall through */
824       case 343 : /* fall through */
825       case 359 : /* fall through */
826       case 375 :
827         entire_insn = entire_insn >> 16;
828         itype = SH2E_INSN_DIV0S_COMPACT; sh2e_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
829       case 264 : /* fall through */
830       case 280 : /* fall through */
831       case 296 : /* fall through */
832       case 312 : /* fall through */
833       case 328 : /* fall through */
834       case 344 : /* fall through */
835       case 360 : /* fall through */
836       case 376 :
837         entire_insn = entire_insn >> 16;
838         itype = SH2E_INSN_TST_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
839       case 265 : /* fall through */
840       case 281 : /* fall through */
841       case 297 : /* fall through */
842       case 313 : /* fall through */
843       case 329 : /* fall through */
844       case 345 : /* fall through */
845       case 361 : /* fall through */
846       case 377 :
847         entire_insn = entire_insn >> 16;
848         itype = SH2E_INSN_AND_COMPACT; sh2e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
849       case 266 : /* fall through */
850       case 282 : /* fall through */
851       case 298 : /* fall through */
852       case 314 : /* fall through */
853       case 330 : /* fall through */
854       case 346 : /* fall through */
855       case 362 : /* fall through */
856       case 378 :
857         entire_insn = entire_insn >> 16;
858         itype = SH2E_INSN_XOR_COMPACT; sh2e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
859       case 267 : /* fall through */
860       case 283 : /* fall through */
861       case 299 : /* fall through */
862       case 315 : /* fall through */
863       case 331 : /* fall through */
864       case 347 : /* fall through */
865       case 363 : /* fall through */
866       case 379 :
867         entire_insn = entire_insn >> 16;
868         itype = SH2E_INSN_OR_COMPACT; sh2e_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
869       case 268 : /* fall through */
870       case 284 : /* fall through */
871       case 300 : /* fall through */
872       case 316 : /* fall through */
873       case 332 : /* fall through */
874       case 348 : /* fall through */
875       case 364 : /* fall through */
876       case 380 :
877         entire_insn = entire_insn >> 16;
878         itype = SH2E_INSN_CMPSTR_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
879       case 269 : /* fall through */
880       case 285 : /* fall through */
881       case 301 : /* fall through */
882       case 317 : /* fall through */
883       case 333 : /* fall through */
884       case 349 : /* fall through */
885       case 365 : /* fall through */
886       case 381 :
887         entire_insn = entire_insn >> 16;
888         itype = SH2E_INSN_XTRCT_COMPACT; sh2e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
889       case 270 : /* fall through */
890       case 286 : /* fall through */
891       case 302 : /* fall through */
892       case 318 : /* fall through */
893       case 334 : /* fall through */
894       case 350 : /* fall through */
895       case 366 : /* fall through */
896       case 382 :
897         entire_insn = entire_insn >> 16;
898         itype = SH2E_INSN_MULUW_COMPACT; sh2e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
899       case 271 : /* fall through */
900       case 287 : /* fall through */
901       case 303 : /* fall through */
902       case 319 : /* fall through */
903       case 335 : /* fall through */
904       case 351 : /* fall through */
905       case 367 : /* fall through */
906       case 383 :
907         entire_insn = entire_insn >> 16;
908         itype = SH2E_INSN_MULSW_COMPACT; sh2e_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
909       case 384 : /* fall through */
910       case 400 : /* fall through */
911       case 416 : /* fall through */
912       case 432 : /* fall through */
913       case 448 : /* fall through */
914       case 464 : /* fall through */
915       case 480 : /* fall through */
916       case 496 :
917         entire_insn = entire_insn >> 16;
918         itype = SH2E_INSN_CMPEQ_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
919       case 386 : /* fall through */
920       case 402 : /* fall through */
921       case 418 : /* fall through */
922       case 434 : /* fall through */
923       case 450 : /* fall through */
924       case 466 : /* fall through */
925       case 482 : /* fall through */
926       case 498 :
927         entire_insn = entire_insn >> 16;
928         itype = SH2E_INSN_CMPHS_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
929       case 387 : /* fall through */
930       case 403 : /* fall through */
931       case 419 : /* fall through */
932       case 435 : /* fall through */
933       case 451 : /* fall through */
934       case 467 : /* fall through */
935       case 483 : /* fall through */
936       case 499 :
937         entire_insn = entire_insn >> 16;
938         itype = SH2E_INSN_CMPGE_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
939       case 388 : /* fall through */
940       case 404 : /* fall through */
941       case 420 : /* fall through */
942       case 436 : /* fall through */
943       case 452 : /* fall through */
944       case 468 : /* fall through */
945       case 484 : /* fall through */
946       case 500 :
947         entire_insn = entire_insn >> 16;
948         itype = SH2E_INSN_DIV1_COMPACT; sh2e_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
949       case 389 : /* fall through */
950       case 405 : /* fall through */
951       case 421 : /* fall through */
952       case 437 : /* fall through */
953       case 453 : /* fall through */
954       case 469 : /* fall through */
955       case 485 : /* fall through */
956       case 501 :
957         entire_insn = entire_insn >> 16;
958         itype = SH2E_INSN_DMULUL_COMPACT; sh2e_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
959       case 390 : /* fall through */
960       case 406 : /* fall through */
961       case 422 : /* fall through */
962       case 438 : /* fall through */
963       case 454 : /* fall through */
964       case 470 : /* fall through */
965       case 486 : /* fall through */
966       case 502 :
967         entire_insn = entire_insn >> 16;
968         itype = SH2E_INSN_CMPHI_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
969       case 391 : /* fall through */
970       case 407 : /* fall through */
971       case 423 : /* fall through */
972       case 439 : /* fall through */
973       case 455 : /* fall through */
974       case 471 : /* fall through */
975       case 487 : /* fall through */
976       case 503 :
977         entire_insn = entire_insn >> 16;
978         itype = SH2E_INSN_CMPGT_COMPACT; sh2e_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
979       case 392 : /* fall through */
980       case 408 : /* fall through */
981       case 424 : /* fall through */
982       case 440 : /* fall through */
983       case 456 : /* fall through */
984       case 472 : /* fall through */
985       case 488 : /* fall through */
986       case 504 :
987         entire_insn = entire_insn >> 16;
988         itype = SH2E_INSN_SUB_COMPACT; sh2e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
989       case 394 : /* fall through */
990       case 410 : /* fall through */
991       case 426 : /* fall through */
992       case 442 : /* fall through */
993       case 458 : /* fall through */
994       case 474 : /* fall through */
995       case 490 : /* fall through */
996       case 506 :
997         entire_insn = entire_insn >> 16;
998         itype = SH2E_INSN_SUBC_COMPACT; sh2e_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
999       case 395 : /* fall through */
1000       case 411 : /* fall through */
1001       case 427 : /* fall through */
1002       case 443 : /* fall through */
1003       case 459 : /* fall through */
1004       case 475 : /* fall through */
1005       case 491 : /* fall through */
1006       case 507 :
1007         entire_insn = entire_insn >> 16;
1008         itype = SH2E_INSN_SUBV_COMPACT; sh2e_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1009       case 396 : /* fall through */
1010       case 412 : /* fall through */
1011       case 428 : /* fall through */
1012       case 444 : /* fall through */
1013       case 460 : /* fall through */
1014       case 476 : /* fall through */
1015       case 492 : /* fall through */
1016       case 508 :
1017         entire_insn = entire_insn >> 16;
1018         itype = SH2E_INSN_ADD_COMPACT; sh2e_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1019       case 397 : /* fall through */
1020       case 413 : /* fall through */
1021       case 429 : /* fall through */
1022       case 445 : /* fall through */
1023       case 461 : /* fall through */
1024       case 477 : /* fall through */
1025       case 493 : /* fall through */
1026       case 509 :
1027         entire_insn = entire_insn >> 16;
1028         itype = SH2E_INSN_DMULSL_COMPACT; sh2e_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1029       case 398 : /* fall through */
1030       case 414 : /* fall through */
1031       case 430 : /* fall through */
1032       case 446 : /* fall through */
1033       case 462 : /* fall through */
1034       case 478 : /* fall through */
1035       case 494 : /* fall through */
1036       case 510 :
1037         entire_insn = entire_insn >> 16;
1038         itype = SH2E_INSN_ADDC_COMPACT; sh2e_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1039       case 399 : /* fall through */
1040       case 415 : /* fall through */
1041       case 431 : /* fall through */
1042       case 447 : /* fall through */
1043       case 463 : /* fall through */
1044       case 479 : /* fall through */
1045       case 495 : /* fall through */
1046       case 511 :
1047         entire_insn = entire_insn >> 16;
1048         itype = SH2E_INSN_ADDV_COMPACT; sh2e_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1049       case 512 :
1050         entire_insn = entire_insn >> 16;
1051         if ((entire_insn & 0xf0ff) == 0x4000)
1052           { itype = SH2E_INSN_SHLL_COMPACT; sh2e_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1053         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1054       case 513 :
1055         entire_insn = entire_insn >> 16;
1056         if ((entire_insn & 0xf0ff) == 0x4001)
1057           { itype = SH2E_INSN_SHLR_COMPACT; sh2e_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1058         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1059       case 514 :
1060         entire_insn = entire_insn >> 16;
1061         if ((entire_insn & 0xf0ff) == 0x4002)
1062           { itype = SH2E_INSN_STSL_MACH_COMPACT; sh2e_extract_sfmt_stsl_mach_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1063         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1064       case 516 :
1065         entire_insn = entire_insn >> 16;
1066         if ((entire_insn & 0xf0ff) == 0x4004)
1067           { itype = SH2E_INSN_ROTL_COMPACT; sh2e_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1068         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1069       case 517 :
1070         entire_insn = entire_insn >> 16;
1071         if ((entire_insn & 0xf0ff) == 0x4005)
1072           { itype = SH2E_INSN_ROTR_COMPACT; sh2e_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1073         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1074       case 518 :
1075         entire_insn = entire_insn >> 16;
1076         if ((entire_insn & 0xf0ff) == 0x4006)
1077           { itype = SH2E_INSN_LDSL_MACH_COMPACT; sh2e_extract_sfmt_ldsl_mach_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1078         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1079       case 520 :
1080         entire_insn = entire_insn >> 16;
1081         if ((entire_insn & 0xf0ff) == 0x4008)
1082           { itype = SH2E_INSN_SHLL2_COMPACT; sh2e_extract_sfmt_shll2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1083         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1084       case 521 :
1085         entire_insn = entire_insn >> 16;
1086         if ((entire_insn & 0xf0ff) == 0x4009)
1087           { itype = SH2E_INSN_SHLR2_COMPACT; sh2e_extract_sfmt_shll2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1088         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1089       case 522 :
1090         entire_insn = entire_insn >> 16;
1091         if ((entire_insn & 0xf0ff) == 0x400a)
1092           { itype = SH2E_INSN_LDS_MACH_COMPACT; sh2e_extract_sfmt_lds_mach_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1093         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1094       case 523 :
1095         entire_insn = entire_insn >> 16;
1096         if ((entire_insn & 0xf0ff) == 0x400b)
1097           { itype = SH2E_INSN_JSR_COMPACT; sh2e_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1098         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1099       case 526 :
1100         entire_insn = entire_insn >> 16;
1101         if ((entire_insn & 0xf0ff) == 0x400e)
1102           { itype = SH2E_INSN_LDC_SR_COMPACT; sh2e_extract_sfmt_ldc_sr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1103         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1104       case 527 : /* fall through */
1105       case 543 : /* fall through */
1106       case 559 : /* fall through */
1107       case 575 : /* fall through */
1108       case 591 : /* fall through */
1109       case 607 : /* fall through */
1110       case 623 : /* fall through */
1111       case 639 :
1112         entire_insn = entire_insn >> 16;
1113         itype = SH2E_INSN_MACW_COMPACT; sh2e_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1114       case 528 :
1115         entire_insn = entire_insn >> 16;
1116         if ((entire_insn & 0xf0ff) == 0x4010)
1117           { itype = SH2E_INSN_DT_COMPACT; sh2e_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1118         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1119       case 529 :
1120         entire_insn = entire_insn >> 16;
1121         if ((entire_insn & 0xf0ff) == 0x4011)
1122           { itype = SH2E_INSN_CMPPZ_COMPACT; sh2e_extract_sfmt_cmppl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1123         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1124       case 530 :
1125         entire_insn = entire_insn >> 16;
1126         if ((entire_insn & 0xf0ff) == 0x4012)
1127           { itype = SH2E_INSN_STSL_MACL_COMPACT; sh2e_extract_sfmt_stsl_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1128         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1129       case 531 :
1130         entire_insn = entire_insn >> 16;
1131         if ((entire_insn & 0xf0ff) == 0x4013)
1132           { itype = SH2E_INSN_STCL_GBR_COMPACT; sh2e_extract_sfmt_stcl_gbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1133         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1134       case 533 :
1135         entire_insn = entire_insn >> 16;
1136         if ((entire_insn & 0xf0ff) == 0x4015)
1137           { itype = SH2E_INSN_CMPPL_COMPACT; sh2e_extract_sfmt_cmppl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1138         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1139       case 534 :
1140         entire_insn = entire_insn >> 16;
1141         if ((entire_insn & 0xf0ff) == 0x4016)
1142           { itype = SH2E_INSN_LDSL_MACL_COMPACT; sh2e_extract_sfmt_ldsl_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1143         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1144       case 535 :
1145         entire_insn = entire_insn >> 16;
1146         if ((entire_insn & 0xf0ff) == 0x4017)
1147           { itype = SH2E_INSN_LDCL_GBR_COMPACT; sh2e_extract_sfmt_ldcl_gbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1148         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1149       case 536 :
1150         entire_insn = entire_insn >> 16;
1151         if ((entire_insn & 0xf0ff) == 0x4018)
1152           { itype = SH2E_INSN_SHLL8_COMPACT; sh2e_extract_sfmt_shll2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1153         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1154       case 537 :
1155         entire_insn = entire_insn >> 16;
1156         if ((entire_insn & 0xf0ff) == 0x4019)
1157           { itype = SH2E_INSN_SHLR8_COMPACT; sh2e_extract_sfmt_shll2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1158         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1159       case 538 :
1160         entire_insn = entire_insn >> 16;
1161         if ((entire_insn & 0xf0ff) == 0x401a)
1162           { itype = SH2E_INSN_LDS_MACL_COMPACT; sh2e_extract_sfmt_lds_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1163         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1164       case 539 :
1165         entire_insn = entire_insn >> 16;
1166         if ((entire_insn & 0xf0ff) == 0x401b)
1167           { itype = SH2E_INSN_TASB_COMPACT; sh2e_extract_sfmt_tasb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1168         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1169       case 542 :
1170         entire_insn = entire_insn >> 16;
1171         if ((entire_insn & 0xf0ff) == 0x401e)
1172           { itype = SH2E_INSN_LDC_GBR_COMPACT; sh2e_extract_sfmt_ldc_gbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1173         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1174       case 544 :
1175         entire_insn = entire_insn >> 16;
1176         if ((entire_insn & 0xf0ff) == 0x4020)
1177           { itype = SH2E_INSN_SHAL_COMPACT; sh2e_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1178         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1179       case 545 :
1180         entire_insn = entire_insn >> 16;
1181         if ((entire_insn & 0xf0ff) == 0x4021)
1182           { itype = SH2E_INSN_SHAR_COMPACT; sh2e_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1183         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1184       case 546 :
1185         entire_insn = entire_insn >> 16;
1186         if ((entire_insn & 0xf0ff) == 0x4022)
1187           { itype = SH2E_INSN_STSL_PR_COMPACT; sh2e_extract_sfmt_stsl_pr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1188         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1189       case 547 :
1190         entire_insn = entire_insn >> 16;
1191         if ((entire_insn & 0xf0ff) == 0x4023)
1192           { itype = SH2E_INSN_STCL_VBR_COMPACT; sh2e_extract_sfmt_stcl_vbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1193         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1194       case 548 :
1195         entire_insn = entire_insn >> 16;
1196         if ((entire_insn & 0xf0ff) == 0x4024)
1197           { itype = SH2E_INSN_ROTCL_COMPACT; sh2e_extract_sfmt_rotcl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1198         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1199       case 549 :
1200         entire_insn = entire_insn >> 16;
1201         if ((entire_insn & 0xf0ff) == 0x4025)
1202           { itype = SH2E_INSN_ROTCR_COMPACT; sh2e_extract_sfmt_rotcl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1203         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1204       case 550 :
1205         entire_insn = entire_insn >> 16;
1206         if ((entire_insn & 0xf0ff) == 0x4026)
1207           { itype = SH2E_INSN_LDSL_PR_COMPACT; sh2e_extract_sfmt_ldsl_pr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1208         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1209       case 551 :
1210         entire_insn = entire_insn >> 16;
1211         if ((entire_insn & 0xf0ff) == 0x4027)
1212           { itype = SH2E_INSN_LDCL_VBR_COMPACT; sh2e_extract_sfmt_ldcl_vbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1213         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1214       case 552 :
1215         entire_insn = entire_insn >> 16;
1216         if ((entire_insn & 0xf0ff) == 0x4028)
1217           { itype = SH2E_INSN_SHLL16_COMPACT; sh2e_extract_sfmt_shll2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1218         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1219       case 553 :
1220         entire_insn = entire_insn >> 16;
1221         if ((entire_insn & 0xf0ff) == 0x4029)
1222           { itype = SH2E_INSN_SHLR16_COMPACT; sh2e_extract_sfmt_shll2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1223         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1224       case 554 :
1225         entire_insn = entire_insn >> 16;
1226         if ((entire_insn & 0xf0ff) == 0x402a)
1227           { itype = SH2E_INSN_LDS_PR_COMPACT; sh2e_extract_sfmt_lds_pr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1228         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1229       case 555 :
1230         entire_insn = entire_insn >> 16;
1231         if ((entire_insn & 0xf0ff) == 0x402b)
1232           { itype = SH2E_INSN_JMP_COMPACT; sh2e_extract_sfmt_braf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1233         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1234       case 558 :
1235         entire_insn = entire_insn >> 16;
1236         if ((entire_insn & 0xf0ff) == 0x402e)
1237           { itype = SH2E_INSN_LDC_VBR_COMPACT; sh2e_extract_sfmt_ldc_vbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1238         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1239       case 594 :
1240         entire_insn = entire_insn >> 16;
1241         if ((entire_insn & 0xf0ff) == 0x4052)
1242           { itype = SH2E_INSN_STSL_FPUL_COMPACT; sh2e_extract_sfmt_stsl_fpul_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1243         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1244       case 598 :
1245         entire_insn = entire_insn >> 16;
1246         if ((entire_insn & 0xf0ff) == 0x4056)
1247           { itype = SH2E_INSN_LDSL_FPUL_COMPACT; sh2e_extract_sfmt_ldsl_fpul_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1248         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1249       case 602 :
1250         entire_insn = entire_insn >> 16;
1251         if ((entire_insn & 0xf0ff) == 0x405a)
1252           { itype = SH2E_INSN_LDS_FPUL_COMPACT; sh2e_extract_sfmt_lds_fpul_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1253         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1254       case 610 :
1255         entire_insn = entire_insn >> 16;
1256         if ((entire_insn & 0xf0ff) == 0x4062)
1257           { itype = SH2E_INSN_STSL_FPSCR_COMPACT; sh2e_extract_sfmt_stsl_fpscr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1258         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1259       case 614 :
1260         entire_insn = entire_insn >> 16;
1261         if ((entire_insn & 0xf0ff) == 0x4066)
1262           { itype = SH2E_INSN_LDSL_FPSCR_COMPACT; sh2e_extract_sfmt_ldsl_fpscr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1263         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1264       case 618 :
1265         entire_insn = entire_insn >> 16;
1266         if ((entire_insn & 0xf0ff) == 0x406a)
1267           { itype = SH2E_INSN_LDS_FPSCR_COMPACT; sh2e_extract_sfmt_lds_fpscr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1268         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1269       case 640 : /* fall through */
1270       case 641 : /* fall through */
1271       case 642 : /* fall through */
1272       case 643 : /* fall through */
1273       case 644 : /* fall through */
1274       case 645 : /* fall through */
1275       case 646 : /* fall through */
1276       case 647 : /* fall through */
1277       case 648 : /* fall through */
1278       case 649 : /* fall through */
1279       case 650 : /* fall through */
1280       case 651 : /* fall through */
1281       case 652 : /* fall through */
1282       case 653 : /* fall through */
1283       case 654 : /* fall through */
1284       case 655 : /* fall through */
1285       case 656 : /* fall through */
1286       case 657 : /* fall through */
1287       case 658 : /* fall through */
1288       case 659 : /* fall through */
1289       case 660 : /* fall through */
1290       case 661 : /* fall through */
1291       case 662 : /* fall through */
1292       case 663 : /* fall through */
1293       case 664 : /* fall through */
1294       case 665 : /* fall through */
1295       case 666 : /* fall through */
1296       case 667 : /* fall through */
1297       case 668 : /* fall through */
1298       case 669 : /* fall through */
1299       case 670 : /* fall through */
1300       case 671 : /* fall through */
1301       case 672 : /* fall through */
1302       case 673 : /* fall through */
1303       case 674 : /* fall through */
1304       case 675 : /* fall through */
1305       case 676 : /* fall through */
1306       case 677 : /* fall through */
1307       case 678 : /* fall through */
1308       case 679 : /* fall through */
1309       case 680 : /* fall through */
1310       case 681 : /* fall through */
1311       case 682 : /* fall through */
1312       case 683 : /* fall through */
1313       case 684 : /* fall through */
1314       case 685 : /* fall through */
1315       case 686 : /* fall through */
1316       case 687 : /* fall through */
1317       case 688 : /* fall through */
1318       case 689 : /* fall through */
1319       case 690 : /* fall through */
1320       case 691 : /* fall through */
1321       case 692 : /* fall through */
1322       case 693 : /* fall through */
1323       case 694 : /* fall through */
1324       case 695 : /* fall through */
1325       case 696 : /* fall through */
1326       case 697 : /* fall through */
1327       case 698 : /* fall through */
1328       case 699 : /* fall through */
1329       case 700 : /* fall through */
1330       case 701 : /* fall through */
1331       case 702 : /* fall through */
1332       case 703 : /* fall through */
1333       case 704 : /* fall through */
1334       case 705 : /* fall through */
1335       case 706 : /* fall through */
1336       case 707 : /* fall through */
1337       case 708 : /* fall through */
1338       case 709 : /* fall through */
1339       case 710 : /* fall through */
1340       case 711 : /* fall through */
1341       case 712 : /* fall through */
1342       case 713 : /* fall through */
1343       case 714 : /* fall through */
1344       case 715 : /* fall through */
1345       case 716 : /* fall through */
1346       case 717 : /* fall through */
1347       case 718 : /* fall through */
1348       case 719 : /* fall through */
1349       case 720 : /* fall through */
1350       case 721 : /* fall through */
1351       case 722 : /* fall through */
1352       case 723 : /* fall through */
1353       case 724 : /* fall through */
1354       case 725 : /* fall through */
1355       case 726 : /* fall through */
1356       case 727 : /* fall through */
1357       case 728 : /* fall through */
1358       case 729 : /* fall through */
1359       case 730 : /* fall through */
1360       case 731 : /* fall through */
1361       case 732 : /* fall through */
1362       case 733 : /* fall through */
1363       case 734 : /* fall through */
1364       case 735 : /* fall through */
1365       case 736 : /* fall through */
1366       case 737 : /* fall through */
1367       case 738 : /* fall through */
1368       case 739 : /* fall through */
1369       case 740 : /* fall through */
1370       case 741 : /* fall through */
1371       case 742 : /* fall through */
1372       case 743 : /* fall through */
1373       case 744 : /* fall through */
1374       case 745 : /* fall through */
1375       case 746 : /* fall through */
1376       case 747 : /* fall through */
1377       case 748 : /* fall through */
1378       case 749 : /* fall through */
1379       case 750 : /* fall through */
1380       case 751 : /* fall through */
1381       case 752 : /* fall through */
1382       case 753 : /* fall through */
1383       case 754 : /* fall through */
1384       case 755 : /* fall through */
1385       case 756 : /* fall through */
1386       case 757 : /* fall through */
1387       case 758 : /* fall through */
1388       case 759 : /* fall through */
1389       case 760 : /* fall through */
1390       case 761 : /* fall through */
1391       case 762 : /* fall through */
1392       case 763 : /* fall through */
1393       case 764 : /* fall through */
1394       case 765 : /* fall through */
1395       case 766 : /* fall through */
1396       case 767 :
1397         entire_insn = entire_insn >> 16;
1398         itype = SH2E_INSN_MOVL11_COMPACT; sh2e_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1399       case 768 : /* fall through */
1400       case 784 : /* fall through */
1401       case 800 : /* fall through */
1402       case 816 : /* fall through */
1403       case 832 : /* fall through */
1404       case 848 : /* fall through */
1405       case 864 : /* fall through */
1406       case 880 :
1407         entire_insn = entire_insn >> 16;
1408         itype = SH2E_INSN_MOVB6_COMPACT; sh2e_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1409       case 769 : /* fall through */
1410       case 785 : /* fall through */
1411       case 801 : /* fall through */
1412       case 817 : /* fall through */
1413       case 833 : /* fall through */
1414       case 849 : /* fall through */
1415       case 865 : /* fall through */
1416       case 881 :
1417         entire_insn = entire_insn >> 16;
1418         itype = SH2E_INSN_MOVW6_COMPACT; sh2e_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1419       case 770 : /* fall through */
1420       case 786 : /* fall through */
1421       case 802 : /* fall through */
1422       case 818 : /* fall through */
1423       case 834 : /* fall through */
1424       case 850 : /* fall through */
1425       case 866 : /* fall through */
1426       case 882 :
1427         entire_insn = entire_insn >> 16;
1428         itype = SH2E_INSN_MOVL6_COMPACT; sh2e_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1429       case 771 : /* fall through */
1430       case 787 : /* fall through */
1431       case 803 : /* fall through */
1432       case 819 : /* fall through */
1433       case 835 : /* fall through */
1434       case 851 : /* fall through */
1435       case 867 : /* fall through */
1436       case 883 :
1437         entire_insn = entire_insn >> 16;
1438         itype = SH2E_INSN_MOV_COMPACT; sh2e_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1439       case 772 : /* fall through */
1440       case 788 : /* fall through */
1441       case 804 : /* fall through */
1442       case 820 : /* fall through */
1443       case 836 : /* fall through */
1444       case 852 : /* fall through */
1445       case 868 : /* fall through */
1446       case 884 :
1447         entire_insn = entire_insn >> 16;
1448         itype = SH2E_INSN_MOVB7_COMPACT; sh2e_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1449       case 773 : /* fall through */
1450       case 789 : /* fall through */
1451       case 805 : /* fall through */
1452       case 821 : /* fall through */
1453       case 837 : /* fall through */
1454       case 853 : /* fall through */
1455       case 869 : /* fall through */
1456       case 885 :
1457         entire_insn = entire_insn >> 16;
1458         itype = SH2E_INSN_MOVW7_COMPACT; sh2e_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1459       case 774 : /* fall through */
1460       case 790 : /* fall through */
1461       case 806 : /* fall through */
1462       case 822 : /* fall through */
1463       case 838 : /* fall through */
1464       case 854 : /* fall through */
1465       case 870 : /* fall through */
1466       case 886 :
1467         entire_insn = entire_insn >> 16;
1468         itype = SH2E_INSN_MOVL7_COMPACT; sh2e_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1469       case 775 : /* fall through */
1470       case 791 : /* fall through */
1471       case 807 : /* fall through */
1472       case 823 : /* fall through */
1473       case 839 : /* fall through */
1474       case 855 : /* fall through */
1475       case 871 : /* fall through */
1476       case 887 :
1477         entire_insn = entire_insn >> 16;
1478         itype = SH2E_INSN_NOT_COMPACT; sh2e_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1479       case 776 : /* fall through */
1480       case 792 : /* fall through */
1481       case 808 : /* fall through */
1482       case 824 : /* fall through */
1483       case 840 : /* fall through */
1484       case 856 : /* fall through */
1485       case 872 : /* fall through */
1486       case 888 :
1487         entire_insn = entire_insn >> 16;
1488         itype = SH2E_INSN_SWAPB_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1489       case 777 : /* fall through */
1490       case 793 : /* fall through */
1491       case 809 : /* fall through */
1492       case 825 : /* fall through */
1493       case 841 : /* fall through */
1494       case 857 : /* fall through */
1495       case 873 : /* fall through */
1496       case 889 :
1497         entire_insn = entire_insn >> 16;
1498         itype = SH2E_INSN_SWAPW_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1499       case 778 : /* fall through */
1500       case 794 : /* fall through */
1501       case 810 : /* fall through */
1502       case 826 : /* fall through */
1503       case 842 : /* fall through */
1504       case 858 : /* fall through */
1505       case 874 : /* fall through */
1506       case 890 :
1507         entire_insn = entire_insn >> 16;
1508         itype = SH2E_INSN_NEGC_COMPACT; sh2e_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1509       case 779 : /* fall through */
1510       case 795 : /* fall through */
1511       case 811 : /* fall through */
1512       case 827 : /* fall through */
1513       case 843 : /* fall through */
1514       case 859 : /* fall through */
1515       case 875 : /* fall through */
1516       case 891 :
1517         entire_insn = entire_insn >> 16;
1518         itype = SH2E_INSN_NEG_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1519       case 780 : /* fall through */
1520       case 796 : /* fall through */
1521       case 812 : /* fall through */
1522       case 828 : /* fall through */
1523       case 844 : /* fall through */
1524       case 860 : /* fall through */
1525       case 876 : /* fall through */
1526       case 892 :
1527         entire_insn = entire_insn >> 16;
1528         itype = SH2E_INSN_EXTUB_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1529       case 781 : /* fall through */
1530       case 797 : /* fall through */
1531       case 813 : /* fall through */
1532       case 829 : /* fall through */
1533       case 845 : /* fall through */
1534       case 861 : /* fall through */
1535       case 877 : /* fall through */
1536       case 893 :
1537         entire_insn = entire_insn >> 16;
1538         itype = SH2E_INSN_EXTUW_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1539       case 782 : /* fall through */
1540       case 798 : /* fall through */
1541       case 814 : /* fall through */
1542       case 830 : /* fall through */
1543       case 846 : /* fall through */
1544       case 862 : /* fall through */
1545       case 878 : /* fall through */
1546       case 894 :
1547         entire_insn = entire_insn >> 16;
1548         itype = SH2E_INSN_EXTSB_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1549       case 783 : /* fall through */
1550       case 799 : /* fall through */
1551       case 815 : /* fall through */
1552       case 831 : /* fall through */
1553       case 847 : /* fall through */
1554       case 863 : /* fall through */
1555       case 879 : /* fall through */
1556       case 895 :
1557         entire_insn = entire_insn >> 16;
1558         itype = SH2E_INSN_EXTSW_COMPACT; sh2e_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1559       case 896 : /* fall through */
1560       case 897 : /* fall through */
1561       case 898 : /* fall through */
1562       case 899 : /* fall through */
1563       case 900 : /* fall through */
1564       case 901 : /* fall through */
1565       case 902 : /* fall through */
1566       case 903 : /* fall through */
1567       case 904 : /* fall through */
1568       case 905 : /* fall through */
1569       case 906 : /* fall through */
1570       case 907 : /* fall through */
1571       case 908 : /* fall through */
1572       case 909 : /* fall through */
1573       case 910 : /* fall through */
1574       case 911 : /* fall through */
1575       case 912 : /* fall through */
1576       case 913 : /* fall through */
1577       case 914 : /* fall through */
1578       case 915 : /* fall through */
1579       case 916 : /* fall through */
1580       case 917 : /* fall through */
1581       case 918 : /* fall through */
1582       case 919 : /* fall through */
1583       case 920 : /* fall through */
1584       case 921 : /* fall through */
1585       case 922 : /* fall through */
1586       case 923 : /* fall through */
1587       case 924 : /* fall through */
1588       case 925 : /* fall through */
1589       case 926 : /* fall through */
1590       case 927 : /* fall through */
1591       case 928 : /* fall through */
1592       case 929 : /* fall through */
1593       case 930 : /* fall through */
1594       case 931 : /* fall through */
1595       case 932 : /* fall through */
1596       case 933 : /* fall through */
1597       case 934 : /* fall through */
1598       case 935 : /* fall through */
1599       case 936 : /* fall through */
1600       case 937 : /* fall through */
1601       case 938 : /* fall through */
1602       case 939 : /* fall through */
1603       case 940 : /* fall through */
1604       case 941 : /* fall through */
1605       case 942 : /* fall through */
1606       case 943 : /* fall through */
1607       case 944 : /* fall through */
1608       case 945 : /* fall through */
1609       case 946 : /* fall through */
1610       case 947 : /* fall through */
1611       case 948 : /* fall through */
1612       case 949 : /* fall through */
1613       case 950 : /* fall through */
1614       case 951 : /* fall through */
1615       case 952 : /* fall through */
1616       case 953 : /* fall through */
1617       case 954 : /* fall through */
1618       case 955 : /* fall through */
1619       case 956 : /* fall through */
1620       case 957 : /* fall through */
1621       case 958 : /* fall through */
1622       case 959 : /* fall through */
1623       case 960 : /* fall through */
1624       case 961 : /* fall through */
1625       case 962 : /* fall through */
1626       case 963 : /* fall through */
1627       case 964 : /* fall through */
1628       case 965 : /* fall through */
1629       case 966 : /* fall through */
1630       case 967 : /* fall through */
1631       case 968 : /* fall through */
1632       case 969 : /* fall through */
1633       case 970 : /* fall through */
1634       case 971 : /* fall through */
1635       case 972 : /* fall through */
1636       case 973 : /* fall through */
1637       case 974 : /* fall through */
1638       case 975 : /* fall through */
1639       case 976 : /* fall through */
1640       case 977 : /* fall through */
1641       case 978 : /* fall through */
1642       case 979 : /* fall through */
1643       case 980 : /* fall through */
1644       case 981 : /* fall through */
1645       case 982 : /* fall through */
1646       case 983 : /* fall through */
1647       case 984 : /* fall through */
1648       case 985 : /* fall through */
1649       case 986 : /* fall through */
1650       case 987 : /* fall through */
1651       case 988 : /* fall through */
1652       case 989 : /* fall through */
1653       case 990 : /* fall through */
1654       case 991 : /* fall through */
1655       case 992 : /* fall through */
1656       case 993 : /* fall through */
1657       case 994 : /* fall through */
1658       case 995 : /* fall through */
1659       case 996 : /* fall through */
1660       case 997 : /* fall through */
1661       case 998 : /* fall through */
1662       case 999 : /* fall through */
1663       case 1000 : /* fall through */
1664       case 1001 : /* fall through */
1665       case 1002 : /* fall through */
1666       case 1003 : /* fall through */
1667       case 1004 : /* fall through */
1668       case 1005 : /* fall through */
1669       case 1006 : /* fall through */
1670       case 1007 : /* fall through */
1671       case 1008 : /* fall through */
1672       case 1009 : /* fall through */
1673       case 1010 : /* fall through */
1674       case 1011 : /* fall through */
1675       case 1012 : /* fall through */
1676       case 1013 : /* fall through */
1677       case 1014 : /* fall through */
1678       case 1015 : /* fall through */
1679       case 1016 : /* fall through */
1680       case 1017 : /* fall through */
1681       case 1018 : /* fall through */
1682       case 1019 : /* fall through */
1683       case 1020 : /* fall through */
1684       case 1021 : /* fall through */
1685       case 1022 : /* fall through */
1686       case 1023 :
1687         entire_insn = entire_insn >> 16;
1688         itype = SH2E_INSN_ADDI_COMPACT; sh2e_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1689       case 1024 : /* fall through */
1690       case 1025 : /* fall through */
1691       case 1026 : /* fall through */
1692       case 1027 : /* fall through */
1693       case 1028 : /* fall through */
1694       case 1029 : /* fall through */
1695       case 1030 : /* fall through */
1696       case 1031 : /* fall through */
1697       case 1032 : /* fall through */
1698       case 1033 : /* fall through */
1699       case 1034 : /* fall through */
1700       case 1035 : /* fall through */
1701       case 1036 : /* fall through */
1702       case 1037 : /* fall through */
1703       case 1038 : /* fall through */
1704       case 1039 : /* fall through */
1705       case 1040 : /* fall through */
1706       case 1041 : /* fall through */
1707       case 1042 : /* fall through */
1708       case 1043 : /* fall through */
1709       case 1044 : /* fall through */
1710       case 1045 : /* fall through */
1711       case 1046 : /* fall through */
1712       case 1047 : /* fall through */
1713       case 1048 : /* fall through */
1714       case 1049 : /* fall through */
1715       case 1050 : /* fall through */
1716       case 1051 : /* fall through */
1717       case 1052 : /* fall through */
1718       case 1053 : /* fall through */
1719       case 1054 : /* fall through */
1720       case 1055 : /* fall through */
1721       case 1056 : /* fall through */
1722       case 1057 : /* fall through */
1723       case 1058 : /* fall through */
1724       case 1059 : /* fall through */
1725       case 1060 : /* fall through */
1726       case 1061 : /* fall through */
1727       case 1062 : /* fall through */
1728       case 1063 : /* fall through */
1729       case 1064 : /* fall through */
1730       case 1065 : /* fall through */
1731       case 1066 : /* fall through */
1732       case 1067 : /* fall through */
1733       case 1068 : /* fall through */
1734       case 1069 : /* fall through */
1735       case 1070 : /* fall through */
1736       case 1071 : /* fall through */
1737       case 1072 : /* fall through */
1738       case 1073 : /* fall through */
1739       case 1074 : /* fall through */
1740       case 1075 : /* fall through */
1741       case 1076 : /* fall through */
1742       case 1077 : /* fall through */
1743       case 1078 : /* fall through */
1744       case 1079 : /* fall through */
1745       case 1080 : /* fall through */
1746       case 1081 : /* fall through */
1747       case 1082 : /* fall through */
1748       case 1083 : /* fall through */
1749       case 1084 : /* fall through */
1750       case 1085 : /* fall through */
1751       case 1086 : /* fall through */
1752       case 1087 : /* fall through */
1753       case 1088 : /* fall through */
1754       case 1089 : /* fall through */
1755       case 1090 : /* fall through */
1756       case 1091 : /* fall through */
1757       case 1092 : /* fall through */
1758       case 1093 : /* fall through */
1759       case 1094 : /* fall through */
1760       case 1095 : /* fall through */
1761       case 1096 : /* fall through */
1762       case 1097 : /* fall through */
1763       case 1098 : /* fall through */
1764       case 1099 : /* fall through */
1765       case 1100 : /* fall through */
1766       case 1101 : /* fall through */
1767       case 1102 : /* fall through */
1768       case 1103 : /* fall through */
1769       case 1104 : /* fall through */
1770       case 1105 : /* fall through */
1771       case 1106 : /* fall through */
1772       case 1107 : /* fall through */
1773       case 1108 : /* fall through */
1774       case 1109 : /* fall through */
1775       case 1110 : /* fall through */
1776       case 1111 : /* fall through */
1777       case 1112 : /* fall through */
1778       case 1113 : /* fall through */
1779       case 1114 : /* fall through */
1780       case 1115 : /* fall through */
1781       case 1116 : /* fall through */
1782       case 1117 : /* fall through */
1783       case 1118 : /* fall through */
1784       case 1119 : /* fall through */
1785       case 1120 : /* fall through */
1786       case 1121 : /* fall through */
1787       case 1122 : /* fall through */
1788       case 1123 : /* fall through */
1789       case 1124 : /* fall through */
1790       case 1125 : /* fall through */
1791       case 1126 : /* fall through */
1792       case 1127 : /* fall through */
1793       case 1128 : /* fall through */
1794       case 1129 : /* fall through */
1795       case 1130 : /* fall through */
1796       case 1131 : /* fall through */
1797       case 1132 : /* fall through */
1798       case 1133 : /* fall through */
1799       case 1134 : /* fall through */
1800       case 1135 : /* fall through */
1801       case 1136 : /* fall through */
1802       case 1137 : /* fall through */
1803       case 1138 : /* fall through */
1804       case 1139 : /* fall through */
1805       case 1140 : /* fall through */
1806       case 1141 : /* fall through */
1807       case 1142 : /* fall through */
1808       case 1143 : /* fall through */
1809       case 1144 : /* fall through */
1810       case 1145 : /* fall through */
1811       case 1146 : /* fall through */
1812       case 1147 : /* fall through */
1813       case 1148 : /* fall through */
1814       case 1149 : /* fall through */
1815       case 1150 : /* fall through */
1816       case 1151 :
1817         {
1818           unsigned int val = (((insn >> 24) & (15 << 0)));
1819           switch (val)
1820           {
1821           case 0 :
1822             entire_insn = entire_insn >> 16;
1823             itype = SH2E_INSN_MOVB5_COMPACT; sh2e_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1824           case 1 :
1825             entire_insn = entire_insn >> 16;
1826             itype = SH2E_INSN_MOVW5_COMPACT; sh2e_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1827           case 4 :
1828             entire_insn = entire_insn >> 16;
1829             itype = SH2E_INSN_MOVB10_COMPACT; sh2e_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1830           case 5 :
1831             entire_insn = entire_insn >> 16;
1832             itype = SH2E_INSN_MOVW11_COMPACT; sh2e_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1833           case 8 :
1834             entire_insn = entire_insn >> 16;
1835             itype = SH2E_INSN_CMPEQI_COMPACT; sh2e_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1836           case 9 :
1837             entire_insn = entire_insn >> 16;
1838             itype = SH2E_INSN_BT_COMPACT; sh2e_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1839           case 11 :
1840             entire_insn = entire_insn >> 16;
1841             itype = SH2E_INSN_BF_COMPACT; sh2e_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1842           case 13 :
1843             entire_insn = entire_insn >> 16;
1844             itype = SH2E_INSN_BTS_COMPACT; sh2e_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1845           case 15 :
1846             entire_insn = entire_insn >> 16;
1847             itype = SH2E_INSN_BFS_COMPACT; sh2e_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1848           default : itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1849           }
1850         }
1851       case 1152 : /* fall through */
1852       case 1153 : /* fall through */
1853       case 1154 : /* fall through */
1854       case 1155 : /* fall through */
1855       case 1156 : /* fall through */
1856       case 1157 : /* fall through */
1857       case 1158 : /* fall through */
1858       case 1159 : /* fall through */
1859       case 1160 : /* fall through */
1860       case 1161 : /* fall through */
1861       case 1162 : /* fall through */
1862       case 1163 : /* fall through */
1863       case 1164 : /* fall through */
1864       case 1165 : /* fall through */
1865       case 1166 : /* fall through */
1866       case 1167 : /* fall through */
1867       case 1168 : /* fall through */
1868       case 1169 : /* fall through */
1869       case 1170 : /* fall through */
1870       case 1171 : /* fall through */
1871       case 1172 : /* fall through */
1872       case 1173 : /* fall through */
1873       case 1174 : /* fall through */
1874       case 1175 : /* fall through */
1875       case 1176 : /* fall through */
1876       case 1177 : /* fall through */
1877       case 1178 : /* fall through */
1878       case 1179 : /* fall through */
1879       case 1180 : /* fall through */
1880       case 1181 : /* fall through */
1881       case 1182 : /* fall through */
1882       case 1183 : /* fall through */
1883       case 1184 : /* fall through */
1884       case 1185 : /* fall through */
1885       case 1186 : /* fall through */
1886       case 1187 : /* fall through */
1887       case 1188 : /* fall through */
1888       case 1189 : /* fall through */
1889       case 1190 : /* fall through */
1890       case 1191 : /* fall through */
1891       case 1192 : /* fall through */
1892       case 1193 : /* fall through */
1893       case 1194 : /* fall through */
1894       case 1195 : /* fall through */
1895       case 1196 : /* fall through */
1896       case 1197 : /* fall through */
1897       case 1198 : /* fall through */
1898       case 1199 : /* fall through */
1899       case 1200 : /* fall through */
1900       case 1201 : /* fall through */
1901       case 1202 : /* fall through */
1902       case 1203 : /* fall through */
1903       case 1204 : /* fall through */
1904       case 1205 : /* fall through */
1905       case 1206 : /* fall through */
1906       case 1207 : /* fall through */
1907       case 1208 : /* fall through */
1908       case 1209 : /* fall through */
1909       case 1210 : /* fall through */
1910       case 1211 : /* fall through */
1911       case 1212 : /* fall through */
1912       case 1213 : /* fall through */
1913       case 1214 : /* fall through */
1914       case 1215 : /* fall through */
1915       case 1216 : /* fall through */
1916       case 1217 : /* fall through */
1917       case 1218 : /* fall through */
1918       case 1219 : /* fall through */
1919       case 1220 : /* fall through */
1920       case 1221 : /* fall through */
1921       case 1222 : /* fall through */
1922       case 1223 : /* fall through */
1923       case 1224 : /* fall through */
1924       case 1225 : /* fall through */
1925       case 1226 : /* fall through */
1926       case 1227 : /* fall through */
1927       case 1228 : /* fall through */
1928       case 1229 : /* fall through */
1929       case 1230 : /* fall through */
1930       case 1231 : /* fall through */
1931       case 1232 : /* fall through */
1932       case 1233 : /* fall through */
1933       case 1234 : /* fall through */
1934       case 1235 : /* fall through */
1935       case 1236 : /* fall through */
1936       case 1237 : /* fall through */
1937       case 1238 : /* fall through */
1938       case 1239 : /* fall through */
1939       case 1240 : /* fall through */
1940       case 1241 : /* fall through */
1941       case 1242 : /* fall through */
1942       case 1243 : /* fall through */
1943       case 1244 : /* fall through */
1944       case 1245 : /* fall through */
1945       case 1246 : /* fall through */
1946       case 1247 : /* fall through */
1947       case 1248 : /* fall through */
1948       case 1249 : /* fall through */
1949       case 1250 : /* fall through */
1950       case 1251 : /* fall through */
1951       case 1252 : /* fall through */
1952       case 1253 : /* fall through */
1953       case 1254 : /* fall through */
1954       case 1255 : /* fall through */
1955       case 1256 : /* fall through */
1956       case 1257 : /* fall through */
1957       case 1258 : /* fall through */
1958       case 1259 : /* fall through */
1959       case 1260 : /* fall through */
1960       case 1261 : /* fall through */
1961       case 1262 : /* fall through */
1962       case 1263 : /* fall through */
1963       case 1264 : /* fall through */
1964       case 1265 : /* fall through */
1965       case 1266 : /* fall through */
1966       case 1267 : /* fall through */
1967       case 1268 : /* fall through */
1968       case 1269 : /* fall through */
1969       case 1270 : /* fall through */
1970       case 1271 : /* fall through */
1971       case 1272 : /* fall through */
1972       case 1273 : /* fall through */
1973       case 1274 : /* fall through */
1974       case 1275 : /* fall through */
1975       case 1276 : /* fall through */
1976       case 1277 : /* fall through */
1977       case 1278 : /* fall through */
1978       case 1279 :
1979         entire_insn = entire_insn >> 16;
1980         itype = SH2E_INSN_MOVW10_COMPACT; sh2e_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1981       case 1280 : /* fall through */
1982       case 1281 : /* fall through */
1983       case 1282 : /* fall through */
1984       case 1283 : /* fall through */
1985       case 1284 : /* fall through */
1986       case 1285 : /* fall through */
1987       case 1286 : /* fall through */
1988       case 1287 : /* fall through */
1989       case 1288 : /* fall through */
1990       case 1289 : /* fall through */
1991       case 1290 : /* fall through */
1992       case 1291 : /* fall through */
1993       case 1292 : /* fall through */
1994       case 1293 : /* fall through */
1995       case 1294 : /* fall through */
1996       case 1295 : /* fall through */
1997       case 1296 : /* fall through */
1998       case 1297 : /* fall through */
1999       case 1298 : /* fall through */
2000       case 1299 : /* fall through */
2001       case 1300 : /* fall through */
2002       case 1301 : /* fall through */
2003       case 1302 : /* fall through */
2004       case 1303 : /* fall through */
2005       case 1304 : /* fall through */
2006       case 1305 : /* fall through */
2007       case 1306 : /* fall through */
2008       case 1307 : /* fall through */
2009       case 1308 : /* fall through */
2010       case 1309 : /* fall through */
2011       case 1310 : /* fall through */
2012       case 1311 : /* fall through */
2013       case 1312 : /* fall through */
2014       case 1313 : /* fall through */
2015       case 1314 : /* fall through */
2016       case 1315 : /* fall through */
2017       case 1316 : /* fall through */
2018       case 1317 : /* fall through */
2019       case 1318 : /* fall through */
2020       case 1319 : /* fall through */
2021       case 1320 : /* fall through */
2022       case 1321 : /* fall through */
2023       case 1322 : /* fall through */
2024       case 1323 : /* fall through */
2025       case 1324 : /* fall through */
2026       case 1325 : /* fall through */
2027       case 1326 : /* fall through */
2028       case 1327 : /* fall through */
2029       case 1328 : /* fall through */
2030       case 1329 : /* fall through */
2031       case 1330 : /* fall through */
2032       case 1331 : /* fall through */
2033       case 1332 : /* fall through */
2034       case 1333 : /* fall through */
2035       case 1334 : /* fall through */
2036       case 1335 : /* fall through */
2037       case 1336 : /* fall through */
2038       case 1337 : /* fall through */
2039       case 1338 : /* fall through */
2040       case 1339 : /* fall through */
2041       case 1340 : /* fall through */
2042       case 1341 : /* fall through */
2043       case 1342 : /* fall through */
2044       case 1343 : /* fall through */
2045       case 1344 : /* fall through */
2046       case 1345 : /* fall through */
2047       case 1346 : /* fall through */
2048       case 1347 : /* fall through */
2049       case 1348 : /* fall through */
2050       case 1349 : /* fall through */
2051       case 1350 : /* fall through */
2052       case 1351 : /* fall through */
2053       case 1352 : /* fall through */
2054       case 1353 : /* fall through */
2055       case 1354 : /* fall through */
2056       case 1355 : /* fall through */
2057       case 1356 : /* fall through */
2058       case 1357 : /* fall through */
2059       case 1358 : /* fall through */
2060       case 1359 : /* fall through */
2061       case 1360 : /* fall through */
2062       case 1361 : /* fall through */
2063       case 1362 : /* fall through */
2064       case 1363 : /* fall through */
2065       case 1364 : /* fall through */
2066       case 1365 : /* fall through */
2067       case 1366 : /* fall through */
2068       case 1367 : /* fall through */
2069       case 1368 : /* fall through */
2070       case 1369 : /* fall through */
2071       case 1370 : /* fall through */
2072       case 1371 : /* fall through */
2073       case 1372 : /* fall through */
2074       case 1373 : /* fall through */
2075       case 1374 : /* fall through */
2076       case 1375 : /* fall through */
2077       case 1376 : /* fall through */
2078       case 1377 : /* fall through */
2079       case 1378 : /* fall through */
2080       case 1379 : /* fall through */
2081       case 1380 : /* fall through */
2082       case 1381 : /* fall through */
2083       case 1382 : /* fall through */
2084       case 1383 : /* fall through */
2085       case 1384 : /* fall through */
2086       case 1385 : /* fall through */
2087       case 1386 : /* fall through */
2088       case 1387 : /* fall through */
2089       case 1388 : /* fall through */
2090       case 1389 : /* fall through */
2091       case 1390 : /* fall through */
2092       case 1391 : /* fall through */
2093       case 1392 : /* fall through */
2094       case 1393 : /* fall through */
2095       case 1394 : /* fall through */
2096       case 1395 : /* fall through */
2097       case 1396 : /* fall through */
2098       case 1397 : /* fall through */
2099       case 1398 : /* fall through */
2100       case 1399 : /* fall through */
2101       case 1400 : /* fall through */
2102       case 1401 : /* fall through */
2103       case 1402 : /* fall through */
2104       case 1403 : /* fall through */
2105       case 1404 : /* fall through */
2106       case 1405 : /* fall through */
2107       case 1406 : /* fall through */
2108       case 1407 :
2109         entire_insn = entire_insn >> 16;
2110         itype = SH2E_INSN_BRA_COMPACT; sh2e_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2111       case 1408 : /* fall through */
2112       case 1409 : /* fall through */
2113       case 1410 : /* fall through */
2114       case 1411 : /* fall through */
2115       case 1412 : /* fall through */
2116       case 1413 : /* fall through */
2117       case 1414 : /* fall through */
2118       case 1415 : /* fall through */
2119       case 1416 : /* fall through */
2120       case 1417 : /* fall through */
2121       case 1418 : /* fall through */
2122       case 1419 : /* fall through */
2123       case 1420 : /* fall through */
2124       case 1421 : /* fall through */
2125       case 1422 : /* fall through */
2126       case 1423 : /* fall through */
2127       case 1424 : /* fall through */
2128       case 1425 : /* fall through */
2129       case 1426 : /* fall through */
2130       case 1427 : /* fall through */
2131       case 1428 : /* fall through */
2132       case 1429 : /* fall through */
2133       case 1430 : /* fall through */
2134       case 1431 : /* fall through */
2135       case 1432 : /* fall through */
2136       case 1433 : /* fall through */
2137       case 1434 : /* fall through */
2138       case 1435 : /* fall through */
2139       case 1436 : /* fall through */
2140       case 1437 : /* fall through */
2141       case 1438 : /* fall through */
2142       case 1439 : /* fall through */
2143       case 1440 : /* fall through */
2144       case 1441 : /* fall through */
2145       case 1442 : /* fall through */
2146       case 1443 : /* fall through */
2147       case 1444 : /* fall through */
2148       case 1445 : /* fall through */
2149       case 1446 : /* fall through */
2150       case 1447 : /* fall through */
2151       case 1448 : /* fall through */
2152       case 1449 : /* fall through */
2153       case 1450 : /* fall through */
2154       case 1451 : /* fall through */
2155       case 1452 : /* fall through */
2156       case 1453 : /* fall through */
2157       case 1454 : /* fall through */
2158       case 1455 : /* fall through */
2159       case 1456 : /* fall through */
2160       case 1457 : /* fall through */
2161       case 1458 : /* fall through */
2162       case 1459 : /* fall through */
2163       case 1460 : /* fall through */
2164       case 1461 : /* fall through */
2165       case 1462 : /* fall through */
2166       case 1463 : /* fall through */
2167       case 1464 : /* fall through */
2168       case 1465 : /* fall through */
2169       case 1466 : /* fall through */
2170       case 1467 : /* fall through */
2171       case 1468 : /* fall through */
2172       case 1469 : /* fall through */
2173       case 1470 : /* fall through */
2174       case 1471 : /* fall through */
2175       case 1472 : /* fall through */
2176       case 1473 : /* fall through */
2177       case 1474 : /* fall through */
2178       case 1475 : /* fall through */
2179       case 1476 : /* fall through */
2180       case 1477 : /* fall through */
2181       case 1478 : /* fall through */
2182       case 1479 : /* fall through */
2183       case 1480 : /* fall through */
2184       case 1481 : /* fall through */
2185       case 1482 : /* fall through */
2186       case 1483 : /* fall through */
2187       case 1484 : /* fall through */
2188       case 1485 : /* fall through */
2189       case 1486 : /* fall through */
2190       case 1487 : /* fall through */
2191       case 1488 : /* fall through */
2192       case 1489 : /* fall through */
2193       case 1490 : /* fall through */
2194       case 1491 : /* fall through */
2195       case 1492 : /* fall through */
2196       case 1493 : /* fall through */
2197       case 1494 : /* fall through */
2198       case 1495 : /* fall through */
2199       case 1496 : /* fall through */
2200       case 1497 : /* fall through */
2201       case 1498 : /* fall through */
2202       case 1499 : /* fall through */
2203       case 1500 : /* fall through */
2204       case 1501 : /* fall through */
2205       case 1502 : /* fall through */
2206       case 1503 : /* fall through */
2207       case 1504 : /* fall through */
2208       case 1505 : /* fall through */
2209       case 1506 : /* fall through */
2210       case 1507 : /* fall through */
2211       case 1508 : /* fall through */
2212       case 1509 : /* fall through */
2213       case 1510 : /* fall through */
2214       case 1511 : /* fall through */
2215       case 1512 : /* fall through */
2216       case 1513 : /* fall through */
2217       case 1514 : /* fall through */
2218       case 1515 : /* fall through */
2219       case 1516 : /* fall through */
2220       case 1517 : /* fall through */
2221       case 1518 : /* fall through */
2222       case 1519 : /* fall through */
2223       case 1520 : /* fall through */
2224       case 1521 : /* fall through */
2225       case 1522 : /* fall through */
2226       case 1523 : /* fall through */
2227       case 1524 : /* fall through */
2228       case 1525 : /* fall through */
2229       case 1526 : /* fall through */
2230       case 1527 : /* fall through */
2231       case 1528 : /* fall through */
2232       case 1529 : /* fall through */
2233       case 1530 : /* fall through */
2234       case 1531 : /* fall through */
2235       case 1532 : /* fall through */
2236       case 1533 : /* fall through */
2237       case 1534 : /* fall through */
2238       case 1535 :
2239         entire_insn = entire_insn >> 16;
2240         itype = SH2E_INSN_BSR_COMPACT; sh2e_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2241       case 1536 : /* fall through */
2242       case 1537 : /* fall through */
2243       case 1538 : /* fall through */
2244       case 1539 : /* fall through */
2245       case 1540 : /* fall through */
2246       case 1541 : /* fall through */
2247       case 1542 : /* fall through */
2248       case 1543 : /* fall through */
2249       case 1544 : /* fall through */
2250       case 1545 : /* fall through */
2251       case 1546 : /* fall through */
2252       case 1547 : /* fall through */
2253       case 1548 : /* fall through */
2254       case 1549 : /* fall through */
2255       case 1550 : /* fall through */
2256       case 1551 : /* fall through */
2257       case 1552 : /* fall through */
2258       case 1553 : /* fall through */
2259       case 1554 : /* fall through */
2260       case 1555 : /* fall through */
2261       case 1556 : /* fall through */
2262       case 1557 : /* fall through */
2263       case 1558 : /* fall through */
2264       case 1559 : /* fall through */
2265       case 1560 : /* fall through */
2266       case 1561 : /* fall through */
2267       case 1562 : /* fall through */
2268       case 1563 : /* fall through */
2269       case 1564 : /* fall through */
2270       case 1565 : /* fall through */
2271       case 1566 : /* fall through */
2272       case 1567 : /* fall through */
2273       case 1568 : /* fall through */
2274       case 1569 : /* fall through */
2275       case 1570 : /* fall through */
2276       case 1571 : /* fall through */
2277       case 1572 : /* fall through */
2278       case 1573 : /* fall through */
2279       case 1574 : /* fall through */
2280       case 1575 : /* fall through */
2281       case 1576 : /* fall through */
2282       case 1577 : /* fall through */
2283       case 1578 : /* fall through */
2284       case 1579 : /* fall through */
2285       case 1580 : /* fall through */
2286       case 1581 : /* fall through */
2287       case 1582 : /* fall through */
2288       case 1583 : /* fall through */
2289       case 1584 : /* fall through */
2290       case 1585 : /* fall through */
2291       case 1586 : /* fall through */
2292       case 1587 : /* fall through */
2293       case 1588 : /* fall through */
2294       case 1589 : /* fall through */
2295       case 1590 : /* fall through */
2296       case 1591 : /* fall through */
2297       case 1592 : /* fall through */
2298       case 1593 : /* fall through */
2299       case 1594 : /* fall through */
2300       case 1595 : /* fall through */
2301       case 1596 : /* fall through */
2302       case 1597 : /* fall through */
2303       case 1598 : /* fall through */
2304       case 1599 : /* fall through */
2305       case 1600 : /* fall through */
2306       case 1601 : /* fall through */
2307       case 1602 : /* fall through */
2308       case 1603 : /* fall through */
2309       case 1604 : /* fall through */
2310       case 1605 : /* fall through */
2311       case 1606 : /* fall through */
2312       case 1607 : /* fall through */
2313       case 1608 : /* fall through */
2314       case 1609 : /* fall through */
2315       case 1610 : /* fall through */
2316       case 1611 : /* fall through */
2317       case 1612 : /* fall through */
2318       case 1613 : /* fall through */
2319       case 1614 : /* fall through */
2320       case 1615 : /* fall through */
2321       case 1616 : /* fall through */
2322       case 1617 : /* fall through */
2323       case 1618 : /* fall through */
2324       case 1619 : /* fall through */
2325       case 1620 : /* fall through */
2326       case 1621 : /* fall through */
2327       case 1622 : /* fall through */
2328       case 1623 : /* fall through */
2329       case 1624 : /* fall through */
2330       case 1625 : /* fall through */
2331       case 1626 : /* fall through */
2332       case 1627 : /* fall through */
2333       case 1628 : /* fall through */
2334       case 1629 : /* fall through */
2335       case 1630 : /* fall through */
2336       case 1631 : /* fall through */
2337       case 1632 : /* fall through */
2338       case 1633 : /* fall through */
2339       case 1634 : /* fall through */
2340       case 1635 : /* fall through */
2341       case 1636 : /* fall through */
2342       case 1637 : /* fall through */
2343       case 1638 : /* fall through */
2344       case 1639 : /* fall through */
2345       case 1640 : /* fall through */
2346       case 1641 : /* fall through */
2347       case 1642 : /* fall through */
2348       case 1643 : /* fall through */
2349       case 1644 : /* fall through */
2350       case 1645 : /* fall through */
2351       case 1646 : /* fall through */
2352       case 1647 : /* fall through */
2353       case 1648 : /* fall through */
2354       case 1649 : /* fall through */
2355       case 1650 : /* fall through */
2356       case 1651 : /* fall through */
2357       case 1652 : /* fall through */
2358       case 1653 : /* fall through */
2359       case 1654 : /* fall through */
2360       case 1655 : /* fall through */
2361       case 1656 : /* fall through */
2362       case 1657 : /* fall through */
2363       case 1658 : /* fall through */
2364       case 1659 : /* fall through */
2365       case 1660 : /* fall through */
2366       case 1661 : /* fall through */
2367       case 1662 : /* fall through */
2368       case 1663 :
2369         {
2370           unsigned int val = (((insn >> 24) & (15 << 0)));
2371           switch (val)
2372           {
2373           case 0 :
2374             entire_insn = entire_insn >> 16;
2375             itype = SH2E_INSN_MOVB4_COMPACT; sh2e_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2376           case 1 :
2377             entire_insn = entire_insn >> 16;
2378             itype = SH2E_INSN_MOVW4_COMPACT; sh2e_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2379           case 2 :
2380             entire_insn = entire_insn >> 16;
2381             itype = SH2E_INSN_MOVL4_COMPACT; sh2e_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2382           case 3 :
2383             entire_insn = entire_insn >> 16;
2384             itype = SH2E_INSN_TRAPA_COMPACT; sh2e_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2385           case 4 :
2386             entire_insn = entire_insn >> 16;
2387             itype = SH2E_INSN_MOVB9_COMPACT; sh2e_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2388           case 5 :
2389             entire_insn = entire_insn >> 16;
2390             itype = SH2E_INSN_MOVW9_COMPACT; sh2e_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2391           case 6 :
2392             entire_insn = entire_insn >> 16;
2393             itype = SH2E_INSN_MOVL9_COMPACT; sh2e_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2394           case 7 :
2395             entire_insn = entire_insn >> 16;
2396             itype = SH2E_INSN_MOVA_COMPACT; sh2e_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2397           case 8 :
2398             entire_insn = entire_insn >> 16;
2399             itype = SH2E_INSN_TSTI_COMPACT; sh2e_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2400           case 9 :
2401             entire_insn = entire_insn >> 16;
2402             itype = SH2E_INSN_ANDI_COMPACT; sh2e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2403           case 10 :
2404             entire_insn = entire_insn >> 16;
2405             itype = SH2E_INSN_XORI_COMPACT; sh2e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2406           case 11 :
2407             entire_insn = entire_insn >> 16;
2408             itype = SH2E_INSN_ORI_COMPACT; sh2e_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2409           case 12 :
2410             entire_insn = entire_insn >> 16;
2411             itype = SH2E_INSN_TSTB_COMPACT; sh2e_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2412           case 13 :
2413             entire_insn = entire_insn >> 16;
2414             itype = SH2E_INSN_ANDB_COMPACT; sh2e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2415           case 14 :
2416             entire_insn = entire_insn >> 16;
2417             itype = SH2E_INSN_XORB_COMPACT; sh2e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2418           case 15 :
2419             entire_insn = entire_insn >> 16;
2420             itype = SH2E_INSN_ORB_COMPACT; sh2e_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2421           default : itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2422           }
2423         }
2424       case 1664 : /* fall through */
2425       case 1665 : /* fall through */
2426       case 1666 : /* fall through */
2427       case 1667 : /* fall through */
2428       case 1668 : /* fall through */
2429       case 1669 : /* fall through */
2430       case 1670 : /* fall through */
2431       case 1671 : /* fall through */
2432       case 1672 : /* fall through */
2433       case 1673 : /* fall through */
2434       case 1674 : /* fall through */
2435       case 1675 : /* fall through */
2436       case 1676 : /* fall through */
2437       case 1677 : /* fall through */
2438       case 1678 : /* fall through */
2439       case 1679 : /* fall through */
2440       case 1680 : /* fall through */
2441       case 1681 : /* fall through */
2442       case 1682 : /* fall through */
2443       case 1683 : /* fall through */
2444       case 1684 : /* fall through */
2445       case 1685 : /* fall through */
2446       case 1686 : /* fall through */
2447       case 1687 : /* fall through */
2448       case 1688 : /* fall through */
2449       case 1689 : /* fall through */
2450       case 1690 : /* fall through */
2451       case 1691 : /* fall through */
2452       case 1692 : /* fall through */
2453       case 1693 : /* fall through */
2454       case 1694 : /* fall through */
2455       case 1695 : /* fall through */
2456       case 1696 : /* fall through */
2457       case 1697 : /* fall through */
2458       case 1698 : /* fall through */
2459       case 1699 : /* fall through */
2460       case 1700 : /* fall through */
2461       case 1701 : /* fall through */
2462       case 1702 : /* fall through */
2463       case 1703 : /* fall through */
2464       case 1704 : /* fall through */
2465       case 1705 : /* fall through */
2466       case 1706 : /* fall through */
2467       case 1707 : /* fall through */
2468       case 1708 : /* fall through */
2469       case 1709 : /* fall through */
2470       case 1710 : /* fall through */
2471       case 1711 : /* fall through */
2472       case 1712 : /* fall through */
2473       case 1713 : /* fall through */
2474       case 1714 : /* fall through */
2475       case 1715 : /* fall through */
2476       case 1716 : /* fall through */
2477       case 1717 : /* fall through */
2478       case 1718 : /* fall through */
2479       case 1719 : /* fall through */
2480       case 1720 : /* fall through */
2481       case 1721 : /* fall through */
2482       case 1722 : /* fall through */
2483       case 1723 : /* fall through */
2484       case 1724 : /* fall through */
2485       case 1725 : /* fall through */
2486       case 1726 : /* fall through */
2487       case 1727 : /* fall through */
2488       case 1728 : /* fall through */
2489       case 1729 : /* fall through */
2490       case 1730 : /* fall through */
2491       case 1731 : /* fall through */
2492       case 1732 : /* fall through */
2493       case 1733 : /* fall through */
2494       case 1734 : /* fall through */
2495       case 1735 : /* fall through */
2496       case 1736 : /* fall through */
2497       case 1737 : /* fall through */
2498       case 1738 : /* fall through */
2499       case 1739 : /* fall through */
2500       case 1740 : /* fall through */
2501       case 1741 : /* fall through */
2502       case 1742 : /* fall through */
2503       case 1743 : /* fall through */
2504       case 1744 : /* fall through */
2505       case 1745 : /* fall through */
2506       case 1746 : /* fall through */
2507       case 1747 : /* fall through */
2508       case 1748 : /* fall through */
2509       case 1749 : /* fall through */
2510       case 1750 : /* fall through */
2511       case 1751 : /* fall through */
2512       case 1752 : /* fall through */
2513       case 1753 : /* fall through */
2514       case 1754 : /* fall through */
2515       case 1755 : /* fall through */
2516       case 1756 : /* fall through */
2517       case 1757 : /* fall through */
2518       case 1758 : /* fall through */
2519       case 1759 : /* fall through */
2520       case 1760 : /* fall through */
2521       case 1761 : /* fall through */
2522       case 1762 : /* fall through */
2523       case 1763 : /* fall through */
2524       case 1764 : /* fall through */
2525       case 1765 : /* fall through */
2526       case 1766 : /* fall through */
2527       case 1767 : /* fall through */
2528       case 1768 : /* fall through */
2529       case 1769 : /* fall through */
2530       case 1770 : /* fall through */
2531       case 1771 : /* fall through */
2532       case 1772 : /* fall through */
2533       case 1773 : /* fall through */
2534       case 1774 : /* fall through */
2535       case 1775 : /* fall through */
2536       case 1776 : /* fall through */
2537       case 1777 : /* fall through */
2538       case 1778 : /* fall through */
2539       case 1779 : /* fall through */
2540       case 1780 : /* fall through */
2541       case 1781 : /* fall through */
2542       case 1782 : /* fall through */
2543       case 1783 : /* fall through */
2544       case 1784 : /* fall through */
2545       case 1785 : /* fall through */
2546       case 1786 : /* fall through */
2547       case 1787 : /* fall through */
2548       case 1788 : /* fall through */
2549       case 1789 : /* fall through */
2550       case 1790 : /* fall through */
2551       case 1791 :
2552         entire_insn = entire_insn >> 16;
2553         itype = SH2E_INSN_MOVL10_COMPACT; sh2e_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2554       case 1792 : /* fall through */
2555       case 1793 : /* fall through */
2556       case 1794 : /* fall through */
2557       case 1795 : /* fall through */
2558       case 1796 : /* fall through */
2559       case 1797 : /* fall through */
2560       case 1798 : /* fall through */
2561       case 1799 : /* fall through */
2562       case 1800 : /* fall through */
2563       case 1801 : /* fall through */
2564       case 1802 : /* fall through */
2565       case 1803 : /* fall through */
2566       case 1804 : /* fall through */
2567       case 1805 : /* fall through */
2568       case 1806 : /* fall through */
2569       case 1807 : /* fall through */
2570       case 1808 : /* fall through */
2571       case 1809 : /* fall through */
2572       case 1810 : /* fall through */
2573       case 1811 : /* fall through */
2574       case 1812 : /* fall through */
2575       case 1813 : /* fall through */
2576       case 1814 : /* fall through */
2577       case 1815 : /* fall through */
2578       case 1816 : /* fall through */
2579       case 1817 : /* fall through */
2580       case 1818 : /* fall through */
2581       case 1819 : /* fall through */
2582       case 1820 : /* fall through */
2583       case 1821 : /* fall through */
2584       case 1822 : /* fall through */
2585       case 1823 : /* fall through */
2586       case 1824 : /* fall through */
2587       case 1825 : /* fall through */
2588       case 1826 : /* fall through */
2589       case 1827 : /* fall through */
2590       case 1828 : /* fall through */
2591       case 1829 : /* fall through */
2592       case 1830 : /* fall through */
2593       case 1831 : /* fall through */
2594       case 1832 : /* fall through */
2595       case 1833 : /* fall through */
2596       case 1834 : /* fall through */
2597       case 1835 : /* fall through */
2598       case 1836 : /* fall through */
2599       case 1837 : /* fall through */
2600       case 1838 : /* fall through */
2601       case 1839 : /* fall through */
2602       case 1840 : /* fall through */
2603       case 1841 : /* fall through */
2604       case 1842 : /* fall through */
2605       case 1843 : /* fall through */
2606       case 1844 : /* fall through */
2607       case 1845 : /* fall through */
2608       case 1846 : /* fall through */
2609       case 1847 : /* fall through */
2610       case 1848 : /* fall through */
2611       case 1849 : /* fall through */
2612       case 1850 : /* fall through */
2613       case 1851 : /* fall through */
2614       case 1852 : /* fall through */
2615       case 1853 : /* fall through */
2616       case 1854 : /* fall through */
2617       case 1855 : /* fall through */
2618       case 1856 : /* fall through */
2619       case 1857 : /* fall through */
2620       case 1858 : /* fall through */
2621       case 1859 : /* fall through */
2622       case 1860 : /* fall through */
2623       case 1861 : /* fall through */
2624       case 1862 : /* fall through */
2625       case 1863 : /* fall through */
2626       case 1864 : /* fall through */
2627       case 1865 : /* fall through */
2628       case 1866 : /* fall through */
2629       case 1867 : /* fall through */
2630       case 1868 : /* fall through */
2631       case 1869 : /* fall through */
2632       case 1870 : /* fall through */
2633       case 1871 : /* fall through */
2634       case 1872 : /* fall through */
2635       case 1873 : /* fall through */
2636       case 1874 : /* fall through */
2637       case 1875 : /* fall through */
2638       case 1876 : /* fall through */
2639       case 1877 : /* fall through */
2640       case 1878 : /* fall through */
2641       case 1879 : /* fall through */
2642       case 1880 : /* fall through */
2643       case 1881 : /* fall through */
2644       case 1882 : /* fall through */
2645       case 1883 : /* fall through */
2646       case 1884 : /* fall through */
2647       case 1885 : /* fall through */
2648       case 1886 : /* fall through */
2649       case 1887 : /* fall through */
2650       case 1888 : /* fall through */
2651       case 1889 : /* fall through */
2652       case 1890 : /* fall through */
2653       case 1891 : /* fall through */
2654       case 1892 : /* fall through */
2655       case 1893 : /* fall through */
2656       case 1894 : /* fall through */
2657       case 1895 : /* fall through */
2658       case 1896 : /* fall through */
2659       case 1897 : /* fall through */
2660       case 1898 : /* fall through */
2661       case 1899 : /* fall through */
2662       case 1900 : /* fall through */
2663       case 1901 : /* fall through */
2664       case 1902 : /* fall through */
2665       case 1903 : /* fall through */
2666       case 1904 : /* fall through */
2667       case 1905 : /* fall through */
2668       case 1906 : /* fall through */
2669       case 1907 : /* fall through */
2670       case 1908 : /* fall through */
2671       case 1909 : /* fall through */
2672       case 1910 : /* fall through */
2673       case 1911 : /* fall through */
2674       case 1912 : /* fall through */
2675       case 1913 : /* fall through */
2676       case 1914 : /* fall through */
2677       case 1915 : /* fall through */
2678       case 1916 : /* fall through */
2679       case 1917 : /* fall through */
2680       case 1918 : /* fall through */
2681       case 1919 :
2682         entire_insn = entire_insn >> 16;
2683         itype = SH2E_INSN_MOVI_COMPACT; sh2e_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2684       case 1920 : /* fall through */
2685       case 1936 : /* fall through */
2686       case 1952 : /* fall through */
2687       case 1968 : /* fall through */
2688       case 1984 : /* fall through */
2689       case 2000 : /* fall through */
2690       case 2016 : /* fall through */
2691       case 2032 :
2692         entire_insn = entire_insn >> 16;
2693         itype = SH2E_INSN_FADD_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2694       case 1921 : /* fall through */
2695       case 1937 : /* fall through */
2696       case 1953 : /* fall through */
2697       case 1969 : /* fall through */
2698       case 1985 : /* fall through */
2699       case 2001 : /* fall through */
2700       case 2017 : /* fall through */
2701       case 2033 :
2702         entire_insn = entire_insn >> 16;
2703         itype = SH2E_INSN_FSUB_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2704       case 1922 : /* fall through */
2705       case 1938 : /* fall through */
2706       case 1954 : /* fall through */
2707       case 1970 : /* fall through */
2708       case 1986 : /* fall through */
2709       case 2002 : /* fall through */
2710       case 2018 : /* fall through */
2711       case 2034 :
2712         entire_insn = entire_insn >> 16;
2713         itype = SH2E_INSN_FMUL_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2714       case 1923 : /* fall through */
2715       case 1939 : /* fall through */
2716       case 1955 : /* fall through */
2717       case 1971 : /* fall through */
2718       case 1987 : /* fall through */
2719       case 2003 : /* fall through */
2720       case 2019 : /* fall through */
2721       case 2035 :
2722         entire_insn = entire_insn >> 16;
2723         itype = SH2E_INSN_FDIV_COMPACT; sh2e_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2724       case 1924 : /* fall through */
2725       case 1940 : /* fall through */
2726       case 1956 : /* fall through */
2727       case 1972 : /* fall through */
2728       case 1988 : /* fall through */
2729       case 2004 : /* fall through */
2730       case 2020 : /* fall through */
2731       case 2036 :
2732         entire_insn = entire_insn >> 16;
2733         itype = SH2E_INSN_FCMPEQ_COMPACT; sh2e_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2734       case 1925 : /* fall through */
2735       case 1941 : /* fall through */
2736       case 1957 : /* fall through */
2737       case 1973 : /* fall through */
2738       case 1989 : /* fall through */
2739       case 2005 : /* fall through */
2740       case 2021 : /* fall through */
2741       case 2037 :
2742         entire_insn = entire_insn >> 16;
2743         itype = SH2E_INSN_FCMPGT_COMPACT; sh2e_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2744       case 1926 : /* fall through */
2745       case 1942 : /* fall through */
2746       case 1958 : /* fall through */
2747       case 1974 : /* fall through */
2748       case 1990 : /* fall through */
2749       case 2006 : /* fall through */
2750       case 2022 : /* fall through */
2751       case 2038 :
2752         entire_insn = entire_insn >> 16;
2753         itype = SH2E_INSN_FMOV4_COMPACT; sh2e_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2754       case 1927 : /* fall through */
2755       case 1943 : /* fall through */
2756       case 1959 : /* fall through */
2757       case 1975 : /* fall through */
2758       case 1991 : /* fall through */
2759       case 2007 : /* fall through */
2760       case 2023 : /* fall through */
2761       case 2039 :
2762         entire_insn = entire_insn >> 16;
2763         itype = SH2E_INSN_FMOV7_COMPACT; sh2e_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2764       case 1928 : /* fall through */
2765       case 1944 : /* fall through */
2766       case 1960 : /* fall through */
2767       case 1976 : /* fall through */
2768       case 1992 : /* fall through */
2769       case 2008 : /* fall through */
2770       case 2024 : /* fall through */
2771       case 2040 :
2772         entire_insn = entire_insn >> 16;
2773         itype = SH2E_INSN_FMOV2_COMPACT; sh2e_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2774       case 1929 : /* fall through */
2775       case 1945 : /* fall through */
2776       case 1961 : /* fall through */
2777       case 1977 : /* fall through */
2778       case 1993 : /* fall through */
2779       case 2009 : /* fall through */
2780       case 2025 : /* fall through */
2781       case 2041 :
2782         entire_insn = entire_insn >> 16;
2783         itype = SH2E_INSN_FMOV3_COMPACT; sh2e_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2784       case 1930 : /* fall through */
2785       case 1946 : /* fall through */
2786       case 1962 : /* fall through */
2787       case 1978 : /* fall through */
2788       case 1994 : /* fall through */
2789       case 2010 : /* fall through */
2790       case 2026 : /* fall through */
2791       case 2042 :
2792         entire_insn = entire_insn >> 16;
2793         itype = SH2E_INSN_FMOV5_COMPACT; sh2e_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2794       case 1931 : /* fall through */
2795       case 1947 : /* fall through */
2796       case 1963 : /* fall through */
2797       case 1979 : /* fall through */
2798       case 1995 : /* fall through */
2799       case 2011 : /* fall through */
2800       case 2027 : /* fall through */
2801       case 2043 :
2802         entire_insn = entire_insn >> 16;
2803         itype = SH2E_INSN_FMOV6_COMPACT; sh2e_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2804       case 1932 : /* fall through */
2805       case 1948 : /* fall through */
2806       case 1964 : /* fall through */
2807       case 1980 : /* fall through */
2808       case 1996 : /* fall through */
2809       case 2012 : /* fall through */
2810       case 2028 : /* fall through */
2811       case 2044 :
2812         entire_insn = entire_insn >> 16;
2813         itype = SH2E_INSN_FMOV1_COMPACT; sh2e_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2814       case 1933 :
2815         {
2816           unsigned int val = (((insn >> 23) & (1 << 0)));
2817           switch (val)
2818           {
2819           case 0 :
2820             entire_insn = entire_insn >> 16;
2821             itype = SH2E_INSN_FSTS_COMPACT; sh2e_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2822           case 1 :
2823             entire_insn = entire_insn >> 16;
2824             itype = SH2E_INSN_FLDI0_COMPACT; sh2e_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2825           default : itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2826           }
2827         }
2828       case 1934 : /* fall through */
2829       case 1950 : /* fall through */
2830       case 1966 : /* fall through */
2831       case 1982 : /* fall through */
2832       case 1998 : /* fall through */
2833       case 2014 : /* fall through */
2834       case 2030 : /* fall through */
2835       case 2046 :
2836         entire_insn = entire_insn >> 16;
2837         itype = SH2E_INSN_FMAC_COMPACT; sh2e_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2838       case 1949 :
2839         {
2840           unsigned int val = (((insn >> 23) & (1 << 0)));
2841           switch (val)
2842           {
2843           case 0 :
2844             entire_insn = entire_insn >> 16;
2845             itype = SH2E_INSN_FLDS_COMPACT; sh2e_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2846           case 1 :
2847             entire_insn = entire_insn >> 16;
2848             itype = SH2E_INSN_FLDI1_COMPACT; sh2e_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2849           default : itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2850           }
2851         }
2852       case 1965 :
2853         entire_insn = entire_insn >> 16;
2854         if ((entire_insn & 0xf0ff) == 0xf02d)
2855           { itype = SH2E_INSN_FLOAT_COMPACT; sh2e_extract_sfmt_float_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
2856         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2857       case 1981 :
2858         entire_insn = entire_insn >> 16;
2859         if ((entire_insn & 0xf0ff) == 0xf03d)
2860           { itype = SH2E_INSN_FTRC_COMPACT; sh2e_extract_sfmt_ftrc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
2861         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2862       case 1997 :
2863         entire_insn = entire_insn >> 16;
2864         if ((entire_insn & 0xf0ff) == 0xf04d)
2865           { itype = SH2E_INSN_FNEG_COMPACT; sh2e_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
2866         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2867       case 2013 :
2868         entire_insn = entire_insn >> 16;
2869         if ((entire_insn & 0xf0ff) == 0xf05d)
2870           { itype = SH2E_INSN_FABS_COMPACT; sh2e_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
2871         itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2872       case 2045 :
2873         {
2874           unsigned int val = (((insn >> 27) & (1 << 0)));
2875           switch (val)
2876           {
2877           case 0 :
2878             entire_insn = entire_insn >> 16;
2879             if ((entire_insn & 0xffff) == 0xf3fd)
2880               { itype = SH2E_INSN_FSCHG_COMPACT; sh2e_extract_sfmt_fschg_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
2881             itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2882           case 1 :
2883             entire_insn = entire_insn >> 16;
2884             if ((entire_insn & 0xffff) == 0xfbfd)
2885               { itype = SH2E_INSN_FRCHG_COMPACT; sh2e_extract_sfmt_frchg_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
2886             itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2887           default : itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2888           }
2889         }
2890       default : itype = SH2E_INSN_X_INVALID; sh2e_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2891       }
2892     }
2893
2894   }
2895
2896   /* The instruction has been decoded and fields extracted.  */
2897   done:
2898
2899   this->addr = pc;
2900   // FIXME: To be redone (to handle ISA variants).
2901   this->idesc = & sh2e_idesc::idesc_table[itype];
2902   // ??? record semantic handler?
2903   assert(this->idesc->sem_index == itype);
2904 }
2905
2906 void
2907 sh2e_extract_sfmt_empty (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
2908     sh2e_insn_word insn = entire_insn;
2909 #define FLD(f) abuf->fields.fmt_empty.f
2910
2911
2912   /* Record the fields for the semantic handler.  */
2913   if (UNLIKELY(current_cpu->trace_extract_p))
2914     {
2915       current_cpu->trace_stream 
2916         << "0x" << hex << pc << dec << " (sfmt_empty)\t"
2917         << endl;
2918     }
2919
2920 #undef FLD
2921 }
2922
2923 void
2924 sh2e_extract_sfmt_add_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
2925     sh2e_insn_word insn = entire_insn;
2926 #define FLD(f) abuf->fields.sfmt_macl_compact.f
2927     UINT f_rn;
2928     UINT f_rm;
2929
2930     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
2931     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2932
2933   /* Record the fields for the semantic handler.  */
2934   FLD (f_rm) = f_rm;
2935   FLD (f_rn) = f_rn;
2936   if (UNLIKELY(current_cpu->trace_extract_p))
2937     {
2938       current_cpu->trace_stream 
2939         << "0x" << hex << pc << dec << " (sfmt_add_compact)\t"
2940         << " f_rm:0x" << hex << f_rm << dec
2941         << " f_rn:0x" << hex << f_rn << dec
2942         << endl;
2943     }
2944
2945   /* Record the fields for profiling.  */
2946   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
2947     {
2948       FLD (in_rm) = f_rm;
2949       FLD (in_rn) = f_rn;
2950       FLD (out_rn) = f_rn;
2951     }
2952 #undef FLD
2953 }
2954
2955 void
2956 sh2e_extract_sfmt_addi_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
2957     sh2e_insn_word insn = entire_insn;
2958 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2959     UINT f_rn;
2960     UINT f_imm8;
2961
2962     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
2963     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
2964
2965   /* Record the fields for the semantic handler.  */
2966   FLD (f_imm8) = f_imm8;
2967   FLD (f_rn) = f_rn;
2968   if (UNLIKELY(current_cpu->trace_extract_p))
2969     {
2970       current_cpu->trace_stream 
2971         << "0x" << hex << pc << dec << " (sfmt_addi_compact)\t"
2972         << " f_imm8:0x" << hex << f_imm8 << dec
2973         << " f_rn:0x" << hex << f_rn << dec
2974         << endl;
2975     }
2976
2977   /* Record the fields for profiling.  */
2978   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
2979     {
2980       FLD (in_rn) = f_rn;
2981       FLD (out_rn) = f_rn;
2982     }
2983 #undef FLD
2984 }
2985
2986 void
2987 sh2e_extract_sfmt_addc_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
2988     sh2e_insn_word insn = entire_insn;
2989 #define FLD(f) abuf->fields.sfmt_macl_compact.f
2990     UINT f_rn;
2991     UINT f_rm;
2992
2993     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
2994     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2995
2996   /* Record the fields for the semantic handler.  */
2997   FLD (f_rm) = f_rm;
2998   FLD (f_rn) = f_rn;
2999   if (UNLIKELY(current_cpu->trace_extract_p))
3000     {
3001       current_cpu->trace_stream 
3002         << "0x" << hex << pc << dec << " (sfmt_addc_compact)\t"
3003         << " f_rm:0x" << hex << f_rm << dec
3004         << " f_rn:0x" << hex << f_rn << dec
3005         << endl;
3006     }
3007
3008   /* Record the fields for profiling.  */
3009   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3010     {
3011       FLD (in_rm) = f_rm;
3012       FLD (in_rn) = f_rn;
3013       FLD (out_rn) = f_rn;
3014     }
3015 #undef FLD
3016 }
3017
3018 void
3019 sh2e_extract_sfmt_addv_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3020     sh2e_insn_word insn = entire_insn;
3021 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3022     UINT f_rn;
3023     UINT f_rm;
3024
3025     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3026     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3027
3028   /* Record the fields for the semantic handler.  */
3029   FLD (f_rm) = f_rm;
3030   FLD (f_rn) = f_rn;
3031   if (UNLIKELY(current_cpu->trace_extract_p))
3032     {
3033       current_cpu->trace_stream 
3034         << "0x" << hex << pc << dec << " (sfmt_addv_compact)\t"
3035         << " f_rm:0x" << hex << f_rm << dec
3036         << " f_rn:0x" << hex << f_rn << dec
3037         << endl;
3038     }
3039
3040   /* Record the fields for profiling.  */
3041   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3042     {
3043       FLD (in_rm) = f_rm;
3044       FLD (in_rn) = f_rn;
3045       FLD (out_rn) = f_rn;
3046     }
3047 #undef FLD
3048 }
3049
3050 void
3051 sh2e_extract_sfmt_and_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3052     sh2e_insn_word insn = entire_insn;
3053 #define FLD(f) abuf->fields.sfmt_and_compact.f
3054     UINT f_rn;
3055     UINT f_rm;
3056
3057     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3058     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3059
3060   /* Record the fields for the semantic handler.  */
3061   FLD (f_rm) = f_rm;
3062   FLD (f_rn) = f_rn;
3063   if (UNLIKELY(current_cpu->trace_extract_p))
3064     {
3065       current_cpu->trace_stream 
3066         << "0x" << hex << pc << dec << " (sfmt_and_compact)\t"
3067         << " f_rm:0x" << hex << f_rm << dec
3068         << " f_rn:0x" << hex << f_rn << dec
3069         << endl;
3070     }
3071
3072   /* Record the fields for profiling.  */
3073   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3074     {
3075       FLD (in_rm64) = f_rm;
3076       FLD (in_rn64) = f_rn;
3077       FLD (out_rn64) = f_rn;
3078     }
3079 #undef FLD
3080 }
3081
3082 void
3083 sh2e_extract_sfmt_andi_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3084     sh2e_insn_word insn = entire_insn;
3085 #define FLD(f) abuf->fields.sfmt_andi_compact.f
3086     UINT f_imm8;
3087
3088     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3089
3090   /* Record the fields for the semantic handler.  */
3091   FLD (f_imm8) = f_imm8;
3092   if (UNLIKELY(current_cpu->trace_extract_p))
3093     {
3094       current_cpu->trace_stream 
3095         << "0x" << hex << pc << dec << " (sfmt_andi_compact)\t"
3096         << " f_imm8:0x" << hex << f_imm8 << dec
3097         << endl;
3098     }
3099
3100   /* Record the fields for profiling.  */
3101   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3102     {
3103       FLD (in_r0) = 0;
3104       FLD (out_r0) = 0;
3105     }
3106 #undef FLD
3107 }
3108
3109 void
3110 sh2e_extract_sfmt_andb_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3111     sh2e_insn_word insn = entire_insn;
3112 #define FLD(f) abuf->fields.sfmt_andi_compact.f
3113     UINT f_imm8;
3114
3115     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3116
3117   /* Record the fields for the semantic handler.  */
3118   FLD (f_imm8) = f_imm8;
3119   if (UNLIKELY(current_cpu->trace_extract_p))
3120     {
3121       current_cpu->trace_stream 
3122         << "0x" << hex << pc << dec << " (sfmt_andb_compact)\t"
3123         << " f_imm8:0x" << hex << f_imm8 << dec
3124         << endl;
3125     }
3126
3127   /* Record the fields for profiling.  */
3128   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3129     {
3130       FLD (in_r0) = 0;
3131     }
3132 #undef FLD
3133 }
3134
3135 void
3136 sh2e_extract_sfmt_bf_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3137     sh2e_insn_word insn = entire_insn;
3138 #define FLD(f) abuf->fields.sfmt_bf_compact.f
3139     SI f_disp8;
3140
3141     f_disp8 = ((((EXTRACT_MSB0_SINT (insn, 16, 8, 8)) << (1))) + (((pc) + (4))));
3142
3143   /* Record the fields for the semantic handler.  */
3144   FLD (i_disp8) = f_disp8;
3145   if (UNLIKELY(current_cpu->trace_extract_p))
3146     {
3147       current_cpu->trace_stream 
3148         << "0x" << hex << pc << dec << " (sfmt_bf_compact)\t"
3149         << endl;
3150     }
3151
3152   /* Record the fields for profiling.  */
3153   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3154     {
3155     }
3156 #undef FLD
3157 }
3158
3159 void
3160 sh2e_extract_sfmt_bfs_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3161     sh2e_insn_word insn = entire_insn;
3162 #define FLD(f) abuf->fields.sfmt_bf_compact.f
3163     SI f_disp8;
3164
3165     f_disp8 = ((((EXTRACT_MSB0_SINT (insn, 16, 8, 8)) << (1))) + (((pc) + (4))));
3166
3167   /* Record the fields for the semantic handler.  */
3168   FLD (i_disp8) = f_disp8;
3169   if (UNLIKELY(current_cpu->trace_extract_p))
3170     {
3171       current_cpu->trace_stream 
3172         << "0x" << hex << pc << dec << " (sfmt_bfs_compact)\t"
3173         << endl;
3174     }
3175
3176   /* Record the fields for profiling.  */
3177   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3178     {
3179     }
3180 #undef FLD
3181 }
3182
3183 void
3184 sh2e_extract_sfmt_bra_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3185     sh2e_insn_word insn = entire_insn;
3186 #define FLD(f) abuf->fields.sfmt_bra_compact.f
3187     SI f_disp12;
3188
3189     f_disp12 = ((((EXTRACT_MSB0_SINT (insn, 16, 4, 12)) << (1))) + (((pc) + (4))));
3190
3191   /* Record the fields for the semantic handler.  */
3192   FLD (i_disp12) = f_disp12;
3193   if (UNLIKELY(current_cpu->trace_extract_p))
3194     {
3195       current_cpu->trace_stream 
3196         << "0x" << hex << pc << dec << " (sfmt_bra_compact)\t"
3197         << endl;
3198     }
3199
3200   /* Record the fields for profiling.  */
3201   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3202     {
3203     }
3204 #undef FLD
3205 }
3206
3207 void
3208 sh2e_extract_sfmt_braf_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3209     sh2e_insn_word insn = entire_insn;
3210 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3211     UINT f_rn;
3212
3213     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3214
3215   /* Record the fields for the semantic handler.  */
3216   FLD (f_rn) = f_rn;
3217   if (UNLIKELY(current_cpu->trace_extract_p))
3218     {
3219       current_cpu->trace_stream 
3220         << "0x" << hex << pc << dec << " (sfmt_braf_compact)\t"
3221         << " f_rn:0x" << hex << f_rn << dec
3222         << endl;
3223     }
3224
3225   /* Record the fields for profiling.  */
3226   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3227     {
3228       FLD (in_rn) = f_rn;
3229     }
3230 #undef FLD
3231 }
3232
3233 void
3234 sh2e_extract_sfmt_bsr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3235     sh2e_insn_word insn = entire_insn;
3236 #define FLD(f) abuf->fields.sfmt_bra_compact.f
3237     SI f_disp12;
3238
3239     f_disp12 = ((((EXTRACT_MSB0_SINT (insn, 16, 4, 12)) << (1))) + (((pc) + (4))));
3240
3241   /* Record the fields for the semantic handler.  */
3242   FLD (i_disp12) = f_disp12;
3243   if (UNLIKELY(current_cpu->trace_extract_p))
3244     {
3245       current_cpu->trace_stream 
3246         << "0x" << hex << pc << dec << " (sfmt_bsr_compact)\t"
3247         << endl;
3248     }
3249
3250   /* Record the fields for profiling.  */
3251   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3252     {
3253     }
3254 #undef FLD
3255 }
3256
3257 void
3258 sh2e_extract_sfmt_bsrf_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3259     sh2e_insn_word insn = entire_insn;
3260 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3261     UINT f_rn;
3262
3263     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3264
3265   /* Record the fields for the semantic handler.  */
3266   FLD (f_rn) = f_rn;
3267   if (UNLIKELY(current_cpu->trace_extract_p))
3268     {
3269       current_cpu->trace_stream 
3270         << "0x" << hex << pc << dec << " (sfmt_bsrf_compact)\t"
3271         << " f_rn:0x" << hex << f_rn << dec
3272         << endl;
3273     }
3274
3275   /* Record the fields for profiling.  */
3276   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3277     {
3278       FLD (in_rn) = f_rn;
3279     }
3280 #undef FLD
3281 }
3282
3283 void
3284 sh2e_extract_sfmt_clrmac_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3285     sh2e_insn_word insn = entire_insn;
3286 #define FLD(f) abuf->fields.fmt_empty.f
3287
3288
3289   /* Record the fields for the semantic handler.  */
3290   if (UNLIKELY(current_cpu->trace_extract_p))
3291     {
3292       current_cpu->trace_stream 
3293         << "0x" << hex << pc << dec << " (sfmt_clrmac_compact)\t"
3294         << endl;
3295     }
3296
3297 #undef FLD
3298 }
3299
3300 void
3301 sh2e_extract_sfmt_clrt_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3302     sh2e_insn_word insn = entire_insn;
3303 #define FLD(f) abuf->fields.fmt_empty.f
3304
3305
3306   /* Record the fields for the semantic handler.  */
3307   if (UNLIKELY(current_cpu->trace_extract_p))
3308     {
3309       current_cpu->trace_stream 
3310         << "0x" << hex << pc << dec << " (sfmt_clrt_compact)\t"
3311         << endl;
3312     }
3313
3314 #undef FLD
3315 }
3316
3317 void
3318 sh2e_extract_sfmt_cmpeq_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3319     sh2e_insn_word insn = entire_insn;
3320 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
3321     UINT f_rn;
3322     UINT f_rm;
3323
3324     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3325     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3326
3327   /* Record the fields for the semantic handler.  */
3328   FLD (f_rm) = f_rm;
3329   FLD (f_rn) = f_rn;
3330   if (UNLIKELY(current_cpu->trace_extract_p))
3331     {
3332       current_cpu->trace_stream 
3333         << "0x" << hex << pc << dec << " (sfmt_cmpeq_compact)\t"
3334         << " f_rm:0x" << hex << f_rm << dec
3335         << " f_rn:0x" << hex << f_rn << dec
3336         << endl;
3337     }
3338
3339   /* Record the fields for profiling.  */
3340   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3341     {
3342       FLD (in_rm) = f_rm;
3343       FLD (in_rn) = f_rn;
3344     }
3345 #undef FLD
3346 }
3347
3348 void
3349 sh2e_extract_sfmt_cmpeqi_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3350     sh2e_insn_word insn = entire_insn;
3351 #define FLD(f) abuf->fields.sfmt_andi_compact.f
3352     UINT f_imm8;
3353
3354     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3355
3356   /* Record the fields for the semantic handler.  */
3357   FLD (f_imm8) = f_imm8;
3358   if (UNLIKELY(current_cpu->trace_extract_p))
3359     {
3360       current_cpu->trace_stream 
3361         << "0x" << hex << pc << dec << " (sfmt_cmpeqi_compact)\t"
3362         << " f_imm8:0x" << hex << f_imm8 << dec
3363         << endl;
3364     }
3365
3366   /* Record the fields for profiling.  */
3367   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3368     {
3369       FLD (in_r0) = 0;
3370     }
3371 #undef FLD
3372 }
3373
3374 void
3375 sh2e_extract_sfmt_cmppl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3376     sh2e_insn_word insn = entire_insn;
3377 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3378     UINT f_rn;
3379
3380     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3381
3382   /* Record the fields for the semantic handler.  */
3383   FLD (f_rn) = f_rn;
3384   if (UNLIKELY(current_cpu->trace_extract_p))
3385     {
3386       current_cpu->trace_stream 
3387         << "0x" << hex << pc << dec << " (sfmt_cmppl_compact)\t"
3388         << " f_rn:0x" << hex << f_rn << dec
3389         << endl;
3390     }
3391
3392   /* Record the fields for profiling.  */
3393   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3394     {
3395       FLD (in_rn) = f_rn;
3396     }
3397 #undef FLD
3398 }
3399
3400 void
3401 sh2e_extract_sfmt_div0s_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3402     sh2e_insn_word insn = entire_insn;
3403 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
3404     UINT f_rn;
3405     UINT f_rm;
3406
3407     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3408     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3409
3410   /* Record the fields for the semantic handler.  */
3411   FLD (f_rm) = f_rm;
3412   FLD (f_rn) = f_rn;
3413   if (UNLIKELY(current_cpu->trace_extract_p))
3414     {
3415       current_cpu->trace_stream 
3416         << "0x" << hex << pc << dec << " (sfmt_div0s_compact)\t"
3417         << " f_rm:0x" << hex << f_rm << dec
3418         << " f_rn:0x" << hex << f_rn << dec
3419         << endl;
3420     }
3421
3422   /* Record the fields for profiling.  */
3423   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3424     {
3425       FLD (in_rm) = f_rm;
3426       FLD (in_rn) = f_rn;
3427     }
3428 #undef FLD
3429 }
3430
3431 void
3432 sh2e_extract_sfmt_div0u_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3433     sh2e_insn_word insn = entire_insn;
3434 #define FLD(f) abuf->fields.fmt_empty.f
3435
3436
3437   /* Record the fields for the semantic handler.  */
3438   if (UNLIKELY(current_cpu->trace_extract_p))
3439     {
3440       current_cpu->trace_stream 
3441         << "0x" << hex << pc << dec << " (sfmt_div0u_compact)\t"
3442         << endl;
3443     }
3444
3445 #undef FLD
3446 }
3447
3448 void
3449 sh2e_extract_sfmt_div1_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3450     sh2e_insn_word insn = entire_insn;
3451 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3452     UINT f_rn;
3453     UINT f_rm;
3454
3455     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3456     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3457
3458   /* Record the fields for the semantic handler.  */
3459   FLD (f_rm) = f_rm;
3460   FLD (f_rn) = f_rn;
3461   if (UNLIKELY(current_cpu->trace_extract_p))
3462     {
3463       current_cpu->trace_stream 
3464         << "0x" << hex << pc << dec << " (sfmt_div1_compact)\t"
3465         << " f_rm:0x" << hex << f_rm << dec
3466         << " f_rn:0x" << hex << f_rn << dec
3467         << endl;
3468     }
3469
3470   /* Record the fields for profiling.  */
3471   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3472     {
3473       FLD (in_rm) = f_rm;
3474       FLD (in_rn) = f_rn;
3475       FLD (out_rn) = f_rn;
3476     }
3477 #undef FLD
3478 }
3479
3480 void
3481 sh2e_extract_sfmt_dmulsl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3482     sh2e_insn_word insn = entire_insn;
3483 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
3484     UINT f_rn;
3485     UINT f_rm;
3486
3487     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3488     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3489
3490   /* Record the fields for the semantic handler.  */
3491   FLD (f_rm) = f_rm;
3492   FLD (f_rn) = f_rn;
3493   if (UNLIKELY(current_cpu->trace_extract_p))
3494     {
3495       current_cpu->trace_stream 
3496         << "0x" << hex << pc << dec << " (sfmt_dmulsl_compact)\t"
3497         << " f_rm:0x" << hex << f_rm << dec
3498         << " f_rn:0x" << hex << f_rn << dec
3499         << endl;
3500     }
3501
3502   /* Record the fields for profiling.  */
3503   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3504     {
3505       FLD (in_rm) = f_rm;
3506       FLD (in_rn) = f_rn;
3507     }
3508 #undef FLD
3509 }
3510
3511 void
3512 sh2e_extract_sfmt_dt_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3513     sh2e_insn_word insn = entire_insn;
3514 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3515     UINT f_rn;
3516
3517     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3518
3519   /* Record the fields for the semantic handler.  */
3520   FLD (f_rn) = f_rn;
3521   if (UNLIKELY(current_cpu->trace_extract_p))
3522     {
3523       current_cpu->trace_stream 
3524         << "0x" << hex << pc << dec << " (sfmt_dt_compact)\t"
3525         << " f_rn:0x" << hex << f_rn << dec
3526         << endl;
3527     }
3528
3529   /* Record the fields for profiling.  */
3530   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3531     {
3532       FLD (in_rn) = f_rn;
3533       FLD (out_rn) = f_rn;
3534     }
3535 #undef FLD
3536 }
3537
3538 void
3539 sh2e_extract_sfmt_extsb_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3540     sh2e_insn_word insn = entire_insn;
3541 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
3542     UINT f_rn;
3543     UINT f_rm;
3544
3545     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3546     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3547
3548   /* Record the fields for the semantic handler.  */
3549   FLD (f_rm) = f_rm;
3550   FLD (f_rn) = f_rn;
3551   if (UNLIKELY(current_cpu->trace_extract_p))
3552     {
3553       current_cpu->trace_stream 
3554         << "0x" << hex << pc << dec << " (sfmt_extsb_compact)\t"
3555         << " f_rm:0x" << hex << f_rm << dec
3556         << " f_rn:0x" << hex << f_rn << dec
3557         << endl;
3558     }
3559
3560   /* Record the fields for profiling.  */
3561   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3562     {
3563       FLD (in_rm) = f_rm;
3564       FLD (out_rn) = f_rn;
3565     }
3566 #undef FLD
3567 }
3568
3569 void
3570 sh2e_extract_sfmt_fabs_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3571     sh2e_insn_word insn = entire_insn;
3572 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3573     UINT f_rn;
3574
3575     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3576
3577   /* Record the fields for the semantic handler.  */
3578   FLD (f_rn) = f_rn;
3579   if (UNLIKELY(current_cpu->trace_extract_p))
3580     {
3581       current_cpu->trace_stream 
3582         << "0x" << hex << pc << dec << " (sfmt_fabs_compact)\t"
3583         << " f_rn:0x" << hex << f_rn << dec
3584         << endl;
3585     }
3586
3587   /* Record the fields for profiling.  */
3588   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3589     {
3590       FLD (in_fsdn) = f_rn;
3591       FLD (out_fsdn) = f_rn;
3592     }
3593 #undef FLD
3594 }
3595
3596 void
3597 sh2e_extract_sfmt_fadd_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3598     sh2e_insn_word insn = entire_insn;
3599 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3600     UINT f_rn;
3601     UINT f_rm;
3602
3603     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3604     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3605
3606   /* Record the fields for the semantic handler.  */
3607   FLD (f_rm) = f_rm;
3608   FLD (f_rn) = f_rn;
3609   if (UNLIKELY(current_cpu->trace_extract_p))
3610     {
3611       current_cpu->trace_stream 
3612         << "0x" << hex << pc << dec << " (sfmt_fadd_compact)\t"
3613         << " f_rm:0x" << hex << f_rm << dec
3614         << " f_rn:0x" << hex << f_rn << dec
3615         << endl;
3616     }
3617
3618   /* Record the fields for profiling.  */
3619   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3620     {
3621       FLD (in_fsdm) = f_rm;
3622       FLD (in_fsdn) = f_rn;
3623       FLD (out_fsdn) = f_rn;
3624     }
3625 #undef FLD
3626 }
3627
3628 void
3629 sh2e_extract_sfmt_fcmpeq_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3630     sh2e_insn_word insn = entire_insn;
3631 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3632     UINT f_rn;
3633     UINT f_rm;
3634
3635     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3636     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3637
3638   /* Record the fields for the semantic handler.  */
3639   FLD (f_rm) = f_rm;
3640   FLD (f_rn) = f_rn;
3641   if (UNLIKELY(current_cpu->trace_extract_p))
3642     {
3643       current_cpu->trace_stream 
3644         << "0x" << hex << pc << dec << " (sfmt_fcmpeq_compact)\t"
3645         << " f_rm:0x" << hex << f_rm << dec
3646         << " f_rn:0x" << hex << f_rn << dec
3647         << endl;
3648     }
3649
3650   /* Record the fields for profiling.  */
3651   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3652     {
3653       FLD (in_fsdm) = f_rm;
3654       FLD (in_fsdn) = f_rn;
3655     }
3656 #undef FLD
3657 }
3658
3659 void
3660 sh2e_extract_sfmt_flds_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3661     sh2e_insn_word insn = entire_insn;
3662 #define FLD(f) abuf->fields.sfmt_flds_compact.f
3663     UINT f_rn;
3664
3665     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3666
3667   /* Record the fields for the semantic handler.  */
3668   FLD (f_rn) = f_rn;
3669   if (UNLIKELY(current_cpu->trace_extract_p))
3670     {
3671       current_cpu->trace_stream 
3672         << "0x" << hex << pc << dec << " (sfmt_flds_compact)\t"
3673         << " f_rn:0x" << hex << f_rn << dec
3674         << endl;
3675     }
3676
3677   /* Record the fields for profiling.  */
3678   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3679     {
3680       FLD (in_frn) = f_rn;
3681       FLD (out_fpul) = 32;
3682     }
3683 #undef FLD
3684 }
3685
3686 void
3687 sh2e_extract_sfmt_fldi0_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3688     sh2e_insn_word insn = entire_insn;
3689 #define FLD(f) abuf->fields.sfmt_fsts_compact.f
3690     UINT f_rn;
3691
3692     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3693
3694   /* Record the fields for the semantic handler.  */
3695   FLD (f_rn) = f_rn;
3696   if (UNLIKELY(current_cpu->trace_extract_p))
3697     {
3698       current_cpu->trace_stream 
3699         << "0x" << hex << pc << dec << " (sfmt_fldi0_compact)\t"
3700         << " f_rn:0x" << hex << f_rn << dec
3701         << endl;
3702     }
3703
3704   /* Record the fields for profiling.  */
3705   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3706     {
3707       FLD (out_frn) = f_rn;
3708     }
3709 #undef FLD
3710 }
3711
3712 void
3713 sh2e_extract_sfmt_float_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3714     sh2e_insn_word insn = entire_insn;
3715 #define FLD(f) abuf->fields.sfmt_float_compact.f
3716     UINT f_rn;
3717
3718     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3719
3720   /* Record the fields for the semantic handler.  */
3721   FLD (f_rn) = f_rn;
3722   if (UNLIKELY(current_cpu->trace_extract_p))
3723     {
3724       current_cpu->trace_stream 
3725         << "0x" << hex << pc << dec << " (sfmt_float_compact)\t"
3726         << " f_rn:0x" << hex << f_rn << dec
3727         << endl;
3728     }
3729
3730   /* Record the fields for profiling.  */
3731   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3732     {
3733       FLD (in_fpul) = 32;
3734       FLD (out_fsdn) = f_rn;
3735     }
3736 #undef FLD
3737 }
3738
3739 void
3740 sh2e_extract_sfmt_fmac_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3741     sh2e_insn_word insn = entire_insn;
3742 #define FLD(f) abuf->fields.sfmt_fmac_compact.f
3743     UINT f_rn;
3744     UINT f_rm;
3745
3746     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3747     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3748
3749   /* Record the fields for the semantic handler.  */
3750   FLD (f_rm) = f_rm;
3751   FLD (f_rn) = f_rn;
3752   if (UNLIKELY(current_cpu->trace_extract_p))
3753     {
3754       current_cpu->trace_stream 
3755         << "0x" << hex << pc << dec << " (sfmt_fmac_compact)\t"
3756         << " f_rm:0x" << hex << f_rm << dec
3757         << " f_rn:0x" << hex << f_rn << dec
3758         << endl;
3759     }
3760
3761   /* Record the fields for profiling.  */
3762   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3763     {
3764       FLD (in_fr0) = 0;
3765       FLD (in_frm) = f_rm;
3766       FLD (in_frn) = f_rn;
3767       FLD (out_frn) = f_rn;
3768     }
3769 #undef FLD
3770 }
3771
3772 void
3773 sh2e_extract_sfmt_fmov1_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3774     sh2e_insn_word insn = entire_insn;
3775 #define FLD(f) abuf->fields.sfmt_fmov1_compact.f
3776     UINT f_rn;
3777     UINT f_rm;
3778
3779     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3780     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3781
3782   /* Record the fields for the semantic handler.  */
3783   FLD (f_rm) = f_rm;
3784   FLD (f_rn) = f_rn;
3785   if (UNLIKELY(current_cpu->trace_extract_p))
3786     {
3787       current_cpu->trace_stream 
3788         << "0x" << hex << pc << dec << " (sfmt_fmov1_compact)\t"
3789         << " f_rm:0x" << hex << f_rm << dec
3790         << " f_rn:0x" << hex << f_rn << dec
3791         << endl;
3792     }
3793
3794   /* Record the fields for profiling.  */
3795   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3796     {
3797       FLD (in_fmovm) = f_rm;
3798       FLD (out_fmovn) = f_rn;
3799     }
3800 #undef FLD
3801 }
3802
3803 void
3804 sh2e_extract_sfmt_fmov2_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3805     sh2e_insn_word insn = entire_insn;
3806 #define FLD(f) abuf->fields.sfmt_fmov4_compact.f
3807     UINT f_rn;
3808     UINT f_rm;
3809
3810     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3811     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3812
3813   /* Record the fields for the semantic handler.  */
3814   FLD (f_rm) = f_rm;
3815   FLD (f_rn) = f_rn;
3816   if (UNLIKELY(current_cpu->trace_extract_p))
3817     {
3818       current_cpu->trace_stream 
3819         << "0x" << hex << pc << dec << " (sfmt_fmov2_compact)\t"
3820         << " f_rm:0x" << hex << f_rm << dec
3821         << " f_rn:0x" << hex << f_rn << dec
3822         << endl;
3823     }
3824
3825   /* Record the fields for profiling.  */
3826   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3827     {
3828       FLD (in_rm) = f_rm;
3829       FLD (out_fmovn) = f_rn;
3830     }
3831 #undef FLD
3832 }
3833
3834 void
3835 sh2e_extract_sfmt_fmov3_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3836     sh2e_insn_word insn = entire_insn;
3837 #define FLD(f) abuf->fields.sfmt_fmov3_compact.f
3838     UINT f_rn;
3839     UINT f_rm;
3840
3841     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3842     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3843
3844   /* Record the fields for the semantic handler.  */
3845   FLD (f_rm) = f_rm;
3846   FLD (f_rn) = f_rn;
3847   if (UNLIKELY(current_cpu->trace_extract_p))
3848     {
3849       current_cpu->trace_stream 
3850         << "0x" << hex << pc << dec << " (sfmt_fmov3_compact)\t"
3851         << " f_rm:0x" << hex << f_rm << dec
3852         << " f_rn:0x" << hex << f_rn << dec
3853         << endl;
3854     }
3855
3856   /* Record the fields for profiling.  */
3857   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3858     {
3859       FLD (in_rm) = f_rm;
3860       FLD (out_fmovn) = f_rn;
3861       FLD (out_rm) = f_rm;
3862     }
3863 #undef FLD
3864 }
3865
3866 void
3867 sh2e_extract_sfmt_fmov4_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3868     sh2e_insn_word insn = entire_insn;
3869 #define FLD(f) abuf->fields.sfmt_fmov4_compact.f
3870     UINT f_rn;
3871     UINT f_rm;
3872
3873     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3874     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3875
3876   /* Record the fields for the semantic handler.  */
3877   FLD (f_rm) = f_rm;
3878   FLD (f_rn) = f_rn;
3879   if (UNLIKELY(current_cpu->trace_extract_p))
3880     {
3881       current_cpu->trace_stream 
3882         << "0x" << hex << pc << dec << " (sfmt_fmov4_compact)\t"
3883         << " f_rm:0x" << hex << f_rm << dec
3884         << " f_rn:0x" << hex << f_rn << dec
3885         << endl;
3886     }
3887
3888   /* Record the fields for profiling.  */
3889   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3890     {
3891       FLD (in_r0) = 0;
3892       FLD (in_rm) = f_rm;
3893       FLD (out_fmovn) = f_rn;
3894     }
3895 #undef FLD
3896 }
3897
3898 void
3899 sh2e_extract_sfmt_fmov5_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3900     sh2e_insn_word insn = entire_insn;
3901 #define FLD(f) abuf->fields.sfmt_fmov7_compact.f
3902     UINT f_rn;
3903     UINT f_rm;
3904
3905     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3906     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3907
3908   /* Record the fields for the semantic handler.  */
3909   FLD (f_rm) = f_rm;
3910   FLD (f_rn) = f_rn;
3911   if (UNLIKELY(current_cpu->trace_extract_p))
3912     {
3913       current_cpu->trace_stream 
3914         << "0x" << hex << pc << dec << " (sfmt_fmov5_compact)\t"
3915         << " f_rm:0x" << hex << f_rm << dec
3916         << " f_rn:0x" << hex << f_rn << dec
3917         << endl;
3918     }
3919
3920   /* Record the fields for profiling.  */
3921   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3922     {
3923       FLD (in_fmovm) = f_rm;
3924       FLD (in_rn) = f_rn;
3925     }
3926 #undef FLD
3927 }
3928
3929 void
3930 sh2e_extract_sfmt_fmov6_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3931     sh2e_insn_word insn = entire_insn;
3932 #define FLD(f) abuf->fields.sfmt_fmov6_compact.f
3933     UINT f_rn;
3934     UINT f_rm;
3935
3936     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3937     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3938
3939   /* Record the fields for the semantic handler.  */
3940   FLD (f_rm) = f_rm;
3941   FLD (f_rn) = f_rn;
3942   if (UNLIKELY(current_cpu->trace_extract_p))
3943     {
3944       current_cpu->trace_stream 
3945         << "0x" << hex << pc << dec << " (sfmt_fmov6_compact)\t"
3946         << " f_rm:0x" << hex << f_rm << dec
3947         << " f_rn:0x" << hex << f_rn << dec
3948         << endl;
3949     }
3950
3951   /* Record the fields for profiling.  */
3952   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3953     {
3954       FLD (in_fmovm) = f_rm;
3955       FLD (in_rn) = f_rn;
3956       FLD (out_rn) = f_rn;
3957     }
3958 #undef FLD
3959 }
3960
3961 void
3962 sh2e_extract_sfmt_fmov7_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3963     sh2e_insn_word insn = entire_insn;
3964 #define FLD(f) abuf->fields.sfmt_fmov7_compact.f
3965     UINT f_rn;
3966     UINT f_rm;
3967
3968     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3969     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3970
3971   /* Record the fields for the semantic handler.  */
3972   FLD (f_rm) = f_rm;
3973   FLD (f_rn) = f_rn;
3974   if (UNLIKELY(current_cpu->trace_extract_p))
3975     {
3976       current_cpu->trace_stream 
3977         << "0x" << hex << pc << dec << " (sfmt_fmov7_compact)\t"
3978         << " f_rm:0x" << hex << f_rm << dec
3979         << " f_rn:0x" << hex << f_rn << dec
3980         << endl;
3981     }
3982
3983   /* Record the fields for profiling.  */
3984   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3985     {
3986       FLD (in_fmovm) = f_rm;
3987       FLD (in_r0) = 0;
3988       FLD (in_rn) = f_rn;
3989     }
3990 #undef FLD
3991 }
3992
3993 void
3994 sh2e_extract_sfmt_frchg_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
3995     sh2e_insn_word insn = entire_insn;
3996 #define FLD(f) abuf->fields.fmt_empty.f
3997
3998
3999   /* Record the fields for the semantic handler.  */
4000   if (UNLIKELY(current_cpu->trace_extract_p))
4001     {
4002       current_cpu->trace_stream 
4003         << "0x" << hex << pc << dec << " (sfmt_frchg_compact)\t"
4004         << endl;
4005     }
4006
4007 #undef FLD
4008 }
4009
4010 void
4011 sh2e_extract_sfmt_fschg_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4012     sh2e_insn_word insn = entire_insn;
4013 #define FLD(f) abuf->fields.fmt_empty.f
4014
4015
4016   /* Record the fields for the semantic handler.  */
4017   if (UNLIKELY(current_cpu->trace_extract_p))
4018     {
4019       current_cpu->trace_stream 
4020         << "0x" << hex << pc << dec << " (sfmt_fschg_compact)\t"
4021         << endl;
4022     }
4023
4024 #undef FLD
4025 }
4026
4027 void
4028 sh2e_extract_sfmt_fsts_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4029     sh2e_insn_word insn = entire_insn;
4030 #define FLD(f) abuf->fields.sfmt_fsts_compact.f
4031     UINT f_rn;
4032
4033     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4034
4035   /* Record the fields for the semantic handler.  */
4036   FLD (f_rn) = f_rn;
4037   if (UNLIKELY(current_cpu->trace_extract_p))
4038     {
4039       current_cpu->trace_stream 
4040         << "0x" << hex << pc << dec << " (sfmt_fsts_compact)\t"
4041         << " f_rn:0x" << hex << f_rn << dec
4042         << endl;
4043     }
4044
4045   /* Record the fields for profiling.  */
4046   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4047     {
4048       FLD (in_fpul) = 32;
4049       FLD (out_frn) = f_rn;
4050     }
4051 #undef FLD
4052 }
4053
4054 void
4055 sh2e_extract_sfmt_ftrc_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4056     sh2e_insn_word insn = entire_insn;
4057 #define FLD(f) abuf->fields.sfmt_ftrc_compact.f
4058     UINT f_rn;
4059
4060     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4061
4062   /* Record the fields for the semantic handler.  */
4063   FLD (f_rn) = f_rn;
4064   if (UNLIKELY(current_cpu->trace_extract_p))
4065     {
4066       current_cpu->trace_stream 
4067         << "0x" << hex << pc << dec << " (sfmt_ftrc_compact)\t"
4068         << " f_rn:0x" << hex << f_rn << dec
4069         << endl;
4070     }
4071
4072   /* Record the fields for profiling.  */
4073   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4074     {
4075       FLD (in_fsdn) = f_rn;
4076       FLD (out_fpul) = 32;
4077     }
4078 #undef FLD
4079 }
4080
4081 void
4082 sh2e_extract_sfmt_ldc_gbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4083     sh2e_insn_word insn = entire_insn;
4084 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4085     UINT f_rn;
4086
4087     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4088
4089   /* Record the fields for the semantic handler.  */
4090   FLD (f_rn) = f_rn;
4091   if (UNLIKELY(current_cpu->trace_extract_p))
4092     {
4093       current_cpu->trace_stream 
4094         << "0x" << hex << pc << dec << " (sfmt_ldc_gbr_compact)\t"
4095         << " f_rn:0x" << hex << f_rn << dec
4096         << endl;
4097     }
4098
4099   /* Record the fields for profiling.  */
4100   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4101     {
4102       FLD (in_rn) = f_rn;
4103     }
4104 #undef FLD
4105 }
4106
4107 void
4108 sh2e_extract_sfmt_ldc_vbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4109     sh2e_insn_word insn = entire_insn;
4110 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4111     UINT f_rn;
4112
4113     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4114
4115   /* Record the fields for the semantic handler.  */
4116   FLD (f_rn) = f_rn;
4117   if (UNLIKELY(current_cpu->trace_extract_p))
4118     {
4119       current_cpu->trace_stream 
4120         << "0x" << hex << pc << dec << " (sfmt_ldc_vbr_compact)\t"
4121         << " f_rn:0x" << hex << f_rn << dec
4122         << endl;
4123     }
4124
4125   /* Record the fields for profiling.  */
4126   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4127     {
4128       FLD (in_rn) = f_rn;
4129     }
4130 #undef FLD
4131 }
4132
4133 void
4134 sh2e_extract_sfmt_ldc_sr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4135     sh2e_insn_word insn = entire_insn;
4136 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4137     UINT f_rn;
4138
4139     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4140
4141   /* Record the fields for the semantic handler.  */
4142   FLD (f_rn) = f_rn;
4143   if (UNLIKELY(current_cpu->trace_extract_p))
4144     {
4145       current_cpu->trace_stream 
4146         << "0x" << hex << pc << dec << " (sfmt_ldc_sr_compact)\t"
4147         << " f_rn:0x" << hex << f_rn << dec
4148         << endl;
4149     }
4150
4151   /* Record the fields for profiling.  */
4152   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4153     {
4154       FLD (in_rn) = f_rn;
4155     }
4156 #undef FLD
4157 }
4158
4159 void
4160 sh2e_extract_sfmt_ldcl_gbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4161     sh2e_insn_word insn = entire_insn;
4162 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4163     UINT f_rn;
4164
4165     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4166
4167   /* Record the fields for the semantic handler.  */
4168   FLD (f_rn) = f_rn;
4169   if (UNLIKELY(current_cpu->trace_extract_p))
4170     {
4171       current_cpu->trace_stream 
4172         << "0x" << hex << pc << dec << " (sfmt_ldcl_gbr_compact)\t"
4173         << " f_rn:0x" << hex << f_rn << dec
4174         << endl;
4175     }
4176
4177   /* Record the fields for profiling.  */
4178   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4179     {
4180       FLD (in_rn) = f_rn;
4181       FLD (out_rn) = f_rn;
4182     }
4183 #undef FLD
4184 }
4185
4186 void
4187 sh2e_extract_sfmt_ldcl_vbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4188     sh2e_insn_word insn = entire_insn;
4189 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4190     UINT f_rn;
4191
4192     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4193
4194   /* Record the fields for the semantic handler.  */
4195   FLD (f_rn) = f_rn;
4196   if (UNLIKELY(current_cpu->trace_extract_p))
4197     {
4198       current_cpu->trace_stream 
4199         << "0x" << hex << pc << dec << " (sfmt_ldcl_vbr_compact)\t"
4200         << " f_rn:0x" << hex << f_rn << dec
4201         << endl;
4202     }
4203
4204   /* Record the fields for profiling.  */
4205   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4206     {
4207       FLD (in_rn) = f_rn;
4208       FLD (out_rn) = f_rn;
4209     }
4210 #undef FLD
4211 }
4212
4213 void
4214 sh2e_extract_sfmt_lds_fpscr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4215     sh2e_insn_word insn = entire_insn;
4216 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4217     UINT f_rn;
4218
4219     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4220
4221   /* Record the fields for the semantic handler.  */
4222   FLD (f_rn) = f_rn;
4223   if (UNLIKELY(current_cpu->trace_extract_p))
4224     {
4225       current_cpu->trace_stream 
4226         << "0x" << hex << pc << dec << " (sfmt_lds_fpscr_compact)\t"
4227         << " f_rn:0x" << hex << f_rn << dec
4228         << endl;
4229     }
4230
4231   /* Record the fields for profiling.  */
4232   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4233     {
4234       FLD (in_rn) = f_rn;
4235     }
4236 #undef FLD
4237 }
4238
4239 void
4240 sh2e_extract_sfmt_ldsl_fpscr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4241     sh2e_insn_word insn = entire_insn;
4242 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4243     UINT f_rn;
4244
4245     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4246
4247   /* Record the fields for the semantic handler.  */
4248   FLD (f_rn) = f_rn;
4249   if (UNLIKELY(current_cpu->trace_extract_p))
4250     {
4251       current_cpu->trace_stream 
4252         << "0x" << hex << pc << dec << " (sfmt_ldsl_fpscr_compact)\t"
4253         << " f_rn:0x" << hex << f_rn << dec
4254         << endl;
4255     }
4256
4257   /* Record the fields for profiling.  */
4258   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4259     {
4260       FLD (in_rn) = f_rn;
4261       FLD (out_rn) = f_rn;
4262     }
4263 #undef FLD
4264 }
4265
4266 void
4267 sh2e_extract_sfmt_lds_fpul_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4268     sh2e_insn_word insn = entire_insn;
4269 #define FLD(f) abuf->fields.sfmt_ldsl_fpul_compact.f
4270     UINT f_rn;
4271
4272     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4273
4274   /* Record the fields for the semantic handler.  */
4275   FLD (f_rn) = f_rn;
4276   if (UNLIKELY(current_cpu->trace_extract_p))
4277     {
4278       current_cpu->trace_stream 
4279         << "0x" << hex << pc << dec << " (sfmt_lds_fpul_compact)\t"
4280         << " f_rn:0x" << hex << f_rn << dec
4281         << endl;
4282     }
4283
4284   /* Record the fields for profiling.  */
4285   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4286     {
4287       FLD (in_rn) = f_rn;
4288       FLD (out_fpul) = 32;
4289     }
4290 #undef FLD
4291 }
4292
4293 void
4294 sh2e_extract_sfmt_ldsl_fpul_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4295     sh2e_insn_word insn = entire_insn;
4296 #define FLD(f) abuf->fields.sfmt_ldsl_fpul_compact.f
4297     UINT f_rn;
4298
4299     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4300
4301   /* Record the fields for the semantic handler.  */
4302   FLD (f_rn) = f_rn;
4303   if (UNLIKELY(current_cpu->trace_extract_p))
4304     {
4305       current_cpu->trace_stream 
4306         << "0x" << hex << pc << dec << " (sfmt_ldsl_fpul_compact)\t"
4307         << " f_rn:0x" << hex << f_rn << dec
4308         << endl;
4309     }
4310
4311   /* Record the fields for profiling.  */
4312   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4313     {
4314       FLD (in_rn) = f_rn;
4315       FLD (out_fpul) = 32;
4316       FLD (out_rn) = f_rn;
4317     }
4318 #undef FLD
4319 }
4320
4321 void
4322 sh2e_extract_sfmt_lds_mach_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4323     sh2e_insn_word insn = entire_insn;
4324 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4325     UINT f_rn;
4326
4327     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4328
4329   /* Record the fields for the semantic handler.  */
4330   FLD (f_rn) = f_rn;
4331   if (UNLIKELY(current_cpu->trace_extract_p))
4332     {
4333       current_cpu->trace_stream 
4334         << "0x" << hex << pc << dec << " (sfmt_lds_mach_compact)\t"
4335         << " f_rn:0x" << hex << f_rn << dec
4336         << endl;
4337     }
4338
4339   /* Record the fields for profiling.  */
4340   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4341     {
4342       FLD (in_rn) = f_rn;
4343     }
4344 #undef FLD
4345 }
4346
4347 void
4348 sh2e_extract_sfmt_ldsl_mach_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4349     sh2e_insn_word insn = entire_insn;
4350 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4351     UINT f_rn;
4352
4353     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4354
4355   /* Record the fields for the semantic handler.  */
4356   FLD (f_rn) = f_rn;
4357   if (UNLIKELY(current_cpu->trace_extract_p))
4358     {
4359       current_cpu->trace_stream 
4360         << "0x" << hex << pc << dec << " (sfmt_ldsl_mach_compact)\t"
4361         << " f_rn:0x" << hex << f_rn << dec
4362         << endl;
4363     }
4364
4365   /* Record the fields for profiling.  */
4366   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4367     {
4368       FLD (in_rn) = f_rn;
4369       FLD (out_rn) = f_rn;
4370     }
4371 #undef FLD
4372 }
4373
4374 void
4375 sh2e_extract_sfmt_lds_macl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4376     sh2e_insn_word insn = entire_insn;
4377 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4378     UINT f_rn;
4379
4380     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4381
4382   /* Record the fields for the semantic handler.  */
4383   FLD (f_rn) = f_rn;
4384   if (UNLIKELY(current_cpu->trace_extract_p))
4385     {
4386       current_cpu->trace_stream 
4387         << "0x" << hex << pc << dec << " (sfmt_lds_macl_compact)\t"
4388         << " f_rn:0x" << hex << f_rn << dec
4389         << endl;
4390     }
4391
4392   /* Record the fields for profiling.  */
4393   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4394     {
4395       FLD (in_rn) = f_rn;
4396     }
4397 #undef FLD
4398 }
4399
4400 void
4401 sh2e_extract_sfmt_ldsl_macl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4402     sh2e_insn_word insn = entire_insn;
4403 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4404     UINT f_rn;
4405
4406     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4407
4408   /* Record the fields for the semantic handler.  */
4409   FLD (f_rn) = f_rn;
4410   if (UNLIKELY(current_cpu->trace_extract_p))
4411     {
4412       current_cpu->trace_stream 
4413         << "0x" << hex << pc << dec << " (sfmt_ldsl_macl_compact)\t"
4414         << " f_rn:0x" << hex << f_rn << dec
4415         << endl;
4416     }
4417
4418   /* Record the fields for profiling.  */
4419   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4420     {
4421       FLD (in_rn) = f_rn;
4422       FLD (out_rn) = f_rn;
4423     }
4424 #undef FLD
4425 }
4426
4427 void
4428 sh2e_extract_sfmt_lds_pr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4429     sh2e_insn_word insn = entire_insn;
4430 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4431     UINT f_rn;
4432
4433     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4434
4435   /* Record the fields for the semantic handler.  */
4436   FLD (f_rn) = f_rn;
4437   if (UNLIKELY(current_cpu->trace_extract_p))
4438     {
4439       current_cpu->trace_stream 
4440         << "0x" << hex << pc << dec << " (sfmt_lds_pr_compact)\t"
4441         << " f_rn:0x" << hex << f_rn << dec
4442         << endl;
4443     }
4444
4445   /* Record the fields for profiling.  */
4446   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4447     {
4448       FLD (in_rn) = f_rn;
4449     }
4450 #undef FLD
4451 }
4452
4453 void
4454 sh2e_extract_sfmt_ldsl_pr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4455     sh2e_insn_word insn = entire_insn;
4456 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4457     UINT f_rn;
4458
4459     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4460
4461   /* Record the fields for the semantic handler.  */
4462   FLD (f_rn) = f_rn;
4463   if (UNLIKELY(current_cpu->trace_extract_p))
4464     {
4465       current_cpu->trace_stream 
4466         << "0x" << hex << pc << dec << " (sfmt_ldsl_pr_compact)\t"
4467         << " f_rn:0x" << hex << f_rn << dec
4468         << endl;
4469     }
4470
4471   /* Record the fields for profiling.  */
4472   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4473     {
4474       FLD (in_rn) = f_rn;
4475       FLD (out_rn) = f_rn;
4476     }
4477 #undef FLD
4478 }
4479
4480 void
4481 sh2e_extract_sfmt_macl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4482     sh2e_insn_word insn = entire_insn;
4483 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4484     UINT f_rn;
4485     UINT f_rm;
4486
4487     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4488     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4489
4490   /* Record the fields for the semantic handler.  */
4491   FLD (f_rm) = f_rm;
4492   FLD (f_rn) = f_rn;
4493   if (UNLIKELY(current_cpu->trace_extract_p))
4494     {
4495       current_cpu->trace_stream 
4496         << "0x" << hex << pc << dec << " (sfmt_macl_compact)\t"
4497         << " f_rm:0x" << hex << f_rm << dec
4498         << " f_rn:0x" << hex << f_rn << dec
4499         << endl;
4500     }
4501
4502   /* Record the fields for profiling.  */
4503   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4504     {
4505       FLD (in_rm) = f_rm;
4506       FLD (in_rn) = f_rn;
4507       FLD (out_rm) = f_rm;
4508       FLD (out_rn) = f_rn;
4509     }
4510 #undef FLD
4511 }
4512
4513 void
4514 sh2e_extract_sfmt_macw_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4515     sh2e_insn_word insn = entire_insn;
4516 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4517     UINT f_rn;
4518     UINT f_rm;
4519
4520     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4521     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4522
4523   /* Record the fields for the semantic handler.  */
4524   FLD (f_rm) = f_rm;
4525   FLD (f_rn) = f_rn;
4526   if (UNLIKELY(current_cpu->trace_extract_p))
4527     {
4528       current_cpu->trace_stream 
4529         << "0x" << hex << pc << dec << " (sfmt_macw_compact)\t"
4530         << " f_rm:0x" << hex << f_rm << dec
4531         << " f_rn:0x" << hex << f_rn << dec
4532         << endl;
4533     }
4534
4535   /* Record the fields for profiling.  */
4536   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4537     {
4538       FLD (in_rm) = f_rm;
4539       FLD (in_rn) = f_rn;
4540       FLD (out_rm) = f_rm;
4541       FLD (out_rn) = f_rn;
4542     }
4543 #undef FLD
4544 }
4545
4546 void
4547 sh2e_extract_sfmt_mov_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4548     sh2e_insn_word insn = entire_insn;
4549 #define FLD(f) abuf->fields.sfmt_and_compact.f
4550     UINT f_rn;
4551     UINT f_rm;
4552
4553     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4554     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4555
4556   /* Record the fields for the semantic handler.  */
4557   FLD (f_rm) = f_rm;
4558   FLD (f_rn) = f_rn;
4559   if (UNLIKELY(current_cpu->trace_extract_p))
4560     {
4561       current_cpu->trace_stream 
4562         << "0x" << hex << pc << dec << " (sfmt_mov_compact)\t"
4563         << " f_rm:0x" << hex << f_rm << dec
4564         << " f_rn:0x" << hex << f_rn << dec
4565         << endl;
4566     }
4567
4568   /* Record the fields for profiling.  */
4569   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4570     {
4571       FLD (in_rm64) = f_rm;
4572       FLD (out_rn64) = f_rn;
4573     }
4574 #undef FLD
4575 }
4576
4577 void
4578 sh2e_extract_sfmt_movi_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4579     sh2e_insn_word insn = entire_insn;
4580 #define FLD(f) abuf->fields.sfmt_addi_compact.f
4581     UINT f_rn;
4582     UINT f_imm8;
4583
4584     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4585     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
4586
4587   /* Record the fields for the semantic handler.  */
4588   FLD (f_imm8) = f_imm8;
4589   FLD (f_rn) = f_rn;
4590   if (UNLIKELY(current_cpu->trace_extract_p))
4591     {
4592       current_cpu->trace_stream 
4593         << "0x" << hex << pc << dec << " (sfmt_movi_compact)\t"
4594         << " f_imm8:0x" << hex << f_imm8 << dec
4595         << " f_rn:0x" << hex << f_rn << dec
4596         << endl;
4597     }
4598
4599   /* Record the fields for profiling.  */
4600   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4601     {
4602       FLD (out_rn) = f_rn;
4603     }
4604 #undef FLD
4605 }
4606
4607 void
4608 sh2e_extract_sfmt_movb1_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4609     sh2e_insn_word insn = entire_insn;
4610 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
4611     UINT f_rn;
4612     UINT f_rm;
4613
4614     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4615     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4616
4617   /* Record the fields for the semantic handler.  */
4618   FLD (f_rm) = f_rm;
4619   FLD (f_rn) = f_rn;
4620   if (UNLIKELY(current_cpu->trace_extract_p))
4621     {
4622       current_cpu->trace_stream 
4623         << "0x" << hex << pc << dec << " (sfmt_movb1_compact)\t"
4624         << " f_rm:0x" << hex << f_rm << dec
4625         << " f_rn:0x" << hex << f_rn << dec
4626         << endl;
4627     }
4628
4629   /* Record the fields for profiling.  */
4630   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4631     {
4632       FLD (in_rm) = f_rm;
4633       FLD (in_rn) = f_rn;
4634     }
4635 #undef FLD
4636 }
4637
4638 void
4639 sh2e_extract_sfmt_movb2_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4640     sh2e_insn_word insn = entire_insn;
4641 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4642     UINT f_rn;
4643     UINT f_rm;
4644
4645     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4646     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4647
4648   /* Record the fields for the semantic handler.  */
4649   FLD (f_rm) = f_rm;
4650   FLD (f_rn) = f_rn;
4651   if (UNLIKELY(current_cpu->trace_extract_p))
4652     {
4653       current_cpu->trace_stream 
4654         << "0x" << hex << pc << dec << " (sfmt_movb2_compact)\t"
4655         << " f_rm:0x" << hex << f_rm << dec
4656         << " f_rn:0x" << hex << f_rn << dec
4657         << endl;
4658     }
4659
4660   /* Record the fields for profiling.  */
4661   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4662     {
4663       FLD (in_rm) = f_rm;
4664       FLD (in_rn) = f_rn;
4665       FLD (out_rn) = f_rn;
4666     }
4667 #undef FLD
4668 }
4669
4670 void
4671 sh2e_extract_sfmt_movb3_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4672     sh2e_insn_word insn = entire_insn;
4673 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
4674     UINT f_rn;
4675     UINT f_rm;
4676
4677     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4678     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4679
4680   /* Record the fields for the semantic handler.  */
4681   FLD (f_rm) = f_rm;
4682   FLD (f_rn) = f_rn;
4683   if (UNLIKELY(current_cpu->trace_extract_p))
4684     {
4685       current_cpu->trace_stream 
4686         << "0x" << hex << pc << dec << " (sfmt_movb3_compact)\t"
4687         << " f_rm:0x" << hex << f_rm << dec
4688         << " f_rn:0x" << hex << f_rn << dec
4689         << endl;
4690     }
4691
4692   /* Record the fields for profiling.  */
4693   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4694     {
4695       FLD (in_r0) = 0;
4696       FLD (in_rm) = f_rm;
4697       FLD (in_rn) = f_rn;
4698     }
4699 #undef FLD
4700 }
4701
4702 void
4703 sh2e_extract_sfmt_movb4_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4704     sh2e_insn_word insn = entire_insn;
4705 #define FLD(f) abuf->fields.sfmt_andi_compact.f
4706     UINT f_imm8;
4707
4708     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
4709
4710   /* Record the fields for the semantic handler.  */
4711   FLD (f_imm8) = f_imm8;
4712   if (UNLIKELY(current_cpu->trace_extract_p))
4713     {
4714       current_cpu->trace_stream 
4715         << "0x" << hex << pc << dec << " (sfmt_movb4_compact)\t"
4716         << " f_imm8:0x" << hex << f_imm8 << dec
4717         << endl;
4718     }
4719
4720   /* Record the fields for profiling.  */
4721   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4722     {
4723       FLD (in_r0) = 0;
4724     }
4725 #undef FLD
4726 }
4727
4728 void
4729 sh2e_extract_sfmt_movb5_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4730     sh2e_insn_word insn = entire_insn;
4731 #define FLD(f) abuf->fields.sfmt_movb5_compact.f
4732     UINT f_rm;
4733     UINT f_imm4;
4734
4735     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4736     f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4737
4738   /* Record the fields for the semantic handler.  */
4739   FLD (f_imm4) = f_imm4;
4740   FLD (f_rm) = f_rm;
4741   if (UNLIKELY(current_cpu->trace_extract_p))
4742     {
4743       current_cpu->trace_stream 
4744         << "0x" << hex << pc << dec << " (sfmt_movb5_compact)\t"
4745         << " f_imm4:0x" << hex << f_imm4 << dec
4746         << " f_rm:0x" << hex << f_rm << dec
4747         << endl;
4748     }
4749
4750   /* Record the fields for profiling.  */
4751   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4752     {
4753       FLD (in_r0) = 0;
4754       FLD (in_rm) = f_rm;
4755     }
4756 #undef FLD
4757 }
4758
4759 void
4760 sh2e_extract_sfmt_movb6_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4761     sh2e_insn_word insn = entire_insn;
4762 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
4763     UINT f_rn;
4764     UINT f_rm;
4765
4766     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4767     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4768
4769   /* Record the fields for the semantic handler.  */
4770   FLD (f_rm) = f_rm;
4771   FLD (f_rn) = f_rn;
4772   if (UNLIKELY(current_cpu->trace_extract_p))
4773     {
4774       current_cpu->trace_stream 
4775         << "0x" << hex << pc << dec << " (sfmt_movb6_compact)\t"
4776         << " f_rm:0x" << hex << f_rm << dec
4777         << " f_rn:0x" << hex << f_rn << dec
4778         << endl;
4779     }
4780
4781   /* Record the fields for profiling.  */
4782   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4783     {
4784       FLD (in_rm) = f_rm;
4785       FLD (out_rn) = f_rn;
4786     }
4787 #undef FLD
4788 }
4789
4790 void
4791 sh2e_extract_sfmt_movb7_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4792     sh2e_insn_word insn = entire_insn;
4793 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4794     UINT f_rn;
4795     UINT f_rm;
4796
4797     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4798     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4799
4800   /* Record the fields for the semantic handler.  */
4801   FLD (f_rm) = f_rm;
4802   FLD (f_rn) = f_rn;
4803   if (UNLIKELY(current_cpu->trace_extract_p))
4804     {
4805       current_cpu->trace_stream 
4806         << "0x" << hex << pc << dec << " (sfmt_movb7_compact)\t"
4807         << " f_rm:0x" << hex << f_rm << dec
4808         << " f_rn:0x" << hex << f_rn << dec
4809         << endl;
4810     }
4811
4812   /* Record the fields for profiling.  */
4813   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4814     {
4815       FLD (in_rm) = f_rm;
4816       FLD (out_rm) = f_rm;
4817       FLD (out_rn) = f_rn;
4818     }
4819 #undef FLD
4820 }
4821
4822 void
4823 sh2e_extract_sfmt_movb8_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4824     sh2e_insn_word insn = entire_insn;
4825 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
4826     UINT f_rn;
4827     UINT f_rm;
4828
4829     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4830     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4831
4832   /* Record the fields for the semantic handler.  */
4833   FLD (f_rm) = f_rm;
4834   FLD (f_rn) = f_rn;
4835   if (UNLIKELY(current_cpu->trace_extract_p))
4836     {
4837       current_cpu->trace_stream 
4838         << "0x" << hex << pc << dec << " (sfmt_movb8_compact)\t"
4839         << " f_rm:0x" << hex << f_rm << dec
4840         << " f_rn:0x" << hex << f_rn << dec
4841         << endl;
4842     }
4843
4844   /* Record the fields for profiling.  */
4845   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4846     {
4847       FLD (in_r0) = 0;
4848       FLD (in_rm) = f_rm;
4849       FLD (out_rn) = f_rn;
4850     }
4851 #undef FLD
4852 }
4853
4854 void
4855 sh2e_extract_sfmt_movb9_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4856     sh2e_insn_word insn = entire_insn;
4857 #define FLD(f) abuf->fields.sfmt_andi_compact.f
4858     UINT f_imm8;
4859
4860     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
4861
4862   /* Record the fields for the semantic handler.  */
4863   FLD (f_imm8) = f_imm8;
4864   if (UNLIKELY(current_cpu->trace_extract_p))
4865     {
4866       current_cpu->trace_stream 
4867         << "0x" << hex << pc << dec << " (sfmt_movb9_compact)\t"
4868         << " f_imm8:0x" << hex << f_imm8 << dec
4869         << endl;
4870     }
4871
4872   /* Record the fields for profiling.  */
4873   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4874     {
4875       FLD (out_r0) = 0;
4876     }
4877 #undef FLD
4878 }
4879
4880 void
4881 sh2e_extract_sfmt_movb10_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4882     sh2e_insn_word insn = entire_insn;
4883 #define FLD(f) abuf->fields.sfmt_movb10_compact.f
4884     UINT f_rm;
4885     UINT f_imm4;
4886
4887     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4888     f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4889
4890   /* Record the fields for the semantic handler.  */
4891   FLD (f_imm4) = f_imm4;
4892   FLD (f_rm) = f_rm;
4893   if (UNLIKELY(current_cpu->trace_extract_p))
4894     {
4895       current_cpu->trace_stream 
4896         << "0x" << hex << pc << dec << " (sfmt_movb10_compact)\t"
4897         << " f_imm4:0x" << hex << f_imm4 << dec
4898         << " f_rm:0x" << hex << f_rm << dec
4899         << endl;
4900     }
4901
4902   /* Record the fields for profiling.  */
4903   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4904     {
4905       FLD (in_rm) = f_rm;
4906       FLD (out_r0) = 0;
4907     }
4908 #undef FLD
4909 }
4910
4911 void
4912 sh2e_extract_sfmt_movl1_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4913     sh2e_insn_word insn = entire_insn;
4914 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
4915     UINT f_rn;
4916     UINT f_rm;
4917
4918     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4919     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4920
4921   /* Record the fields for the semantic handler.  */
4922   FLD (f_rm) = f_rm;
4923   FLD (f_rn) = f_rn;
4924   if (UNLIKELY(current_cpu->trace_extract_p))
4925     {
4926       current_cpu->trace_stream 
4927         << "0x" << hex << pc << dec << " (sfmt_movl1_compact)\t"
4928         << " f_rm:0x" << hex << f_rm << dec
4929         << " f_rn:0x" << hex << f_rn << dec
4930         << endl;
4931     }
4932
4933   /* Record the fields for profiling.  */
4934   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4935     {
4936       FLD (in_rm) = f_rm;
4937       FLD (in_rn) = f_rn;
4938     }
4939 #undef FLD
4940 }
4941
4942 void
4943 sh2e_extract_sfmt_movl2_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4944     sh2e_insn_word insn = entire_insn;
4945 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4946     UINT f_rn;
4947     UINT f_rm;
4948
4949     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4950     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4951
4952   /* Record the fields for the semantic handler.  */
4953   FLD (f_rm) = f_rm;
4954   FLD (f_rn) = f_rn;
4955   if (UNLIKELY(current_cpu->trace_extract_p))
4956     {
4957       current_cpu->trace_stream 
4958         << "0x" << hex << pc << dec << " (sfmt_movl2_compact)\t"
4959         << " f_rm:0x" << hex << f_rm << dec
4960         << " f_rn:0x" << hex << f_rn << dec
4961         << endl;
4962     }
4963
4964   /* Record the fields for profiling.  */
4965   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4966     {
4967       FLD (in_rm) = f_rm;
4968       FLD (in_rn) = f_rn;
4969       FLD (out_rn) = f_rn;
4970     }
4971 #undef FLD
4972 }
4973
4974 void
4975 sh2e_extract_sfmt_movl3_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
4976     sh2e_insn_word insn = entire_insn;
4977 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
4978     UINT f_rn;
4979     UINT f_rm;
4980
4981     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4982     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4983
4984   /* Record the fields for the semantic handler.  */
4985   FLD (f_rm) = f_rm;
4986   FLD (f_rn) = f_rn;
4987   if (UNLIKELY(current_cpu->trace_extract_p))
4988     {
4989       current_cpu->trace_stream 
4990         << "0x" << hex << pc << dec << " (sfmt_movl3_compact)\t"
4991         << " f_rm:0x" << hex << f_rm << dec
4992         << " f_rn:0x" << hex << f_rn << dec
4993         << endl;
4994     }
4995
4996   /* Record the fields for profiling.  */
4997   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4998     {
4999       FLD (in_r0) = 0;
5000       FLD (in_rm) = f_rm;
5001       FLD (in_rn) = f_rn;
5002     }
5003 #undef FLD
5004 }
5005
5006 void
5007 sh2e_extract_sfmt_movl4_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5008     sh2e_insn_word insn = entire_insn;
5009 #define FLD(f) abuf->fields.sfmt_movl4_compact.f
5010     SI f_imm8x4;
5011
5012     f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
5013
5014   /* Record the fields for the semantic handler.  */
5015   FLD (f_imm8x4) = f_imm8x4;
5016   if (UNLIKELY(current_cpu->trace_extract_p))
5017     {
5018       current_cpu->trace_stream 
5019         << "0x" << hex << pc << dec << " (sfmt_movl4_compact)\t"
5020         << " f_imm8x4:0x" << hex << f_imm8x4 << dec
5021         << endl;
5022     }
5023
5024   /* Record the fields for profiling.  */
5025   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5026     {
5027       FLD (in_r0) = 0;
5028     }
5029 #undef FLD
5030 }
5031
5032 void
5033 sh2e_extract_sfmt_movl5_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5034     sh2e_insn_word insn = entire_insn;
5035 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
5036     UINT f_rn;
5037     UINT f_rm;
5038     SI f_imm4x4;
5039
5040     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5041     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5042     f_imm4x4 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (2));
5043
5044   /* Record the fields for the semantic handler.  */
5045   FLD (f_imm4x4) = f_imm4x4;
5046   FLD (f_rm) = f_rm;
5047   FLD (f_rn) = f_rn;
5048   if (UNLIKELY(current_cpu->trace_extract_p))
5049     {
5050       current_cpu->trace_stream 
5051         << "0x" << hex << pc << dec << " (sfmt_movl5_compact)\t"
5052         << " f_imm4x4:0x" << hex << f_imm4x4 << dec
5053         << " f_rm:0x" << hex << f_rm << dec
5054         << " f_rn:0x" << hex << f_rn << dec
5055         << endl;
5056     }
5057
5058   /* Record the fields for profiling.  */
5059   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5060     {
5061       FLD (in_rm) = f_rm;
5062       FLD (in_rn) = f_rn;
5063     }
5064 #undef FLD
5065 }
5066
5067 void
5068 sh2e_extract_sfmt_movl6_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5069     sh2e_insn_word insn = entire_insn;
5070 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5071     UINT f_rn;
5072     UINT f_rm;
5073
5074     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5075     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5076
5077   /* Record the fields for the semantic handler.  */
5078   FLD (f_rm) = f_rm;
5079   FLD (f_rn) = f_rn;
5080   if (UNLIKELY(current_cpu->trace_extract_p))
5081     {
5082       current_cpu->trace_stream 
5083         << "0x" << hex << pc << dec << " (sfmt_movl6_compact)\t"
5084         << " f_rm:0x" << hex << f_rm << dec
5085         << " f_rn:0x" << hex << f_rn << dec
5086         << endl;
5087     }
5088
5089   /* Record the fields for profiling.  */
5090   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5091     {
5092       FLD (in_rm) = f_rm;
5093       FLD (out_rn) = f_rn;
5094     }
5095 #undef FLD
5096 }
5097
5098 void
5099 sh2e_extract_sfmt_movl7_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5100     sh2e_insn_word insn = entire_insn;
5101 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5102     UINT f_rn;
5103     UINT f_rm;
5104
5105     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5106     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5107
5108   /* Record the fields for the semantic handler.  */
5109   FLD (f_rm) = f_rm;
5110   FLD (f_rn) = f_rn;
5111   if (UNLIKELY(current_cpu->trace_extract_p))
5112     {
5113       current_cpu->trace_stream 
5114         << "0x" << hex << pc << dec << " (sfmt_movl7_compact)\t"
5115         << " f_rm:0x" << hex << f_rm << dec
5116         << " f_rn:0x" << hex << f_rn << dec
5117         << endl;
5118     }
5119
5120   /* Record the fields for profiling.  */
5121   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5122     {
5123       FLD (in_rm) = f_rm;
5124       FLD (in_rn) = f_rn;
5125       FLD (out_rm) = f_rm;
5126       FLD (out_rn) = f_rn;
5127     }
5128 #undef FLD
5129 }
5130
5131 void
5132 sh2e_extract_sfmt_movl8_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5133     sh2e_insn_word insn = entire_insn;
5134 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
5135     UINT f_rn;
5136     UINT f_rm;
5137
5138     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5139     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5140
5141   /* Record the fields for the semantic handler.  */
5142   FLD (f_rm) = f_rm;
5143   FLD (f_rn) = f_rn;
5144   if (UNLIKELY(current_cpu->trace_extract_p))
5145     {
5146       current_cpu->trace_stream 
5147         << "0x" << hex << pc << dec << " (sfmt_movl8_compact)\t"
5148         << " f_rm:0x" << hex << f_rm << dec
5149         << " f_rn:0x" << hex << f_rn << dec
5150         << endl;
5151     }
5152
5153   /* Record the fields for profiling.  */
5154   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5155     {
5156       FLD (in_r0) = 0;
5157       FLD (in_rm) = f_rm;
5158       FLD (out_rn) = f_rn;
5159     }
5160 #undef FLD
5161 }
5162
5163 void
5164 sh2e_extract_sfmt_movl9_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5165     sh2e_insn_word insn = entire_insn;
5166 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
5167     SI f_imm8x4;
5168
5169     f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
5170
5171   /* Record the fields for the semantic handler.  */
5172   FLD (f_imm8x4) = f_imm8x4;
5173   if (UNLIKELY(current_cpu->trace_extract_p))
5174     {
5175       current_cpu->trace_stream 
5176         << "0x" << hex << pc << dec << " (sfmt_movl9_compact)\t"
5177         << " f_imm8x4:0x" << hex << f_imm8x4 << dec
5178         << endl;
5179     }
5180
5181   /* Record the fields for profiling.  */
5182   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5183     {
5184       FLD (out_r0) = 0;
5185     }
5186 #undef FLD
5187 }
5188
5189 void
5190 sh2e_extract_sfmt_movl10_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5191     sh2e_insn_word insn = entire_insn;
5192 #define FLD(f) abuf->fields.sfmt_movl10_compact.f
5193     UINT f_rn;
5194     SI f_imm8x4;
5195
5196     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5197     f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
5198
5199   /* Record the fields for the semantic handler.  */
5200   FLD (f_imm8x4) = f_imm8x4;
5201   FLD (f_rn) = f_rn;
5202   if (UNLIKELY(current_cpu->trace_extract_p))
5203     {
5204       current_cpu->trace_stream 
5205         << "0x" << hex << pc << dec << " (sfmt_movl10_compact)\t"
5206         << " f_imm8x4:0x" << hex << f_imm8x4 << dec
5207         << " f_rn:0x" << hex << f_rn << dec
5208         << endl;
5209     }
5210
5211   /* Record the fields for profiling.  */
5212   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5213     {
5214       FLD (out_rn) = f_rn;
5215     }
5216 #undef FLD
5217 }
5218
5219 void
5220 sh2e_extract_sfmt_movl11_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5221     sh2e_insn_word insn = entire_insn;
5222 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5223     UINT f_rn;
5224     UINT f_rm;
5225     SI f_imm4x4;
5226
5227     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5228     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5229     f_imm4x4 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (2));
5230
5231   /* Record the fields for the semantic handler.  */
5232   FLD (f_imm4x4) = f_imm4x4;
5233   FLD (f_rm) = f_rm;
5234   FLD (f_rn) = f_rn;
5235   if (UNLIKELY(current_cpu->trace_extract_p))
5236     {
5237       current_cpu->trace_stream 
5238         << "0x" << hex << pc << dec << " (sfmt_movl11_compact)\t"
5239         << " f_imm4x4:0x" << hex << f_imm4x4 << dec
5240         << " f_rm:0x" << hex << f_rm << dec
5241         << " f_rn:0x" << hex << f_rn << dec
5242         << endl;
5243     }
5244
5245   /* Record the fields for profiling.  */
5246   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5247     {
5248       FLD (in_rm) = f_rm;
5249       FLD (out_rn) = f_rn;
5250     }
5251 #undef FLD
5252 }
5253
5254 void
5255 sh2e_extract_sfmt_movw1_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5256     sh2e_insn_word insn = entire_insn;
5257 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
5258     UINT f_rn;
5259     UINT f_rm;
5260
5261     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5262     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5263
5264   /* Record the fields for the semantic handler.  */
5265   FLD (f_rm) = f_rm;
5266   FLD (f_rn) = f_rn;
5267   if (UNLIKELY(current_cpu->trace_extract_p))
5268     {
5269       current_cpu->trace_stream 
5270         << "0x" << hex << pc << dec << " (sfmt_movw1_compact)\t"
5271         << " f_rm:0x" << hex << f_rm << dec
5272         << " f_rn:0x" << hex << f_rn << dec
5273         << endl;
5274     }
5275
5276   /* Record the fields for profiling.  */
5277   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5278     {
5279       FLD (in_rm) = f_rm;
5280       FLD (in_rn) = f_rn;
5281     }
5282 #undef FLD
5283 }
5284
5285 void
5286 sh2e_extract_sfmt_movw2_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5287     sh2e_insn_word insn = entire_insn;
5288 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5289     UINT f_rn;
5290     UINT f_rm;
5291
5292     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5293     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5294
5295   /* Record the fields for the semantic handler.  */
5296   FLD (f_rm) = f_rm;
5297   FLD (f_rn) = f_rn;
5298   if (UNLIKELY(current_cpu->trace_extract_p))
5299     {
5300       current_cpu->trace_stream 
5301         << "0x" << hex << pc << dec << " (sfmt_movw2_compact)\t"
5302         << " f_rm:0x" << hex << f_rm << dec
5303         << " f_rn:0x" << hex << f_rn << dec
5304         << endl;
5305     }
5306
5307   /* Record the fields for profiling.  */
5308   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5309     {
5310       FLD (in_rm) = f_rm;
5311       FLD (in_rn) = f_rn;
5312       FLD (out_rn) = f_rn;
5313     }
5314 #undef FLD
5315 }
5316
5317 void
5318 sh2e_extract_sfmt_movw3_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5319     sh2e_insn_word insn = entire_insn;
5320 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
5321     UINT f_rn;
5322     UINT f_rm;
5323
5324     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5325     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5326
5327   /* Record the fields for the semantic handler.  */
5328   FLD (f_rm) = f_rm;
5329   FLD (f_rn) = f_rn;
5330   if (UNLIKELY(current_cpu->trace_extract_p))
5331     {
5332       current_cpu->trace_stream 
5333         << "0x" << hex << pc << dec << " (sfmt_movw3_compact)\t"
5334         << " f_rm:0x" << hex << f_rm << dec
5335         << " f_rn:0x" << hex << f_rn << dec
5336         << endl;
5337     }
5338
5339   /* Record the fields for profiling.  */
5340   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5341     {
5342       FLD (in_r0) = 0;
5343       FLD (in_rm) = f_rm;
5344       FLD (in_rn) = f_rn;
5345     }
5346 #undef FLD
5347 }
5348
5349 void
5350 sh2e_extract_sfmt_movw4_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5351     sh2e_insn_word insn = entire_insn;
5352 #define FLD(f) abuf->fields.sfmt_movw4_compact.f
5353     SI f_imm8x2;
5354
5355     f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
5356
5357   /* Record the fields for the semantic handler.  */
5358   FLD (f_imm8x2) = f_imm8x2;
5359   if (UNLIKELY(current_cpu->trace_extract_p))
5360     {
5361       current_cpu->trace_stream 
5362         << "0x" << hex << pc << dec << " (sfmt_movw4_compact)\t"
5363         << " f_imm8x2:0x" << hex << f_imm8x2 << dec
5364         << endl;
5365     }
5366
5367   /* Record the fields for profiling.  */
5368   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5369     {
5370       FLD (in_r0) = 0;
5371     }
5372 #undef FLD
5373 }
5374
5375 void
5376 sh2e_extract_sfmt_movw5_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5377     sh2e_insn_word insn = entire_insn;
5378 #define FLD(f) abuf->fields.sfmt_movw5_compact.f
5379     UINT f_rm;
5380     SI f_imm4x2;
5381
5382     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5383     f_imm4x2 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (1));
5384
5385   /* Record the fields for the semantic handler.  */
5386   FLD (f_imm4x2) = f_imm4x2;
5387   FLD (f_rm) = f_rm;
5388   if (UNLIKELY(current_cpu->trace_extract_p))
5389     {
5390       current_cpu->trace_stream 
5391         << "0x" << hex << pc << dec << " (sfmt_movw5_compact)\t"
5392         << " f_imm4x2:0x" << hex << f_imm4x2 << dec
5393         << " f_rm:0x" << hex << f_rm << dec
5394         << endl;
5395     }
5396
5397   /* Record the fields for profiling.  */
5398   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5399     {
5400       FLD (in_r0) = 0;
5401       FLD (in_rm) = f_rm;
5402     }
5403 #undef FLD
5404 }
5405
5406 void
5407 sh2e_extract_sfmt_movw6_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5408     sh2e_insn_word insn = entire_insn;
5409 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5410     UINT f_rn;
5411     UINT f_rm;
5412
5413     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5414     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5415
5416   /* Record the fields for the semantic handler.  */
5417   FLD (f_rm) = f_rm;
5418   FLD (f_rn) = f_rn;
5419   if (UNLIKELY(current_cpu->trace_extract_p))
5420     {
5421       current_cpu->trace_stream 
5422         << "0x" << hex << pc << dec << " (sfmt_movw6_compact)\t"
5423         << " f_rm:0x" << hex << f_rm << dec
5424         << " f_rn:0x" << hex << f_rn << dec
5425         << endl;
5426     }
5427
5428   /* Record the fields for profiling.  */
5429   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5430     {
5431       FLD (in_rm) = f_rm;
5432       FLD (out_rn) = f_rn;
5433     }
5434 #undef FLD
5435 }
5436
5437 void
5438 sh2e_extract_sfmt_movw7_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5439     sh2e_insn_word insn = entire_insn;
5440 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5441     UINT f_rn;
5442     UINT f_rm;
5443
5444     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5445     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5446
5447   /* Record the fields for the semantic handler.  */
5448   FLD (f_rm) = f_rm;
5449   FLD (f_rn) = f_rn;
5450   if (UNLIKELY(current_cpu->trace_extract_p))
5451     {
5452       current_cpu->trace_stream 
5453         << "0x" << hex << pc << dec << " (sfmt_movw7_compact)\t"
5454         << " f_rm:0x" << hex << f_rm << dec
5455         << " f_rn:0x" << hex << f_rn << dec
5456         << endl;
5457     }
5458
5459   /* Record the fields for profiling.  */
5460   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5461     {
5462       FLD (in_rm) = f_rm;
5463       FLD (out_rm) = f_rm;
5464       FLD (out_rn) = f_rn;
5465     }
5466 #undef FLD
5467 }
5468
5469 void
5470 sh2e_extract_sfmt_movw8_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5471     sh2e_insn_word insn = entire_insn;
5472 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
5473     UINT f_rn;
5474     UINT f_rm;
5475
5476     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5477     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5478
5479   /* Record the fields for the semantic handler.  */
5480   FLD (f_rm) = f_rm;
5481   FLD (f_rn) = f_rn;
5482   if (UNLIKELY(current_cpu->trace_extract_p))
5483     {
5484       current_cpu->trace_stream 
5485         << "0x" << hex << pc << dec << " (sfmt_movw8_compact)\t"
5486         << " f_rm:0x" << hex << f_rm << dec
5487         << " f_rn:0x" << hex << f_rn << dec
5488         << endl;
5489     }
5490
5491   /* Record the fields for profiling.  */
5492   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5493     {
5494       FLD (in_r0) = 0;
5495       FLD (in_rm) = f_rm;
5496       FLD (out_rn) = f_rn;
5497     }
5498 #undef FLD
5499 }
5500
5501 void
5502 sh2e_extract_sfmt_movw9_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5503     sh2e_insn_word insn = entire_insn;
5504 #define FLD(f) abuf->fields.sfmt_movw9_compact.f
5505     SI f_imm8x2;
5506
5507     f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
5508
5509   /* Record the fields for the semantic handler.  */
5510   FLD (f_imm8x2) = f_imm8x2;
5511   if (UNLIKELY(current_cpu->trace_extract_p))
5512     {
5513       current_cpu->trace_stream 
5514         << "0x" << hex << pc << dec << " (sfmt_movw9_compact)\t"
5515         << " f_imm8x2:0x" << hex << f_imm8x2 << dec
5516         << endl;
5517     }
5518
5519   /* Record the fields for profiling.  */
5520   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5521     {
5522       FLD (out_r0) = 0;
5523     }
5524 #undef FLD
5525 }
5526
5527 void
5528 sh2e_extract_sfmt_movw10_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5529     sh2e_insn_word insn = entire_insn;
5530 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
5531     UINT f_rn;
5532     SI f_imm8x2;
5533
5534     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5535     f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
5536
5537   /* Record the fields for the semantic handler.  */
5538   FLD (f_imm8x2) = f_imm8x2;
5539   FLD (f_rn) = f_rn;
5540   if (UNLIKELY(current_cpu->trace_extract_p))
5541     {
5542       current_cpu->trace_stream 
5543         << "0x" << hex << pc << dec << " (sfmt_movw10_compact)\t"
5544         << " f_imm8x2:0x" << hex << f_imm8x2 << dec
5545         << " f_rn:0x" << hex << f_rn << dec
5546         << endl;
5547     }
5548
5549   /* Record the fields for profiling.  */
5550   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5551     {
5552       FLD (out_rn) = f_rn;
5553     }
5554 #undef FLD
5555 }
5556
5557 void
5558 sh2e_extract_sfmt_movw11_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5559     sh2e_insn_word insn = entire_insn;
5560 #define FLD(f) abuf->fields.sfmt_movw11_compact.f
5561     UINT f_rm;
5562     SI f_imm4x2;
5563
5564     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5565     f_imm4x2 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (1));
5566
5567   /* Record the fields for the semantic handler.  */
5568   FLD (f_imm4x2) = f_imm4x2;
5569   FLD (f_rm) = f_rm;
5570   if (UNLIKELY(current_cpu->trace_extract_p))
5571     {
5572       current_cpu->trace_stream 
5573         << "0x" << hex << pc << dec << " (sfmt_movw11_compact)\t"
5574         << " f_imm4x2:0x" << hex << f_imm4x2 << dec
5575         << " f_rm:0x" << hex << f_rm << dec
5576         << endl;
5577     }
5578
5579   /* Record the fields for profiling.  */
5580   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5581     {
5582       FLD (in_rm) = f_rm;
5583       FLD (out_r0) = 0;
5584     }
5585 #undef FLD
5586 }
5587
5588 void
5589 sh2e_extract_sfmt_mova_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5590     sh2e_insn_word insn = entire_insn;
5591 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
5592     SI f_imm8x4;
5593
5594     f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
5595
5596   /* Record the fields for the semantic handler.  */
5597   FLD (f_imm8x4) = f_imm8x4;
5598   if (UNLIKELY(current_cpu->trace_extract_p))
5599     {
5600       current_cpu->trace_stream 
5601         << "0x" << hex << pc << dec << " (sfmt_mova_compact)\t"
5602         << " f_imm8x4:0x" << hex << f_imm8x4 << dec
5603         << endl;
5604     }
5605
5606   /* Record the fields for profiling.  */
5607   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5608     {
5609       FLD (out_r0) = 0;
5610     }
5611 #undef FLD
5612 }
5613
5614 void
5615 sh2e_extract_sfmt_movt_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5616     sh2e_insn_word insn = entire_insn;
5617 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
5618     UINT f_rn;
5619
5620     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5621
5622   /* Record the fields for the semantic handler.  */
5623   FLD (f_rn) = f_rn;
5624   if (UNLIKELY(current_cpu->trace_extract_p))
5625     {
5626       current_cpu->trace_stream 
5627         << "0x" << hex << pc << dec << " (sfmt_movt_compact)\t"
5628         << " f_rn:0x" << hex << f_rn << dec
5629         << endl;
5630     }
5631
5632   /* Record the fields for profiling.  */
5633   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5634     {
5635       FLD (out_rn) = f_rn;
5636     }
5637 #undef FLD
5638 }
5639
5640 void
5641 sh2e_extract_sfmt_mull_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5642     sh2e_insn_word insn = entire_insn;
5643 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
5644     UINT f_rn;
5645     UINT f_rm;
5646
5647     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5648     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5649
5650   /* Record the fields for the semantic handler.  */
5651   FLD (f_rm) = f_rm;
5652   FLD (f_rn) = f_rn;
5653   if (UNLIKELY(current_cpu->trace_extract_p))
5654     {
5655       current_cpu->trace_stream 
5656         << "0x" << hex << pc << dec << " (sfmt_mull_compact)\t"
5657         << " f_rm:0x" << hex << f_rm << dec
5658         << " f_rn:0x" << hex << f_rn << dec
5659         << endl;
5660     }
5661
5662   /* Record the fields for profiling.  */
5663   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5664     {
5665       FLD (in_rm) = f_rm;
5666       FLD (in_rn) = f_rn;
5667     }
5668 #undef FLD
5669 }
5670
5671 void
5672 sh2e_extract_sfmt_negc_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5673     sh2e_insn_word insn = entire_insn;
5674 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5675     UINT f_rn;
5676     UINT f_rm;
5677
5678     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5679     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5680
5681   /* Record the fields for the semantic handler.  */
5682   FLD (f_rm) = f_rm;
5683   FLD (f_rn) = f_rn;
5684   if (UNLIKELY(current_cpu->trace_extract_p))
5685     {
5686       current_cpu->trace_stream 
5687         << "0x" << hex << pc << dec << " (sfmt_negc_compact)\t"
5688         << " f_rm:0x" << hex << f_rm << dec
5689         << " f_rn:0x" << hex << f_rn << dec
5690         << endl;
5691     }
5692
5693   /* Record the fields for profiling.  */
5694   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5695     {
5696       FLD (in_rm) = f_rm;
5697       FLD (out_rn) = f_rn;
5698     }
5699 #undef FLD
5700 }
5701
5702 void
5703 sh2e_extract_sfmt_nop_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5704     sh2e_insn_word insn = entire_insn;
5705 #define FLD(f) abuf->fields.fmt_empty.f
5706
5707
5708   /* Record the fields for the semantic handler.  */
5709   if (UNLIKELY(current_cpu->trace_extract_p))
5710     {
5711       current_cpu->trace_stream 
5712         << "0x" << hex << pc << dec << " (sfmt_nop_compact)\t"
5713         << endl;
5714     }
5715
5716 #undef FLD
5717 }
5718
5719 void
5720 sh2e_extract_sfmt_rotcl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5721     sh2e_insn_word insn = entire_insn;
5722 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
5723     UINT f_rn;
5724
5725     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5726
5727   /* Record the fields for the semantic handler.  */
5728   FLD (f_rn) = f_rn;
5729   if (UNLIKELY(current_cpu->trace_extract_p))
5730     {
5731       current_cpu->trace_stream 
5732         << "0x" << hex << pc << dec << " (sfmt_rotcl_compact)\t"
5733         << " f_rn:0x" << hex << f_rn << dec
5734         << endl;
5735     }
5736
5737   /* Record the fields for profiling.  */
5738   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5739     {
5740       FLD (in_rn) = f_rn;
5741       FLD (out_rn) = f_rn;
5742     }
5743 #undef FLD
5744 }
5745
5746 void
5747 sh2e_extract_sfmt_rts_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5748     sh2e_insn_word insn = entire_insn;
5749 #define FLD(f) abuf->fields.fmt_empty.f
5750
5751
5752   /* Record the fields for the semantic handler.  */
5753   if (UNLIKELY(current_cpu->trace_extract_p))
5754     {
5755       current_cpu->trace_stream 
5756         << "0x" << hex << pc << dec << " (sfmt_rts_compact)\t"
5757         << endl;
5758     }
5759
5760   /* Record the fields for profiling.  */
5761   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5762     {
5763     }
5764 #undef FLD
5765 }
5766
5767 void
5768 sh2e_extract_sfmt_shll2_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5769     sh2e_insn_word insn = entire_insn;
5770 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
5771     UINT f_rn;
5772
5773     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5774
5775   /* Record the fields for the semantic handler.  */
5776   FLD (f_rn) = f_rn;
5777   if (UNLIKELY(current_cpu->trace_extract_p))
5778     {
5779       current_cpu->trace_stream 
5780         << "0x" << hex << pc << dec << " (sfmt_shll2_compact)\t"
5781         << " f_rn:0x" << hex << f_rn << dec
5782         << endl;
5783     }
5784
5785   /* Record the fields for profiling.  */
5786   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5787     {
5788       FLD (in_rn) = f_rn;
5789       FLD (out_rn) = f_rn;
5790     }
5791 #undef FLD
5792 }
5793
5794 void
5795 sh2e_extract_sfmt_stc_gbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5796     sh2e_insn_word insn = entire_insn;
5797 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
5798     UINT f_rn;
5799
5800     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5801
5802   /* Record the fields for the semantic handler.  */
5803   FLD (f_rn) = f_rn;
5804   if (UNLIKELY(current_cpu->trace_extract_p))
5805     {
5806       current_cpu->trace_stream 
5807         << "0x" << hex << pc << dec << " (sfmt_stc_gbr_compact)\t"
5808         << " f_rn:0x" << hex << f_rn << dec
5809         << endl;
5810     }
5811
5812   /* Record the fields for profiling.  */
5813   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5814     {
5815       FLD (out_rn) = f_rn;
5816     }
5817 #undef FLD
5818 }
5819
5820 void
5821 sh2e_extract_sfmt_stc_vbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5822     sh2e_insn_word insn = entire_insn;
5823 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
5824     UINT f_rn;
5825
5826     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5827
5828   /* Record the fields for the semantic handler.  */
5829   FLD (f_rn) = f_rn;
5830   if (UNLIKELY(current_cpu->trace_extract_p))
5831     {
5832       current_cpu->trace_stream 
5833         << "0x" << hex << pc << dec << " (sfmt_stc_vbr_compact)\t"
5834         << " f_rn:0x" << hex << f_rn << dec
5835         << endl;
5836     }
5837
5838   /* Record the fields for profiling.  */
5839   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5840     {
5841       FLD (out_rn) = f_rn;
5842     }
5843 #undef FLD
5844 }
5845
5846 void
5847 sh2e_extract_sfmt_stcl_gbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5848     sh2e_insn_word insn = entire_insn;
5849 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
5850     UINT f_rn;
5851
5852     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5853
5854   /* Record the fields for the semantic handler.  */
5855   FLD (f_rn) = f_rn;
5856   if (UNLIKELY(current_cpu->trace_extract_p))
5857     {
5858       current_cpu->trace_stream 
5859         << "0x" << hex << pc << dec << " (sfmt_stcl_gbr_compact)\t"
5860         << " f_rn:0x" << hex << f_rn << dec
5861         << endl;
5862     }
5863
5864   /* Record the fields for profiling.  */
5865   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5866     {
5867       FLD (in_rn) = f_rn;
5868       FLD (out_rn) = f_rn;
5869     }
5870 #undef FLD
5871 }
5872
5873 void
5874 sh2e_extract_sfmt_stcl_vbr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5875     sh2e_insn_word insn = entire_insn;
5876 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
5877     UINT f_rn;
5878
5879     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5880
5881   /* Record the fields for the semantic handler.  */
5882   FLD (f_rn) = f_rn;
5883   if (UNLIKELY(current_cpu->trace_extract_p))
5884     {
5885       current_cpu->trace_stream 
5886         << "0x" << hex << pc << dec << " (sfmt_stcl_vbr_compact)\t"
5887         << " f_rn:0x" << hex << f_rn << dec
5888         << endl;
5889     }
5890
5891   /* Record the fields for profiling.  */
5892   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5893     {
5894       FLD (in_rn) = f_rn;
5895       FLD (out_rn) = f_rn;
5896     }
5897 #undef FLD
5898 }
5899
5900 void
5901 sh2e_extract_sfmt_sts_fpscr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5902     sh2e_insn_word insn = entire_insn;
5903 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
5904     UINT f_rn;
5905
5906     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5907
5908   /* Record the fields for the semantic handler.  */
5909   FLD (f_rn) = f_rn;
5910   if (UNLIKELY(current_cpu->trace_extract_p))
5911     {
5912       current_cpu->trace_stream 
5913         << "0x" << hex << pc << dec << " (sfmt_sts_fpscr_compact)\t"
5914         << " f_rn:0x" << hex << f_rn << dec
5915         << endl;
5916     }
5917
5918   /* Record the fields for profiling.  */
5919   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5920     {
5921       FLD (out_rn) = f_rn;
5922     }
5923 #undef FLD
5924 }
5925
5926 void
5927 sh2e_extract_sfmt_stsl_fpscr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5928     sh2e_insn_word insn = entire_insn;
5929 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
5930     UINT f_rn;
5931
5932     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5933
5934   /* Record the fields for the semantic handler.  */
5935   FLD (f_rn) = f_rn;
5936   if (UNLIKELY(current_cpu->trace_extract_p))
5937     {
5938       current_cpu->trace_stream 
5939         << "0x" << hex << pc << dec << " (sfmt_stsl_fpscr_compact)\t"
5940         << " f_rn:0x" << hex << f_rn << dec
5941         << endl;
5942     }
5943
5944   /* Record the fields for profiling.  */
5945   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5946     {
5947       FLD (in_rn) = f_rn;
5948       FLD (out_rn) = f_rn;
5949     }
5950 #undef FLD
5951 }
5952
5953 void
5954 sh2e_extract_sfmt_sts_fpul_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5955     sh2e_insn_word insn = entire_insn;
5956 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
5957     UINT f_rn;
5958
5959     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5960
5961   /* Record the fields for the semantic handler.  */
5962   FLD (f_rn) = f_rn;
5963   if (UNLIKELY(current_cpu->trace_extract_p))
5964     {
5965       current_cpu->trace_stream 
5966         << "0x" << hex << pc << dec << " (sfmt_sts_fpul_compact)\t"
5967         << " f_rn:0x" << hex << f_rn << dec
5968         << endl;
5969     }
5970
5971   /* Record the fields for profiling.  */
5972   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5973     {
5974       FLD (in_fpul) = 32;
5975       FLD (out_rn) = f_rn;
5976     }
5977 #undef FLD
5978 }
5979
5980 void
5981 sh2e_extract_sfmt_stsl_fpul_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
5982     sh2e_insn_word insn = entire_insn;
5983 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
5984     UINT f_rn;
5985
5986     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5987
5988   /* Record the fields for the semantic handler.  */
5989   FLD (f_rn) = f_rn;
5990   if (UNLIKELY(current_cpu->trace_extract_p))
5991     {
5992       current_cpu->trace_stream 
5993         << "0x" << hex << pc << dec << " (sfmt_stsl_fpul_compact)\t"
5994         << " f_rn:0x" << hex << f_rn << dec
5995         << endl;
5996     }
5997
5998   /* Record the fields for profiling.  */
5999   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6000     {
6001       FLD (in_fpul) = 32;
6002       FLD (in_rn) = f_rn;
6003       FLD (out_rn) = f_rn;
6004     }
6005 #undef FLD
6006 }
6007
6008 void
6009 sh2e_extract_sfmt_sts_mach_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
6010     sh2e_insn_word insn = entire_insn;
6011 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6012     UINT f_rn;
6013
6014     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6015
6016   /* Record the fields for the semantic handler.  */
6017   FLD (f_rn) = f_rn;
6018   if (UNLIKELY(current_cpu->trace_extract_p))
6019     {
6020       current_cpu->trace_stream 
6021         << "0x" << hex << pc << dec << " (sfmt_sts_mach_compact)\t"
6022         << " f_rn:0x" << hex << f_rn << dec
6023         << endl;
6024     }
6025
6026   /* Record the fields for profiling.  */
6027   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6028     {
6029       FLD (out_rn) = f_rn;
6030     }
6031 #undef FLD
6032 }
6033
6034 void
6035 sh2e_extract_sfmt_stsl_mach_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
6036     sh2e_insn_word insn = entire_insn;
6037 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6038     UINT f_rn;
6039
6040     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6041
6042   /* Record the fields for the semantic handler.  */
6043   FLD (f_rn) = f_rn;
6044   if (UNLIKELY(current_cpu->trace_extract_p))
6045     {
6046       current_cpu->trace_stream 
6047         << "0x" << hex << pc << dec << " (sfmt_stsl_mach_compact)\t"
6048         << " f_rn:0x" << hex << f_rn << dec
6049         << endl;
6050     }
6051
6052   /* Record the fields for profiling.  */
6053   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6054     {
6055       FLD (in_rn) = f_rn;
6056       FLD (out_rn) = f_rn;
6057     }
6058 #undef FLD
6059 }
6060
6061 void
6062 sh2e_extract_sfmt_sts_macl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
6063     sh2e_insn_word insn = entire_insn;
6064 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6065     UINT f_rn;
6066
6067     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6068
6069   /* Record the fields for the semantic handler.  */
6070   FLD (f_rn) = f_rn;
6071   if (UNLIKELY(current_cpu->trace_extract_p))
6072     {
6073       current_cpu->trace_stream 
6074         << "0x" << hex << pc << dec << " (sfmt_sts_macl_compact)\t"
6075         << " f_rn:0x" << hex << f_rn << dec
6076         << endl;
6077     }
6078
6079   /* Record the fields for profiling.  */
6080   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6081     {
6082       FLD (out_rn) = f_rn;
6083     }
6084 #undef FLD
6085 }
6086
6087 void
6088 sh2e_extract_sfmt_stsl_macl_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
6089     sh2e_insn_word insn = entire_insn;
6090 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6091     UINT f_rn;
6092
6093     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6094
6095   /* Record the fields for the semantic handler.  */
6096   FLD (f_rn) = f_rn;
6097   if (UNLIKELY(current_cpu->trace_extract_p))
6098     {
6099       current_cpu->trace_stream 
6100         << "0x" << hex << pc << dec << " (sfmt_stsl_macl_compact)\t"
6101         << " f_rn:0x" << hex << f_rn << dec
6102         << endl;
6103     }
6104
6105   /* Record the fields for profiling.  */
6106   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6107     {
6108       FLD (in_rn) = f_rn;
6109       FLD (out_rn) = f_rn;
6110     }
6111 #undef FLD
6112 }
6113
6114 void
6115 sh2e_extract_sfmt_sts_pr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
6116     sh2e_insn_word insn = entire_insn;
6117 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6118     UINT f_rn;
6119
6120     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6121
6122   /* Record the fields for the semantic handler.  */
6123   FLD (f_rn) = f_rn;
6124   if (UNLIKELY(current_cpu->trace_extract_p))
6125     {
6126       current_cpu->trace_stream 
6127         << "0x" << hex << pc << dec << " (sfmt_sts_pr_compact)\t"
6128         << " f_rn:0x" << hex << f_rn << dec
6129         << endl;
6130     }
6131
6132   /* Record the fields for profiling.  */
6133   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6134     {
6135       FLD (out_rn) = f_rn;
6136     }
6137 #undef FLD
6138 }
6139
6140 void
6141 sh2e_extract_sfmt_stsl_pr_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
6142     sh2e_insn_word insn = entire_insn;
6143 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6144     UINT f_rn;
6145
6146     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6147
6148   /* Record the fields for the semantic handler.  */
6149   FLD (f_rn) = f_rn;
6150   if (UNLIKELY(current_cpu->trace_extract_p))
6151     {
6152       current_cpu->trace_stream 
6153         << "0x" << hex << pc << dec << " (sfmt_stsl_pr_compact)\t"
6154         << " f_rn:0x" << hex << f_rn << dec
6155         << endl;
6156     }
6157
6158   /* Record the fields for profiling.  */
6159   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6160     {
6161       FLD (in_rn) = f_rn;
6162       FLD (out_rn) = f_rn;
6163     }
6164 #undef FLD
6165 }
6166
6167 void
6168 sh2e_extract_sfmt_tasb_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
6169     sh2e_insn_word insn = entire_insn;
6170 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6171     UINT f_rn;
6172
6173     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6174
6175   /* Record the fields for the semantic handler.  */
6176   FLD (f_rn) = f_rn;
6177   if (UNLIKELY(current_cpu->trace_extract_p))
6178     {
6179       current_cpu->trace_stream 
6180         << "0x" << hex << pc << dec << " (sfmt_tasb_compact)\t"
6181         << " f_rn:0x" << hex << f_rn << dec
6182         << endl;
6183     }
6184
6185   /* Record the fields for profiling.  */
6186   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6187     {
6188       FLD (in_rn) = f_rn;
6189     }
6190 #undef FLD
6191 }
6192
6193 void
6194 sh2e_extract_sfmt_trapa_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
6195     sh2e_insn_word insn = entire_insn;
6196 #define FLD(f) abuf->fields.sfmt_andi_compact.f
6197     UINT f_imm8;
6198
6199     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
6200
6201   /* Record the fields for the semantic handler.  */
6202   FLD (f_imm8) = f_imm8;
6203   if (UNLIKELY(current_cpu->trace_extract_p))
6204     {
6205       current_cpu->trace_stream 
6206         << "0x" << hex << pc << dec << " (sfmt_trapa_compact)\t"
6207         << " f_imm8:0x" << hex << f_imm8 << dec
6208         << endl;
6209     }
6210
6211   /* Record the fields for profiling.  */
6212   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6213     {
6214     }
6215 #undef FLD
6216 }
6217
6218 void
6219 sh2e_extract_sfmt_tsti_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
6220     sh2e_insn_word insn = entire_insn;
6221 #define FLD(f) abuf->fields.sfmt_andi_compact.f
6222     UINT f_imm8;
6223
6224     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
6225
6226   /* Record the fields for the semantic handler.  */
6227   FLD (f_imm8) = f_imm8;
6228   if (UNLIKELY(current_cpu->trace_extract_p))
6229     {
6230       current_cpu->trace_stream 
6231         << "0x" << hex << pc << dec << " (sfmt_tsti_compact)\t"
6232         << " f_imm8:0x" << hex << f_imm8 << dec
6233         << endl;
6234     }
6235
6236   /* Record the fields for profiling.  */
6237   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6238     {
6239       FLD (in_r0) = 0;
6240     }
6241 #undef FLD
6242 }
6243
6244 void
6245 sh2e_extract_sfmt_tstb_compact (sh2e_scache* abuf, sh2e_cpu* current_cpu, PCADDR pc, sh2e_insn_word base_insn, sh2e_insn_word entire_insn){
6246     sh2e_insn_word insn = entire_insn;
6247 #define FLD(f) abuf->fields.sfmt_andi_compact.f
6248     UINT f_imm8;
6249
6250     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
6251
6252   /* Record the fields for the semantic handler.  */
6253   FLD (f_imm8) = f_imm8;
6254   if (UNLIKELY(current_cpu->trace_extract_p))
6255     {
6256       current_cpu->trace_stream 
6257         << "0x" << hex << pc << dec << " (sfmt_tstb_compact)\t"
6258         << " f_imm8:0x" << hex << f_imm8 << dec
6259         << endl;
6260     }
6261
6262   /* Record the fields for profiling.  */
6263   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6264     {
6265       FLD (in_r0) = 0;
6266     }
6267 #undef FLD
6268 }
6269