OSDN Git Service

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