OSDN Git Service

d358b537c6ed41f5084513dff9ea8337512dec7d
[pf3gnuchains/pf3gnuchains4x.git] / sid / component / cgen-cpu / sh / sh5-compact-decode.cxx
1 /* Simulator instruction decoder for sh5_compact.
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 "sh5.h"
17
18 using namespace sh5; // FIXME: namespace organization still wip
19
20
21 // The instruction descriptor array. 
22
23 sh5_compact_idesc sh5_compact_idesc::idesc_table[SH5_COMPACT_INSN_XTRCT_COMPACT + 1] =
24 {
25   { sh5_compact_sem_x_invalid, "X_INVALID", SH5_COMPACT_INSN_X_INVALID, { 0|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_NONE } },
26   { sh5_compact_sem_add_compact, "ADD_COMPACT", SH5_COMPACT_INSN_ADD_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
27   { sh5_compact_sem_addi_compact, "ADDI_COMPACT", SH5_COMPACT_INSN_ADDI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_NONE } },
28   { sh5_compact_sem_addc_compact, "ADDC_COMPACT", SH5_COMPACT_INSN_ADDC_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
29   { sh5_compact_sem_addv_compact, "ADDV_COMPACT", SH5_COMPACT_INSN_ADDV_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
30   { sh5_compact_sem_and_compact, "AND_COMPACT", SH5_COMPACT_INSN_AND_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
31   { sh5_compact_sem_andi_compact, "ANDI_COMPACT", SH5_COMPACT_INSN_ANDI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
32   { sh5_compact_sem_andb_compact, "ANDB_COMPACT", SH5_COMPACT_INSN_ANDB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
33   { sh5_compact_sem_bf_compact, "BF_COMPACT", SH5_COMPACT_INSN_BF_COMPACT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_BR, SH4A_GROUP_BR } },
34   { sh5_compact_sem_bfs_compact, "BFS_COMPACT", SH5_COMPACT_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   { sh5_compact_sem_bra_compact, "BRA_COMPACT", SH5_COMPACT_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   { sh5_compact_sem_braf_compact, "BRAF_COMPACT", SH5_COMPACT_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   { sh5_compact_sem_brk_compact, "BRK_COMPACT", SH5_COMPACT_INSN_BRK_COMPACT, { 0, (1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_NONE } },
38   { sh5_compact_sem_bsr_compact, "BSR_COMPACT", SH5_COMPACT_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 } },
39   { sh5_compact_sem_bsrf_compact, "BSRF_COMPACT", SH5_COMPACT_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 } },
40   { sh5_compact_sem_bt_compact, "BT_COMPACT", SH5_COMPACT_INSN_BT_COMPACT, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_BR, SH4A_GROUP_BR } },
41   { sh5_compact_sem_bts_compact, "BTS_COMPACT", SH5_COMPACT_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 } },
42   { sh5_compact_sem_clrmac_compact, "CLRMAC_COMPACT", SH5_COMPACT_INSN_CLRMAC_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_EX } },
43   { sh5_compact_sem_clrs_compact, "CLRS_COMPACT", SH5_COMPACT_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 } },
44   { sh5_compact_sem_clrt_compact, "CLRT_COMPACT", SH5_COMPACT_INSN_CLRT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
45   { sh5_compact_sem_cmpeq_compact, "CMPEQ_COMPACT", SH5_COMPACT_INSN_CMPEQ_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
46   { sh5_compact_sem_cmpeqi_compact, "CMPEQI_COMPACT", SH5_COMPACT_INSN_CMPEQI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
47   { sh5_compact_sem_cmpge_compact, "CMPGE_COMPACT", SH5_COMPACT_INSN_CMPGE_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
48   { sh5_compact_sem_cmpgt_compact, "CMPGT_COMPACT", SH5_COMPACT_INSN_CMPGT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
49   { sh5_compact_sem_cmphi_compact, "CMPHI_COMPACT", SH5_COMPACT_INSN_CMPHI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
50   { sh5_compact_sem_cmphs_compact, "CMPHS_COMPACT", SH5_COMPACT_INSN_CMPHS_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
51   { sh5_compact_sem_cmppl_compact, "CMPPL_COMPACT", SH5_COMPACT_INSN_CMPPL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
52   { sh5_compact_sem_cmppz_compact, "CMPPZ_COMPACT", SH5_COMPACT_INSN_CMPPZ_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
53   { sh5_compact_sem_cmpstr_compact, "CMPSTR_COMPACT", SH5_COMPACT_INSN_CMPSTR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
54   { sh5_compact_sem_div0s_compact, "DIV0S_COMPACT", SH5_COMPACT_INSN_DIV0S_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
55   { sh5_compact_sem_div0u_compact, "DIV0U_COMPACT", SH5_COMPACT_INSN_DIV0U_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
56   { sh5_compact_sem_div1_compact, "DIV1_COMPACT", SH5_COMPACT_INSN_DIV1_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
57   { sh5_compact_sem_divu_compact, "DIVU_COMPACT", SH5_COMPACT_INSN_DIVU_COMPACT, { 0, (1<<MACH_SH2A_NOFPU)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH4)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_NONE } },
58   { sh5_compact_sem_mulr_compact, "MULR_COMPACT", SH5_COMPACT_INSN_MULR_COMPACT, { 0, (1<<MACH_SH2A_NOFPU)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH4)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_NONE } },
59   { sh5_compact_sem_dmulsl_compact, "DMULSL_COMPACT", SH5_COMPACT_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 } },
60   { sh5_compact_sem_dmulul_compact, "DMULUL_COMPACT", SH5_COMPACT_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 } },
61   { sh5_compact_sem_dt_compact, "DT_COMPACT", SH5_COMPACT_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 } },
62   { sh5_compact_sem_extsb_compact, "EXTSB_COMPACT", SH5_COMPACT_INSN_EXTSB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
63   { sh5_compact_sem_extsw_compact, "EXTSW_COMPACT", SH5_COMPACT_INSN_EXTSW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
64   { sh5_compact_sem_extub_compact, "EXTUB_COMPACT", SH5_COMPACT_INSN_EXTUB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
65   { sh5_compact_sem_extuw_compact, "EXTUW_COMPACT", SH5_COMPACT_INSN_EXTUW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
66   { sh5_compact_sem_fabs_compact, "FABS_COMPACT", SH5_COMPACT_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 } },
67   { sh5_compact_sem_fadd_compact, "FADD_COMPACT", SH5_COMPACT_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 } },
68   { sh5_compact_sem_fcmpeq_compact, "FCMPEQ_COMPACT", SH5_COMPACT_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 } },
69   { sh5_compact_sem_fcmpgt_compact, "FCMPGT_COMPACT", SH5_COMPACT_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 } },
70   { sh5_compact_sem_fcnvds_compact, "FCNVDS_COMPACT", SH5_COMPACT_INSN_FCNVDS_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2A_FPU)|(1<<MACH_SH4)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
71   { sh5_compact_sem_fcnvsd_compact, "FCNVSD_COMPACT", SH5_COMPACT_INSN_FCNVSD_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH2A_FPU)|(1<<MACH_SH4)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
72   { sh5_compact_sem_fdiv_compact, "FDIV_COMPACT", SH5_COMPACT_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 } },
73   { sh5_compact_sem_fipr_compact, "FIPR_COMPACT", SH5_COMPACT_INSN_FIPR_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
74   { sh5_compact_sem_flds_compact, "FLDS_COMPACT", SH5_COMPACT_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 } },
75   { sh5_compact_sem_fldi0_compact, "FLDI0_COMPACT", SH5_COMPACT_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 } },
76   { sh5_compact_sem_fldi1_compact, "FLDI1_COMPACT", SH5_COMPACT_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 } },
77   { sh5_compact_sem_float_compact, "FLOAT_COMPACT", SH5_COMPACT_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 } },
78   { sh5_compact_sem_fmac_compact, "FMAC_COMPACT", SH5_COMPACT_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 } },
79   { sh5_compact_sem_fmov1_compact, "FMOV1_COMPACT", SH5_COMPACT_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 } },
80   { sh5_compact_sem_fmov2_compact, "FMOV2_COMPACT", SH5_COMPACT_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 } },
81   { sh5_compact_sem_fmov3_compact, "FMOV3_COMPACT", SH5_COMPACT_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 } },
82   { sh5_compact_sem_fmov4_compact, "FMOV4_COMPACT", SH5_COMPACT_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 } },
83   { sh5_compact_sem_fmov5_compact, "FMOV5_COMPACT", SH5_COMPACT_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 } },
84   { sh5_compact_sem_fmov6_compact, "FMOV6_COMPACT", SH5_COMPACT_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 } },
85   { sh5_compact_sem_fmov7_compact, "FMOV7_COMPACT", SH5_COMPACT_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 } },
86   { sh5_compact_sem_fmov8_compact, "FMOV8_COMPACT", SH5_COMPACT_INSN_FMOV8_COMPACT, { 0|(1<<CGEN_INSN_32_BIT_INSN), (1<<MACH_SH2A_FPU)|(1<<MACH_SH4)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_NONE } },
87   { sh5_compact_sem_fmov9_compact, "FMOV9_COMPACT", SH5_COMPACT_INSN_FMOV9_COMPACT, { 0|(1<<CGEN_INSN_32_BIT_INSN), (1<<MACH_SH2A_FPU)|(1<<MACH_SH4)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_NONE } },
88   { sh5_compact_sem_fmul_compact, "FMUL_COMPACT", SH5_COMPACT_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 } },
89   { sh5_compact_sem_fneg_compact, "FNEG_COMPACT", SH5_COMPACT_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 } },
90   { sh5_compact_sem_frchg_compact, "FRCHG_COMPACT", SH5_COMPACT_INSN_FRCHG_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
91   { sh5_compact_sem_fschg_compact, "FSCHG_COMPACT", SH5_COMPACT_INSN_FSCHG_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
92   { sh5_compact_sem_fsqrt_compact, "FSQRT_COMPACT", SH5_COMPACT_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 } },
93   { sh5_compact_sem_fsts_compact, "FSTS_COMPACT", SH5_COMPACT_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 } },
94   { sh5_compact_sem_fsub_compact, "FSUB_COMPACT", SH5_COMPACT_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 } },
95   { sh5_compact_sem_ftrc_compact, "FTRC_COMPACT", SH5_COMPACT_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 } },
96   { sh5_compact_sem_ftrv_compact, "FTRV_COMPACT", SH5_COMPACT_INSN_FTRV_COMPACT, { 0|(1<<CGEN_INSN_FP_INSN), (1<<MACH_SH4)|(1<<MACH_SH4A)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_FE, SH4A_GROUP_FE } },
97   { sh5_compact_sem_jmp_compact, "JMP_COMPACT", SH5_COMPACT_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 } },
98   { sh5_compact_sem_jsr_compact, "JSR_COMPACT", SH5_COMPACT_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 } },
99   { sh5_compact_sem_ldc_gbr_compact, "LDC_GBR_COMPACT", SH5_COMPACT_INSN_LDC_GBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
100   { sh5_compact_sem_ldc_vbr_compact, "LDC_VBR_COMPACT", SH5_COMPACT_INSN_LDC_VBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
101   { sh5_compact_sem_ldc_sr_compact, "LDC_SR_COMPACT", SH5_COMPACT_INSN_LDC_SR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
102   { sh5_compact_sem_ldcl_gbr_compact, "LDCL_GBR_COMPACT", SH5_COMPACT_INSN_LDCL_GBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
103   { sh5_compact_sem_ldcl_vbr_compact, "LDCL_VBR_COMPACT", SH5_COMPACT_INSN_LDCL_VBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
104   { sh5_compact_sem_lds_fpscr_compact, "LDS_FPSCR_COMPACT", SH5_COMPACT_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 } },
105   { sh5_compact_sem_ldsl_fpscr_compact, "LDSL_FPSCR_COMPACT", SH5_COMPACT_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 } },
106   { sh5_compact_sem_lds_fpul_compact, "LDS_FPUL_COMPACT", SH5_COMPACT_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 } },
107   { sh5_compact_sem_ldsl_fpul_compact, "LDSL_FPUL_COMPACT", SH5_COMPACT_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 } },
108   { sh5_compact_sem_lds_mach_compact, "LDS_MACH_COMPACT", SH5_COMPACT_INSN_LDS_MACH_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
109   { sh5_compact_sem_ldsl_mach_compact, "LDSL_MACH_COMPACT", SH5_COMPACT_INSN_LDSL_MACH_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
110   { sh5_compact_sem_lds_macl_compact, "LDS_MACL_COMPACT", SH5_COMPACT_INSN_LDS_MACL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
111   { sh5_compact_sem_ldsl_macl_compact, "LDSL_MACL_COMPACT", SH5_COMPACT_INSN_LDSL_MACL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
112   { sh5_compact_sem_lds_pr_compact, "LDS_PR_COMPACT", SH5_COMPACT_INSN_LDS_PR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
113   { sh5_compact_sem_ldsl_pr_compact, "LDSL_PR_COMPACT", SH5_COMPACT_INSN_LDSL_PR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
114   { sh5_compact_sem_macl_compact, "MACL_COMPACT", SH5_COMPACT_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 } },
115   { sh5_compact_sem_macw_compact, "MACW_COMPACT", SH5_COMPACT_INSN_MACW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
116   { sh5_compact_sem_mov_compact, "MOV_COMPACT", SH5_COMPACT_INSN_MOV_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_MT } },
117   { sh5_compact_sem_movi_compact, "MOVI_COMPACT", SH5_COMPACT_INSN_MOVI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_MT } },
118   { sh5_compact_sem_movi20_compact, "MOVI20_COMPACT", SH5_COMPACT_INSN_MOVI20_COMPACT, { 0|(1<<CGEN_INSN_32_BIT_INSN), (1<<MACH_SH2A_NOFPU)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH4)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_NONE } },
119   { sh5_compact_sem_movb1_compact, "MOVB1_COMPACT", SH5_COMPACT_INSN_MOVB1_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
120   { sh5_compact_sem_movb2_compact, "MOVB2_COMPACT", SH5_COMPACT_INSN_MOVB2_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
121   { sh5_compact_sem_movb3_compact, "MOVB3_COMPACT", SH5_COMPACT_INSN_MOVB3_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
122   { sh5_compact_sem_movb4_compact, "MOVB4_COMPACT", SH5_COMPACT_INSN_MOVB4_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
123   { sh5_compact_sem_movb5_compact, "MOVB5_COMPACT", SH5_COMPACT_INSN_MOVB5_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
124   { sh5_compact_sem_movb6_compact, "MOVB6_COMPACT", SH5_COMPACT_INSN_MOVB6_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
125   { sh5_compact_sem_movb7_compact, "MOVB7_COMPACT", SH5_COMPACT_INSN_MOVB7_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
126   { sh5_compact_sem_movb8_compact, "MOVB8_COMPACT", SH5_COMPACT_INSN_MOVB8_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
127   { sh5_compact_sem_movb9_compact, "MOVB9_COMPACT", SH5_COMPACT_INSN_MOVB9_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
128   { sh5_compact_sem_movb10_compact, "MOVB10_COMPACT", SH5_COMPACT_INSN_MOVB10_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
129   { sh5_compact_sem_movl1_compact, "MOVL1_COMPACT", SH5_COMPACT_INSN_MOVL1_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
130   { sh5_compact_sem_movl2_compact, "MOVL2_COMPACT", SH5_COMPACT_INSN_MOVL2_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
131   { sh5_compact_sem_movl3_compact, "MOVL3_COMPACT", SH5_COMPACT_INSN_MOVL3_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
132   { sh5_compact_sem_movl4_compact, "MOVL4_COMPACT", SH5_COMPACT_INSN_MOVL4_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
133   { sh5_compact_sem_movl5_compact, "MOVL5_COMPACT", SH5_COMPACT_INSN_MOVL5_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
134   { sh5_compact_sem_movl6_compact, "MOVL6_COMPACT", SH5_COMPACT_INSN_MOVL6_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
135   { sh5_compact_sem_movl7_compact, "MOVL7_COMPACT", SH5_COMPACT_INSN_MOVL7_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
136   { sh5_compact_sem_movl8_compact, "MOVL8_COMPACT", SH5_COMPACT_INSN_MOVL8_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
137   { sh5_compact_sem_movl9_compact, "MOVL9_COMPACT", SH5_COMPACT_INSN_MOVL9_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
138   { sh5_compact_sem_movl10_compact, "MOVL10_COMPACT", SH5_COMPACT_INSN_MOVL10_COMPACT, { 0|(1<<CGEN_INSN_ILLSLOT), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
139   { sh5_compact_sem_movl11_compact, "MOVL11_COMPACT", SH5_COMPACT_INSN_MOVL11_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
140   { sh5_compact_sem_movl12_compact, "MOVL12_COMPACT", SH5_COMPACT_INSN_MOVL12_COMPACT, { 0|(1<<CGEN_INSN_32_BIT_INSN), (1<<MACH_SH2A_NOFPU)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH4)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_NONE } },
141   { sh5_compact_sem_movl13_compact, "MOVL13_COMPACT", SH5_COMPACT_INSN_MOVL13_COMPACT, { 0|(1<<CGEN_INSN_32_BIT_INSN), (1<<MACH_SH2A_NOFPU)|(1<<MACH_SH2A_FPU)|(1<<MACH_SH4)|(1<<MACH_SH4_NOFPU)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_NONE } },
142   { sh5_compact_sem_movw1_compact, "MOVW1_COMPACT", SH5_COMPACT_INSN_MOVW1_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
143   { sh5_compact_sem_movw2_compact, "MOVW2_COMPACT", SH5_COMPACT_INSN_MOVW2_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
144   { sh5_compact_sem_movw3_compact, "MOVW3_COMPACT", SH5_COMPACT_INSN_MOVW3_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
145   { sh5_compact_sem_movw4_compact, "MOVW4_COMPACT", SH5_COMPACT_INSN_MOVW4_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
146   { sh5_compact_sem_movw5_compact, "MOVW5_COMPACT", SH5_COMPACT_INSN_MOVW5_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
147   { sh5_compact_sem_movw6_compact, "MOVW6_COMPACT", SH5_COMPACT_INSN_MOVW6_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
148   { sh5_compact_sem_movw7_compact, "MOVW7_COMPACT", SH5_COMPACT_INSN_MOVW7_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
149   { sh5_compact_sem_movw8_compact, "MOVW8_COMPACT", SH5_COMPACT_INSN_MOVW8_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
150   { sh5_compact_sem_movw9_compact, "MOVW9_COMPACT", SH5_COMPACT_INSN_MOVW9_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
151   { sh5_compact_sem_movw10_compact, "MOVW10_COMPACT", SH5_COMPACT_INSN_MOVW10_COMPACT, { 0|(1<<CGEN_INSN_ILLSLOT), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
152   { sh5_compact_sem_movw11_compact, "MOVW11_COMPACT", SH5_COMPACT_INSN_MOVW11_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_LS, SH4A_GROUP_LS } },
153   { sh5_compact_sem_mova_compact, "MOVA_COMPACT", SH5_COMPACT_INSN_MOVA_COMPACT, { 0|(1<<CGEN_INSN_ILLSLOT), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_LS } },
154   { sh5_compact_sem_movcal_compact, "MOVCAL_COMPACT", SH5_COMPACT_INSN_MOVCAL_COMPACT, { 0, (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 } },
155   { sh5_compact_sem_movcol_compact, "MOVCOL_COMPACT", SH5_COMPACT_INSN_MOVCOL_COMPACT, { 0, (1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_CO } },
156   { sh5_compact_sem_movt_compact, "MOVT_COMPACT", SH5_COMPACT_INSN_MOVT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
157   { sh5_compact_sem_movual_compact, "MOVUAL_COMPACT", SH5_COMPACT_INSN_MOVUAL_COMPACT, { 0, (1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_LS } },
158   { sh5_compact_sem_movual2_compact, "MOVUAL2_COMPACT", SH5_COMPACT_INSN_MOVUAL2_COMPACT, { 0, (1<<MACH_SH4A_NOFPU)|(1<<MACH_SH4A)|(1<<MACH_SH4AL)|(1<<MACH_SH5), { 1, "\x80" }, SH4_GROUP_NONE, SH4A_GROUP_LS } },
159   { sh5_compact_sem_mull_compact, "MULL_COMPACT", SH5_COMPACT_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 } },
160   { sh5_compact_sem_mulsw_compact, "MULSW_COMPACT", SH5_COMPACT_INSN_MULSW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_EX } },
161   { sh5_compact_sem_muluw_compact, "MULUW_COMPACT", SH5_COMPACT_INSN_MULUW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_EX } },
162   { sh5_compact_sem_neg_compact, "NEG_COMPACT", SH5_COMPACT_INSN_NEG_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
163   { sh5_compact_sem_negc_compact, "NEGC_COMPACT", SH5_COMPACT_INSN_NEGC_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
164   { sh5_compact_sem_nop_compact, "NOP_COMPACT", SH5_COMPACT_INSN_NOP_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_MT } },
165   { sh5_compact_sem_not_compact, "NOT_COMPACT", SH5_COMPACT_INSN_NOT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
166   { sh5_compact_sem_ocbi_compact, "OCBI_COMPACT", SH5_COMPACT_INSN_OCBI_COMPACT, { 0, (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 } },
167   { sh5_compact_sem_ocbp_compact, "OCBP_COMPACT", SH5_COMPACT_INSN_OCBP_COMPACT, { 0, (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 } },
168   { sh5_compact_sem_ocbwb_compact, "OCBWB_COMPACT", SH5_COMPACT_INSN_OCBWB_COMPACT, { 0, (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 } },
169   { sh5_compact_sem_or_compact, "OR_COMPACT", SH5_COMPACT_INSN_OR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
170   { sh5_compact_sem_ori_compact, "ORI_COMPACT", SH5_COMPACT_INSN_ORI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
171   { sh5_compact_sem_orb_compact, "ORB_COMPACT", SH5_COMPACT_INSN_ORB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
172   { sh5_compact_sem_pref_compact, "PREF_COMPACT", SH5_COMPACT_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 } },
173   { sh5_compact_sem_rotcl_compact, "ROTCL_COMPACT", SH5_COMPACT_INSN_ROTCL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
174   { sh5_compact_sem_rotcr_compact, "ROTCR_COMPACT", SH5_COMPACT_INSN_ROTCR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
175   { sh5_compact_sem_rotl_compact, "ROTL_COMPACT", SH5_COMPACT_INSN_ROTL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
176   { sh5_compact_sem_rotr_compact, "ROTR_COMPACT", SH5_COMPACT_INSN_ROTR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
177   { sh5_compact_sem_rts_compact, "RTS_COMPACT", SH5_COMPACT_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 } },
178   { sh5_compact_sem_sets_compact, "SETS_COMPACT", SH5_COMPACT_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 } },
179   { sh5_compact_sem_sett_compact, "SETT_COMPACT", SH5_COMPACT_INSN_SETT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
180   { sh5_compact_sem_shad_compact, "SHAD_COMPACT", SH5_COMPACT_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 } },
181   { sh5_compact_sem_shal_compact, "SHAL_COMPACT", SH5_COMPACT_INSN_SHAL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
182   { sh5_compact_sem_shar_compact, "SHAR_COMPACT", SH5_COMPACT_INSN_SHAR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
183   { sh5_compact_sem_shld_compact, "SHLD_COMPACT", SH5_COMPACT_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 } },
184   { sh5_compact_sem_shll_compact, "SHLL_COMPACT", SH5_COMPACT_INSN_SHLL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
185   { sh5_compact_sem_shll2_compact, "SHLL2_COMPACT", SH5_COMPACT_INSN_SHLL2_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
186   { sh5_compact_sem_shll8_compact, "SHLL8_COMPACT", SH5_COMPACT_INSN_SHLL8_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
187   { sh5_compact_sem_shll16_compact, "SHLL16_COMPACT", SH5_COMPACT_INSN_SHLL16_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
188   { sh5_compact_sem_shlr_compact, "SHLR_COMPACT", SH5_COMPACT_INSN_SHLR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
189   { sh5_compact_sem_shlr2_compact, "SHLR2_COMPACT", SH5_COMPACT_INSN_SHLR2_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
190   { sh5_compact_sem_shlr8_compact, "SHLR8_COMPACT", SH5_COMPACT_INSN_SHLR8_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
191   { sh5_compact_sem_shlr16_compact, "SHLR16_COMPACT", SH5_COMPACT_INSN_SHLR16_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
192   { sh5_compact_sem_stc_gbr_compact, "STC_GBR_COMPACT", SH5_COMPACT_INSN_STC_GBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_NONE } },
193   { sh5_compact_sem_stc_vbr_compact, "STC_VBR_COMPACT", SH5_COMPACT_INSN_STC_VBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_NONE } },
194   { sh5_compact_sem_stcl_gbr_compact, "STCL_GBR_COMPACT", SH5_COMPACT_INSN_STCL_GBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_NONE } },
195   { sh5_compact_sem_stcl_vbr_compact, "STCL_VBR_COMPACT", SH5_COMPACT_INSN_STCL_VBR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_NONE } },
196   { sh5_compact_sem_sts_fpscr_compact, "STS_FPSCR_COMPACT", SH5_COMPACT_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 } },
197   { sh5_compact_sem_stsl_fpscr_compact, "STSL_FPSCR_COMPACT", SH5_COMPACT_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 } },
198   { sh5_compact_sem_sts_fpul_compact, "STS_FPUL_COMPACT", SH5_COMPACT_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 } },
199   { sh5_compact_sem_stsl_fpul_compact, "STSL_FPUL_COMPACT", SH5_COMPACT_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 } },
200   { sh5_compact_sem_sts_mach_compact, "STS_MACH_COMPACT", SH5_COMPACT_INSN_STS_MACH_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
201   { sh5_compact_sem_stsl_mach_compact, "STSL_MACH_COMPACT", SH5_COMPACT_INSN_STSL_MACH_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
202   { sh5_compact_sem_sts_macl_compact, "STS_MACL_COMPACT", SH5_COMPACT_INSN_STS_MACL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
203   { sh5_compact_sem_stsl_macl_compact, "STSL_MACL_COMPACT", SH5_COMPACT_INSN_STSL_MACL_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
204   { sh5_compact_sem_sts_pr_compact, "STS_PR_COMPACT", SH5_COMPACT_INSN_STS_PR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
205   { sh5_compact_sem_stsl_pr_compact, "STSL_PR_COMPACT", SH5_COMPACT_INSN_STSL_PR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_LS } },
206   { sh5_compact_sem_sub_compact, "SUB_COMPACT", SH5_COMPACT_INSN_SUB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
207   { sh5_compact_sem_subc_compact, "SUBC_COMPACT", SH5_COMPACT_INSN_SUBC_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
208   { sh5_compact_sem_subv_compact, "SUBV_COMPACT", SH5_COMPACT_INSN_SUBV_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
209   { sh5_compact_sem_swapb_compact, "SWAPB_COMPACT", SH5_COMPACT_INSN_SWAPB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
210   { sh5_compact_sem_swapw_compact, "SWAPW_COMPACT", SH5_COMPACT_INSN_SWAPW_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
211   { sh5_compact_sem_tasb_compact, "TASB_COMPACT", SH5_COMPACT_INSN_TASB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
212   { sh5_compact_sem_trapa_compact, "TRAPA_COMPACT", SH5_COMPACT_INSN_TRAPA_COMPACT, { 0|(1<<CGEN_INSN_ILLSLOT), (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
213   { sh5_compact_sem_tst_compact, "TST_COMPACT", SH5_COMPACT_INSN_TST_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
214   { sh5_compact_sem_tsti_compact, "TSTI_COMPACT", SH5_COMPACT_INSN_TSTI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_MT, SH4A_GROUP_EX } },
215   { sh5_compact_sem_tstb_compact, "TSTB_COMPACT", SH5_COMPACT_INSN_TSTB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
216   { sh5_compact_sem_xor_compact, "XOR_COMPACT", SH5_COMPACT_INSN_XOR_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
217   { sh5_compact_sem_xori_compact, "XORI_COMPACT", SH5_COMPACT_INSN_XORI_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
218   { sh5_compact_sem_xorb_compact, "XORB_COMPACT", SH5_COMPACT_INSN_XORB_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_CO, SH4A_GROUP_CO } },
219   { sh5_compact_sem_xtrct_compact, "XTRCT_COMPACT", SH5_COMPACT_INSN_XTRCT_COMPACT, { 0, (1<<MACH_BASE), { 1, "\x80" }, SH4_GROUP_EX, SH4A_GROUP_EX } },
220
221 };
222
223 // Given a canonical virtual insn id, return the target specific one.
224
225 sh5_compact_insn_type
226 sh5_compact_idesc::lookup_virtual (virtual_insn_type vit)
227 {
228   switch (vit)
229     {
230       case VIRTUAL_INSN_INVALID: return SH5_COMPACT_INSN_X_INVALID;
231       case VIRTUAL_INSN_COND: return SH5_COMPACT_INSN_X_INVALID;
232     }
233   abort ();
234 }
235
236
237 // Declare extractor functions
238
239 static void
240 sh5_compact_extract_sfmt_empty (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
241 static void
242 sh5_compact_extract_sfmt_add_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
243 static void
244 sh5_compact_extract_sfmt_addi_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
245 static void
246 sh5_compact_extract_sfmt_addc_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
247 static void
248 sh5_compact_extract_sfmt_addv_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
249 static void
250 sh5_compact_extract_sfmt_and_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
251 static void
252 sh5_compact_extract_sfmt_andi_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
253 static void
254 sh5_compact_extract_sfmt_andb_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
255 static void
256 sh5_compact_extract_sfmt_bf_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
257 static void
258 sh5_compact_extract_sfmt_bfs_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
259 static void
260 sh5_compact_extract_sfmt_bra_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
261 static void
262 sh5_compact_extract_sfmt_braf_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
263 static void
264 sh5_compact_extract_sfmt_brk_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
265 static void
266 sh5_compact_extract_sfmt_bsr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
267 static void
268 sh5_compact_extract_sfmt_bsrf_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
269 static void
270 sh5_compact_extract_sfmt_clrmac_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
271 static void
272 sh5_compact_extract_sfmt_clrs_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
273 static void
274 sh5_compact_extract_sfmt_clrt_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
275 static void
276 sh5_compact_extract_sfmt_cmpeq_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
277 static void
278 sh5_compact_extract_sfmt_cmpeqi_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
279 static void
280 sh5_compact_extract_sfmt_cmppl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
281 static void
282 sh5_compact_extract_sfmt_div0s_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
283 static void
284 sh5_compact_extract_sfmt_div0u_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
285 static void
286 sh5_compact_extract_sfmt_div1_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
287 static void
288 sh5_compact_extract_sfmt_divu_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
289 static void
290 sh5_compact_extract_sfmt_dmulsl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
291 static void
292 sh5_compact_extract_sfmt_dt_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
293 static void
294 sh5_compact_extract_sfmt_extsb_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
295 static void
296 sh5_compact_extract_sfmt_fabs_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
297 static void
298 sh5_compact_extract_sfmt_fadd_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
299 static void
300 sh5_compact_extract_sfmt_fcmpeq_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
301 static void
302 sh5_compact_extract_sfmt_fcnvds_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
303 static void
304 sh5_compact_extract_sfmt_fcnvsd_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
305 static void
306 sh5_compact_extract_sfmt_fipr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
307 static void
308 sh5_compact_extract_sfmt_flds_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
309 static void
310 sh5_compact_extract_sfmt_fldi0_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
311 static void
312 sh5_compact_extract_sfmt_float_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
313 static void
314 sh5_compact_extract_sfmt_fmac_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
315 static void
316 sh5_compact_extract_sfmt_fmov1_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
317 static void
318 sh5_compact_extract_sfmt_fmov2_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
319 static void
320 sh5_compact_extract_sfmt_fmov3_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
321 static void
322 sh5_compact_extract_sfmt_fmov4_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
323 static void
324 sh5_compact_extract_sfmt_fmov5_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
325 static void
326 sh5_compact_extract_sfmt_fmov6_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
327 static void
328 sh5_compact_extract_sfmt_fmov7_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
329 static void
330 sh5_compact_extract_sfmt_fmov8_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
331 static void
332 sh5_compact_extract_sfmt_fmov9_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
333 static void
334 sh5_compact_extract_sfmt_frchg_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
335 static void
336 sh5_compact_extract_sfmt_fschg_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
337 static void
338 sh5_compact_extract_sfmt_fsts_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
339 static void
340 sh5_compact_extract_sfmt_ftrc_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
341 static void
342 sh5_compact_extract_sfmt_ftrv_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
343 static void
344 sh5_compact_extract_sfmt_ldc_gbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
345 static void
346 sh5_compact_extract_sfmt_ldc_vbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
347 static void
348 sh5_compact_extract_sfmt_ldc_sr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
349 static void
350 sh5_compact_extract_sfmt_ldcl_gbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
351 static void
352 sh5_compact_extract_sfmt_ldcl_vbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
353 static void
354 sh5_compact_extract_sfmt_lds_fpscr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
355 static void
356 sh5_compact_extract_sfmt_ldsl_fpscr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
357 static void
358 sh5_compact_extract_sfmt_lds_fpul_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
359 static void
360 sh5_compact_extract_sfmt_ldsl_fpul_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
361 static void
362 sh5_compact_extract_sfmt_lds_mach_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
363 static void
364 sh5_compact_extract_sfmt_ldsl_mach_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
365 static void
366 sh5_compact_extract_sfmt_lds_macl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
367 static void
368 sh5_compact_extract_sfmt_ldsl_macl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
369 static void
370 sh5_compact_extract_sfmt_lds_pr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
371 static void
372 sh5_compact_extract_sfmt_ldsl_pr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
373 static void
374 sh5_compact_extract_sfmt_macl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
375 static void
376 sh5_compact_extract_sfmt_macw_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
377 static void
378 sh5_compact_extract_sfmt_mov_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
379 static void
380 sh5_compact_extract_sfmt_movi_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
381 static void
382 sh5_compact_extract_sfmt_movi20_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
383 static void
384 sh5_compact_extract_sfmt_movb1_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
385 static void
386 sh5_compact_extract_sfmt_movb2_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
387 static void
388 sh5_compact_extract_sfmt_movb3_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
389 static void
390 sh5_compact_extract_sfmt_movb4_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
391 static void
392 sh5_compact_extract_sfmt_movb5_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
393 static void
394 sh5_compact_extract_sfmt_movb6_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
395 static void
396 sh5_compact_extract_sfmt_movb7_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
397 static void
398 sh5_compact_extract_sfmt_movb8_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
399 static void
400 sh5_compact_extract_sfmt_movb9_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
401 static void
402 sh5_compact_extract_sfmt_movb10_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
403 static void
404 sh5_compact_extract_sfmt_movl1_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
405 static void
406 sh5_compact_extract_sfmt_movl2_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
407 static void
408 sh5_compact_extract_sfmt_movl3_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
409 static void
410 sh5_compact_extract_sfmt_movl4_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
411 static void
412 sh5_compact_extract_sfmt_movl5_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
413 static void
414 sh5_compact_extract_sfmt_movl6_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
415 static void
416 sh5_compact_extract_sfmt_movl7_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
417 static void
418 sh5_compact_extract_sfmt_movl8_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
419 static void
420 sh5_compact_extract_sfmt_movl9_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
421 static void
422 sh5_compact_extract_sfmt_movl10_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
423 static void
424 sh5_compact_extract_sfmt_movl11_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
425 static void
426 sh5_compact_extract_sfmt_movl12_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
427 static void
428 sh5_compact_extract_sfmt_movl13_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
429 static void
430 sh5_compact_extract_sfmt_movw1_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
431 static void
432 sh5_compact_extract_sfmt_movw2_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
433 static void
434 sh5_compact_extract_sfmt_movw3_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
435 static void
436 sh5_compact_extract_sfmt_movw4_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
437 static void
438 sh5_compact_extract_sfmt_movw5_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
439 static void
440 sh5_compact_extract_sfmt_movw6_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
441 static void
442 sh5_compact_extract_sfmt_movw7_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
443 static void
444 sh5_compact_extract_sfmt_movw8_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
445 static void
446 sh5_compact_extract_sfmt_movw9_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
447 static void
448 sh5_compact_extract_sfmt_movw10_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
449 static void
450 sh5_compact_extract_sfmt_movw11_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
451 static void
452 sh5_compact_extract_sfmt_mova_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
453 static void
454 sh5_compact_extract_sfmt_movcal_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
455 static void
456 sh5_compact_extract_sfmt_movcol_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
457 static void
458 sh5_compact_extract_sfmt_movt_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
459 static void
460 sh5_compact_extract_sfmt_movual_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
461 static void
462 sh5_compact_extract_sfmt_movual2_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
463 static void
464 sh5_compact_extract_sfmt_mull_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
465 static void
466 sh5_compact_extract_sfmt_negc_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
467 static void
468 sh5_compact_extract_sfmt_nop_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
469 static void
470 sh5_compact_extract_sfmt_pref_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
471 static void
472 sh5_compact_extract_sfmt_rotcl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
473 static void
474 sh5_compact_extract_sfmt_rts_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
475 static void
476 sh5_compact_extract_sfmt_shad_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
477 static void
478 sh5_compact_extract_sfmt_stc_gbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
479 static void
480 sh5_compact_extract_sfmt_stc_vbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
481 static void
482 sh5_compact_extract_sfmt_stcl_gbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
483 static void
484 sh5_compact_extract_sfmt_stcl_vbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
485 static void
486 sh5_compact_extract_sfmt_sts_fpscr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
487 static void
488 sh5_compact_extract_sfmt_stsl_fpscr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
489 static void
490 sh5_compact_extract_sfmt_sts_fpul_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
491 static void
492 sh5_compact_extract_sfmt_stsl_fpul_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
493 static void
494 sh5_compact_extract_sfmt_sts_mach_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
495 static void
496 sh5_compact_extract_sfmt_stsl_mach_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
497 static void
498 sh5_compact_extract_sfmt_sts_macl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
499 static void
500 sh5_compact_extract_sfmt_stsl_macl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
501 static void
502 sh5_compact_extract_sfmt_sts_pr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
503 static void
504 sh5_compact_extract_sfmt_stsl_pr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
505 static void
506 sh5_compact_extract_sfmt_tasb_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
507 static void
508 sh5_compact_extract_sfmt_trapa_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
509 static void
510 sh5_compact_extract_sfmt_tsti_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
511 static void
512 sh5_compact_extract_sfmt_tstb_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
513
514 // Fetch & decode instruction
515 void
516 sh5_compact_scache::decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn)
517 {
518   /* Result of decoder.  */
519   SH5_COMPACT_INSN_TYPE itype;
520
521   {
522     sh5_compact_insn_word insn = base_insn;
523
524     {
525       unsigned int val = (((insn >> 21) & (15 << 7)) | ((insn >> 16) & (127 << 0)));
526       switch (val)
527       {
528       case 0 : /* fall through */
529       case 16 : /* fall through */
530       case 32 : /* fall through */
531       case 48 : /* fall through */
532       case 64 : /* fall through */
533       case 80 : /* fall through */
534       case 96 : /* fall through */
535       case 112 : itype = SH5_COMPACT_INSN_MOVI20_COMPACT; sh5_compact_extract_sfmt_movi20_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
536       case 3 :
537         {
538           unsigned int val = (((insn >> 23) & (1 << 0)));
539           switch (val)
540           {
541           case 0 :
542             entire_insn = entire_insn >> 16;
543             itype = SH5_COMPACT_INSN_BSRF_COMPACT; sh5_compact_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
544           case 1 :
545             entire_insn = entire_insn >> 16;
546             itype = SH5_COMPACT_INSN_PREF_COMPACT; sh5_compact_extract_sfmt_pref_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
547           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
548           }
549         }
550       case 4 : /* fall through */
551       case 20 : /* fall through */
552       case 36 : /* fall through */
553       case 52 : /* fall through */
554       case 68 : /* fall through */
555       case 84 : /* fall through */
556       case 100 : /* fall through */
557       case 116 :
558         entire_insn = entire_insn >> 16;
559         itype = SH5_COMPACT_INSN_MOVB3_COMPACT; sh5_compact_extract_sfmt_movb3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
560       case 5 : /* fall through */
561       case 21 : /* fall through */
562       case 37 : /* fall through */
563       case 53 : /* fall through */
564       case 69 : /* fall through */
565       case 85 : /* fall through */
566       case 101 : /* fall through */
567       case 117 :
568         entire_insn = entire_insn >> 16;
569         itype = SH5_COMPACT_INSN_MOVW3_COMPACT; sh5_compact_extract_sfmt_movw3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
570       case 6 : /* fall through */
571       case 22 : /* fall through */
572       case 38 : /* fall through */
573       case 54 : /* fall through */
574       case 70 : /* fall through */
575       case 86 : /* fall through */
576       case 102 : /* fall through */
577       case 118 :
578         entire_insn = entire_insn >> 16;
579         itype = SH5_COMPACT_INSN_MOVL3_COMPACT; sh5_compact_extract_sfmt_movl3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
580       case 7 : /* fall through */
581       case 23 : /* fall through */
582       case 39 : /* fall through */
583       case 55 : /* fall through */
584       case 71 : /* fall through */
585       case 87 : /* fall through */
586       case 103 : /* fall through */
587       case 119 :
588         entire_insn = entire_insn >> 16;
589         itype = SH5_COMPACT_INSN_MULL_COMPACT; sh5_compact_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
590       case 8 :
591         entire_insn = entire_insn >> 16;
592         if ((entire_insn & 0xffff) == 0x8)
593           { itype = SH5_COMPACT_INSN_CLRT_COMPACT; sh5_compact_extract_sfmt_clrt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
594         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
595       case 9 :
596         entire_insn = entire_insn >> 16;
597         if ((entire_insn & 0xffff) == 0x9)
598           { itype = SH5_COMPACT_INSN_NOP_COMPACT; sh5_compact_extract_sfmt_nop_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
599         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
600       case 10 :
601         entire_insn = entire_insn >> 16;
602         if ((entire_insn & 0xf0ff) == 0xa)
603           { itype = SH5_COMPACT_INSN_STS_MACH_COMPACT; sh5_compact_extract_sfmt_sts_mach_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
604         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
605       case 11 :
606         entire_insn = entire_insn >> 16;
607         if ((entire_insn & 0xffff) == 0xb)
608           { itype = SH5_COMPACT_INSN_RTS_COMPACT; sh5_compact_extract_sfmt_rts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
609         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
610       case 12 : /* fall through */
611       case 28 : /* fall through */
612       case 44 : /* fall through */
613       case 60 : /* fall through */
614       case 76 : /* fall through */
615       case 92 : /* fall through */
616       case 108 : /* fall through */
617       case 124 :
618         entire_insn = entire_insn >> 16;
619         itype = SH5_COMPACT_INSN_MOVB8_COMPACT; sh5_compact_extract_sfmt_movb8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
620       case 13 : /* fall through */
621       case 29 : /* fall through */
622       case 45 : /* fall through */
623       case 61 : /* fall through */
624       case 77 : /* fall through */
625       case 93 : /* fall through */
626       case 109 : /* fall through */
627       case 125 :
628         entire_insn = entire_insn >> 16;
629         itype = SH5_COMPACT_INSN_MOVW8_COMPACT; sh5_compact_extract_sfmt_movw8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
630       case 14 : /* fall through */
631       case 30 : /* fall through */
632       case 46 : /* fall through */
633       case 62 : /* fall through */
634       case 78 : /* fall through */
635       case 94 : /* fall through */
636       case 110 : /* fall through */
637       case 126 :
638         entire_insn = entire_insn >> 16;
639         itype = SH5_COMPACT_INSN_MOVL8_COMPACT; sh5_compact_extract_sfmt_movl8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
640       case 15 : /* fall through */
641       case 31 : /* fall through */
642       case 47 : /* fall through */
643       case 63 : /* fall through */
644       case 79 : /* fall through */
645       case 95 : /* fall through */
646       case 111 : /* fall through */
647       case 127 :
648         entire_insn = entire_insn >> 16;
649         itype = SH5_COMPACT_INSN_MACL_COMPACT; sh5_compact_extract_sfmt_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
650       case 18 :
651         entire_insn = entire_insn >> 16;
652         if ((entire_insn & 0xf0ff) == 0x12)
653           { itype = SH5_COMPACT_INSN_STC_GBR_COMPACT; sh5_compact_extract_sfmt_stc_gbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
654         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
655       case 19 :
656         entire_insn = entire_insn >> 16;
657         if ((entire_insn & 0xf0ff) == 0x93)
658           { itype = SH5_COMPACT_INSN_OCBI_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
659         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
660       case 24 :
661         entire_insn = entire_insn >> 16;
662         if ((entire_insn & 0xffff) == 0x18)
663           { itype = SH5_COMPACT_INSN_SETT_COMPACT; sh5_compact_extract_sfmt_clrt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
664         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
665       case 25 :
666         entire_insn = entire_insn >> 16;
667         if ((entire_insn & 0xffff) == 0x19)
668           { itype = SH5_COMPACT_INSN_DIV0U_COMPACT; sh5_compact_extract_sfmt_div0u_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
669         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
670       case 26 :
671         entire_insn = entire_insn >> 16;
672         if ((entire_insn & 0xf0ff) == 0x1a)
673           { itype = SH5_COMPACT_INSN_STS_MACL_COMPACT; sh5_compact_extract_sfmt_sts_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
674         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
675       case 34 :
676         entire_insn = entire_insn >> 16;
677         if ((entire_insn & 0xf0ff) == 0x22)
678           { itype = SH5_COMPACT_INSN_STC_VBR_COMPACT; sh5_compact_extract_sfmt_stc_vbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
679         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
680       case 35 :
681         {
682           unsigned int val = (((insn >> 23) & (1 << 0)));
683           switch (val)
684           {
685           case 0 :
686             entire_insn = entire_insn >> 16;
687             itype = SH5_COMPACT_INSN_BRAF_COMPACT; sh5_compact_extract_sfmt_braf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
688           case 1 :
689             entire_insn = entire_insn >> 16;
690             itype = SH5_COMPACT_INSN_OCBP_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
691           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
692           }
693         }
694       case 40 :
695         entire_insn = entire_insn >> 16;
696         if ((entire_insn & 0xffff) == 0x28)
697           { itype = SH5_COMPACT_INSN_CLRMAC_COMPACT; sh5_compact_extract_sfmt_clrmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
698         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
699       case 41 :
700         entire_insn = entire_insn >> 16;
701         if ((entire_insn & 0xf0ff) == 0x29)
702           { itype = SH5_COMPACT_INSN_MOVT_COMPACT; sh5_compact_extract_sfmt_movt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
703         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
704       case 42 :
705         entire_insn = entire_insn >> 16;
706         if ((entire_insn & 0xf0ff) == 0x2a)
707           { itype = SH5_COMPACT_INSN_STS_PR_COMPACT; sh5_compact_extract_sfmt_sts_pr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
708         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
709       case 51 :
710         entire_insn = entire_insn >> 16;
711         if ((entire_insn & 0xf0ff) == 0xb3)
712           { itype = SH5_COMPACT_INSN_OCBWB_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
713         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
714       case 59 :
715         entire_insn = entire_insn >> 16;
716         if ((entire_insn & 0xffff) == 0x3b)
717           { itype = SH5_COMPACT_INSN_BRK_COMPACT; sh5_compact_extract_sfmt_brk_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
718         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
719       case 67 :
720         entire_insn = entire_insn >> 16;
721         if ((entire_insn & 0xf0ff) == 0xc3)
722           { itype = SH5_COMPACT_INSN_MOVCAL_COMPACT; sh5_compact_extract_sfmt_movcal_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
723         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
724       case 72 :
725         entire_insn = entire_insn >> 16;
726         if ((entire_insn & 0xffff) == 0x48)
727           { itype = SH5_COMPACT_INSN_CLRS_COMPACT; sh5_compact_extract_sfmt_clrs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
728         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
729       case 88 :
730         entire_insn = entire_insn >> 16;
731         if ((entire_insn & 0xffff) == 0x58)
732           { itype = SH5_COMPACT_INSN_SETS_COMPACT; sh5_compact_extract_sfmt_clrs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
733         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
734       case 90 :
735         entire_insn = entire_insn >> 16;
736         if ((entire_insn & 0xf0ff) == 0x5a)
737           { itype = SH5_COMPACT_INSN_STS_FPUL_COMPACT; sh5_compact_extract_sfmt_sts_fpul_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
738         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
739       case 106 :
740         entire_insn = entire_insn >> 16;
741         if ((entire_insn & 0xf0ff) == 0x6a)
742           { itype = SH5_COMPACT_INSN_STS_FPSCR_COMPACT; sh5_compact_extract_sfmt_sts_fpscr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
743         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
744       case 115 :
745         entire_insn = entire_insn >> 16;
746         if ((entire_insn & 0xf0ff) == 0x73)
747           { itype = SH5_COMPACT_INSN_MOVCOL_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
748         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
749       case 128 : /* fall through */
750       case 129 : /* fall through */
751       case 130 : /* fall through */
752       case 131 : /* fall through */
753       case 132 : /* fall through */
754       case 133 : /* fall through */
755       case 134 : /* fall through */
756       case 135 : /* fall through */
757       case 136 : /* fall through */
758       case 137 : /* fall through */
759       case 138 : /* fall through */
760       case 139 : /* fall through */
761       case 140 : /* fall through */
762       case 141 : /* fall through */
763       case 142 : /* fall through */
764       case 143 : /* fall through */
765       case 144 : /* fall through */
766       case 145 : /* fall through */
767       case 146 : /* fall through */
768       case 147 : /* fall through */
769       case 148 : /* fall through */
770       case 149 : /* fall through */
771       case 150 : /* fall through */
772       case 151 : /* fall through */
773       case 152 : /* fall through */
774       case 153 : /* fall through */
775       case 154 : /* fall through */
776       case 155 : /* fall through */
777       case 156 : /* fall through */
778       case 157 : /* fall through */
779       case 158 : /* fall through */
780       case 159 : /* fall through */
781       case 160 : /* fall through */
782       case 161 : /* fall through */
783       case 162 : /* fall through */
784       case 163 : /* fall through */
785       case 164 : /* fall through */
786       case 165 : /* fall through */
787       case 166 : /* fall through */
788       case 167 : /* fall through */
789       case 168 : /* fall through */
790       case 169 : /* fall through */
791       case 170 : /* fall through */
792       case 171 : /* fall through */
793       case 172 : /* fall through */
794       case 173 : /* fall through */
795       case 174 : /* fall through */
796       case 175 : /* fall through */
797       case 176 : /* fall through */
798       case 177 : /* fall through */
799       case 178 : /* fall through */
800       case 179 : /* fall through */
801       case 180 : /* fall through */
802       case 181 : /* fall through */
803       case 182 : /* fall through */
804       case 183 : /* fall through */
805       case 184 : /* fall through */
806       case 185 : /* fall through */
807       case 186 : /* fall through */
808       case 187 : /* fall through */
809       case 188 : /* fall through */
810       case 189 : /* fall through */
811       case 190 : /* fall through */
812       case 191 : /* fall through */
813       case 192 : /* fall through */
814       case 193 : /* fall through */
815       case 194 : /* fall through */
816       case 195 : /* fall through */
817       case 196 : /* fall through */
818       case 197 : /* fall through */
819       case 198 : /* fall through */
820       case 199 : /* fall through */
821       case 200 : /* fall through */
822       case 201 : /* fall through */
823       case 202 : /* fall through */
824       case 203 : /* fall through */
825       case 204 : /* fall through */
826       case 205 : /* fall through */
827       case 206 : /* fall through */
828       case 207 : /* fall through */
829       case 208 : /* fall through */
830       case 209 : /* fall through */
831       case 210 : /* fall through */
832       case 211 : /* fall through */
833       case 212 : /* fall through */
834       case 213 : /* fall through */
835       case 214 : /* fall through */
836       case 215 : /* fall through */
837       case 216 : /* fall through */
838       case 217 : /* fall through */
839       case 218 : /* fall through */
840       case 219 : /* fall through */
841       case 220 : /* fall through */
842       case 221 : /* fall through */
843       case 222 : /* fall through */
844       case 223 : /* fall through */
845       case 224 : /* fall through */
846       case 225 : /* fall through */
847       case 226 : /* fall through */
848       case 227 : /* fall through */
849       case 228 : /* fall through */
850       case 229 : /* fall through */
851       case 230 : /* fall through */
852       case 231 : /* fall through */
853       case 232 : /* fall through */
854       case 233 : /* fall through */
855       case 234 : /* fall through */
856       case 235 : /* fall through */
857       case 236 : /* fall through */
858       case 237 : /* fall through */
859       case 238 : /* fall through */
860       case 239 : /* fall through */
861       case 240 : /* fall through */
862       case 241 : /* fall through */
863       case 242 : /* fall through */
864       case 243 : /* fall through */
865       case 244 : /* fall through */
866       case 245 : /* fall through */
867       case 246 : /* fall through */
868       case 247 : /* fall through */
869       case 248 : /* fall through */
870       case 249 : /* fall through */
871       case 250 : /* fall through */
872       case 251 : /* fall through */
873       case 252 : /* fall through */
874       case 253 : /* fall through */
875       case 254 : /* fall through */
876       case 255 :
877         entire_insn = entire_insn >> 16;
878         itype = SH5_COMPACT_INSN_MOVL5_COMPACT; sh5_compact_extract_sfmt_movl5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
879       case 256 : /* fall through */
880       case 272 : /* fall through */
881       case 288 : /* fall through */
882       case 304 : /* fall through */
883       case 320 : /* fall through */
884       case 336 : /* fall through */
885       case 352 : /* fall through */
886       case 368 :
887         entire_insn = entire_insn >> 16;
888         itype = SH5_COMPACT_INSN_MOVB1_COMPACT; sh5_compact_extract_sfmt_movb1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
889       case 257 : /* fall through */
890       case 273 : /* fall through */
891       case 289 : /* fall through */
892       case 305 : /* fall through */
893       case 321 : /* fall through */
894       case 337 : /* fall through */
895       case 353 : /* fall through */
896       case 369 :
897         entire_insn = entire_insn >> 16;
898         itype = SH5_COMPACT_INSN_MOVW1_COMPACT; sh5_compact_extract_sfmt_movw1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
899       case 258 : /* fall through */
900       case 274 : /* fall through */
901       case 290 : /* fall through */
902       case 306 : /* fall through */
903       case 322 : /* fall through */
904       case 338 : /* fall through */
905       case 354 : /* fall through */
906       case 370 :
907         entire_insn = entire_insn >> 16;
908         itype = SH5_COMPACT_INSN_MOVL1_COMPACT; sh5_compact_extract_sfmt_movl1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
909       case 260 : /* fall through */
910       case 276 : /* fall through */
911       case 292 : /* fall through */
912       case 308 : /* fall through */
913       case 324 : /* fall through */
914       case 340 : /* fall through */
915       case 356 : /* fall through */
916       case 372 :
917         entire_insn = entire_insn >> 16;
918         itype = SH5_COMPACT_INSN_MOVB2_COMPACT; sh5_compact_extract_sfmt_movb2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
919       case 261 : /* fall through */
920       case 277 : /* fall through */
921       case 293 : /* fall through */
922       case 309 : /* fall through */
923       case 325 : /* fall through */
924       case 341 : /* fall through */
925       case 357 : /* fall through */
926       case 373 :
927         entire_insn = entire_insn >> 16;
928         itype = SH5_COMPACT_INSN_MOVW2_COMPACT; sh5_compact_extract_sfmt_movw2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
929       case 262 : /* fall through */
930       case 278 : /* fall through */
931       case 294 : /* fall through */
932       case 310 : /* fall through */
933       case 326 : /* fall through */
934       case 342 : /* fall through */
935       case 358 : /* fall through */
936       case 374 :
937         entire_insn = entire_insn >> 16;
938         itype = SH5_COMPACT_INSN_MOVL2_COMPACT; sh5_compact_extract_sfmt_movl2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
939       case 263 : /* fall through */
940       case 279 : /* fall through */
941       case 295 : /* fall through */
942       case 311 : /* fall through */
943       case 327 : /* fall through */
944       case 343 : /* fall through */
945       case 359 : /* fall through */
946       case 375 :
947         entire_insn = entire_insn >> 16;
948         itype = SH5_COMPACT_INSN_DIV0S_COMPACT; sh5_compact_extract_sfmt_div0s_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
949       case 264 : /* fall through */
950       case 280 : /* fall through */
951       case 296 : /* fall through */
952       case 312 : /* fall through */
953       case 328 : /* fall through */
954       case 344 : /* fall through */
955       case 360 : /* fall through */
956       case 376 :
957         entire_insn = entire_insn >> 16;
958         itype = SH5_COMPACT_INSN_TST_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
959       case 265 : /* fall through */
960       case 281 : /* fall through */
961       case 297 : /* fall through */
962       case 313 : /* fall through */
963       case 329 : /* fall through */
964       case 345 : /* fall through */
965       case 361 : /* fall through */
966       case 377 :
967         entire_insn = entire_insn >> 16;
968         itype = SH5_COMPACT_INSN_AND_COMPACT; sh5_compact_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
969       case 266 : /* fall through */
970       case 282 : /* fall through */
971       case 298 : /* fall through */
972       case 314 : /* fall through */
973       case 330 : /* fall through */
974       case 346 : /* fall through */
975       case 362 : /* fall through */
976       case 378 :
977         entire_insn = entire_insn >> 16;
978         itype = SH5_COMPACT_INSN_XOR_COMPACT; sh5_compact_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
979       case 267 : /* fall through */
980       case 283 : /* fall through */
981       case 299 : /* fall through */
982       case 315 : /* fall through */
983       case 331 : /* fall through */
984       case 347 : /* fall through */
985       case 363 : /* fall through */
986       case 379 :
987         entire_insn = entire_insn >> 16;
988         itype = SH5_COMPACT_INSN_OR_COMPACT; sh5_compact_extract_sfmt_and_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
989       case 268 : /* fall through */
990       case 284 : /* fall through */
991       case 300 : /* fall through */
992       case 316 : /* fall through */
993       case 332 : /* fall through */
994       case 348 : /* fall through */
995       case 364 : /* fall through */
996       case 380 :
997         entire_insn = entire_insn >> 16;
998         itype = SH5_COMPACT_INSN_CMPSTR_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
999       case 269 : /* fall through */
1000       case 285 : /* fall through */
1001       case 301 : /* fall through */
1002       case 317 : /* fall through */
1003       case 333 : /* fall through */
1004       case 349 : /* fall through */
1005       case 365 : /* fall through */
1006       case 381 :
1007         entire_insn = entire_insn >> 16;
1008         itype = SH5_COMPACT_INSN_XTRCT_COMPACT; sh5_compact_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1009       case 270 : /* fall through */
1010       case 286 : /* fall through */
1011       case 302 : /* fall through */
1012       case 318 : /* fall through */
1013       case 334 : /* fall through */
1014       case 350 : /* fall through */
1015       case 366 : /* fall through */
1016       case 382 :
1017         entire_insn = entire_insn >> 16;
1018         itype = SH5_COMPACT_INSN_MULUW_COMPACT; sh5_compact_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1019       case 271 : /* fall through */
1020       case 287 : /* fall through */
1021       case 303 : /* fall through */
1022       case 319 : /* fall through */
1023       case 335 : /* fall through */
1024       case 351 : /* fall through */
1025       case 367 : /* fall through */
1026       case 383 :
1027         entire_insn = entire_insn >> 16;
1028         itype = SH5_COMPACT_INSN_MULSW_COMPACT; sh5_compact_extract_sfmt_mull_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1029       case 384 : /* fall through */
1030       case 400 : /* fall through */
1031       case 416 : /* fall through */
1032       case 432 : /* fall through */
1033       case 448 : /* fall through */
1034       case 464 : /* fall through */
1035       case 480 : /* fall through */
1036       case 496 :
1037         entire_insn = entire_insn >> 16;
1038         itype = SH5_COMPACT_INSN_CMPEQ_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1039       case 385 : /* fall through */
1040       case 417 : /* fall through */
1041       case 449 : /* fall through */
1042       case 481 :
1043         {
1044           unsigned int val = (((insn >> 13) & (1 << 1)) | ((insn >> 12) & (1 << 0)));
1045           switch (val)
1046           {
1047           case 0 :
1048             if ((entire_insn & 0xf00ff000) == 0x30012000)
1049               { itype = SH5_COMPACT_INSN_MOVL13_COMPACT; sh5_compact_extract_sfmt_movl13_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1050             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1051           case 1 :
1052             if ((entire_insn & 0xf01ff000) == 0x30013000)
1053               { itype = SH5_COMPACT_INSN_FMOV9_COMPACT; sh5_compact_extract_sfmt_fmov9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1054             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1055           case 2 :
1056             if ((entire_insn & 0xf00ff000) == 0x30016000)
1057               { itype = SH5_COMPACT_INSN_MOVL12_COMPACT; sh5_compact_extract_sfmt_movl12_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1058             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1059           case 3 :
1060             if ((entire_insn & 0xf10ff000) == 0x30017000)
1061               { itype = SH5_COMPACT_INSN_FMOV8_COMPACT; sh5_compact_extract_sfmt_fmov8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1062             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1063           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1064           }
1065         }
1066       case 386 : /* fall through */
1067       case 402 : /* fall through */
1068       case 418 : /* fall through */
1069       case 434 : /* fall through */
1070       case 450 : /* fall through */
1071       case 466 : /* fall through */
1072       case 482 : /* fall through */
1073       case 498 :
1074         entire_insn = entire_insn >> 16;
1075         itype = SH5_COMPACT_INSN_CMPHS_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1076       case 387 : /* fall through */
1077       case 403 : /* fall through */
1078       case 419 : /* fall through */
1079       case 435 : /* fall through */
1080       case 451 : /* fall through */
1081       case 467 : /* fall through */
1082       case 483 : /* fall through */
1083       case 499 :
1084         entire_insn = entire_insn >> 16;
1085         itype = SH5_COMPACT_INSN_CMPGE_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1086       case 388 : /* fall through */
1087       case 404 : /* fall through */
1088       case 420 : /* fall through */
1089       case 436 : /* fall through */
1090       case 452 : /* fall through */
1091       case 468 : /* fall through */
1092       case 484 : /* fall through */
1093       case 500 :
1094         entire_insn = entire_insn >> 16;
1095         itype = SH5_COMPACT_INSN_DIV1_COMPACT; sh5_compact_extract_sfmt_div1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1096       case 389 : /* fall through */
1097       case 405 : /* fall through */
1098       case 421 : /* fall through */
1099       case 437 : /* fall through */
1100       case 453 : /* fall through */
1101       case 469 : /* fall through */
1102       case 485 : /* fall through */
1103       case 501 :
1104         entire_insn = entire_insn >> 16;
1105         itype = SH5_COMPACT_INSN_DMULUL_COMPACT; sh5_compact_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1106       case 390 : /* fall through */
1107       case 406 : /* fall through */
1108       case 422 : /* fall through */
1109       case 438 : /* fall through */
1110       case 454 : /* fall through */
1111       case 470 : /* fall through */
1112       case 486 : /* fall through */
1113       case 502 :
1114         entire_insn = entire_insn >> 16;
1115         itype = SH5_COMPACT_INSN_CMPHI_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1116       case 391 : /* fall through */
1117       case 407 : /* fall through */
1118       case 423 : /* fall through */
1119       case 439 : /* fall through */
1120       case 455 : /* fall through */
1121       case 471 : /* fall through */
1122       case 487 : /* fall through */
1123       case 503 :
1124         entire_insn = entire_insn >> 16;
1125         itype = SH5_COMPACT_INSN_CMPGT_COMPACT; sh5_compact_extract_sfmt_cmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1126       case 392 : /* fall through */
1127       case 408 : /* fall through */
1128       case 424 : /* fall through */
1129       case 440 : /* fall through */
1130       case 456 : /* fall through */
1131       case 472 : /* fall through */
1132       case 488 : /* fall through */
1133       case 504 :
1134         entire_insn = entire_insn >> 16;
1135         itype = SH5_COMPACT_INSN_SUB_COMPACT; sh5_compact_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1136       case 394 : /* fall through */
1137       case 410 : /* fall through */
1138       case 426 : /* fall through */
1139       case 442 : /* fall through */
1140       case 458 : /* fall through */
1141       case 474 : /* fall through */
1142       case 490 : /* fall through */
1143       case 506 :
1144         entire_insn = entire_insn >> 16;
1145         itype = SH5_COMPACT_INSN_SUBC_COMPACT; sh5_compact_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1146       case 395 : /* fall through */
1147       case 411 : /* fall through */
1148       case 427 : /* fall through */
1149       case 443 : /* fall through */
1150       case 459 : /* fall through */
1151       case 475 : /* fall through */
1152       case 491 : /* fall through */
1153       case 507 :
1154         entire_insn = entire_insn >> 16;
1155         itype = SH5_COMPACT_INSN_SUBV_COMPACT; sh5_compact_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1156       case 396 : /* fall through */
1157       case 412 : /* fall through */
1158       case 428 : /* fall through */
1159       case 444 : /* fall through */
1160       case 460 : /* fall through */
1161       case 476 : /* fall through */
1162       case 492 : /* fall through */
1163       case 508 :
1164         entire_insn = entire_insn >> 16;
1165         itype = SH5_COMPACT_INSN_ADD_COMPACT; sh5_compact_extract_sfmt_add_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1166       case 397 : /* fall through */
1167       case 413 : /* fall through */
1168       case 429 : /* fall through */
1169       case 445 : /* fall through */
1170       case 461 : /* fall through */
1171       case 477 : /* fall through */
1172       case 493 : /* fall through */
1173       case 509 :
1174         entire_insn = entire_insn >> 16;
1175         itype = SH5_COMPACT_INSN_DMULSL_COMPACT; sh5_compact_extract_sfmt_dmulsl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1176       case 398 : /* fall through */
1177       case 414 : /* fall through */
1178       case 430 : /* fall through */
1179       case 446 : /* fall through */
1180       case 462 : /* fall through */
1181       case 478 : /* fall through */
1182       case 494 : /* fall through */
1183       case 510 :
1184         entire_insn = entire_insn >> 16;
1185         itype = SH5_COMPACT_INSN_ADDC_COMPACT; sh5_compact_extract_sfmt_addc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1186       case 399 : /* fall through */
1187       case 415 : /* fall through */
1188       case 431 : /* fall through */
1189       case 447 : /* fall through */
1190       case 463 : /* fall through */
1191       case 479 : /* fall through */
1192       case 495 : /* fall through */
1193       case 511 :
1194         entire_insn = entire_insn >> 16;
1195         itype = SH5_COMPACT_INSN_ADDV_COMPACT; sh5_compact_extract_sfmt_addv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1196       case 401 : /* fall through */
1197       case 433 : /* fall through */
1198       case 465 : /* fall through */
1199       case 497 :
1200         {
1201           unsigned int val = (((insn >> 13) & (1 << 1)) | ((insn >> 12) & (1 << 0)));
1202           switch (val)
1203           {
1204           case 0 :
1205             if ((entire_insn & 0xf00ff000) == 0x30012000)
1206               { itype = SH5_COMPACT_INSN_MOVL13_COMPACT; sh5_compact_extract_sfmt_movl13_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1207             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1208           case 2 :
1209             if ((entire_insn & 0xf00ff000) == 0x30016000)
1210               { itype = SH5_COMPACT_INSN_MOVL12_COMPACT; sh5_compact_extract_sfmt_movl12_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1211             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1212           case 3 :
1213             if ((entire_insn & 0xf10ff000) == 0x30017000)
1214               { itype = SH5_COMPACT_INSN_FMOV8_COMPACT; sh5_compact_extract_sfmt_fmov8_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1215             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1216           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1217           }
1218         }
1219       case 512 :
1220         {
1221           unsigned int val = (((insn >> 23) & (1 << 0)));
1222           switch (val)
1223           {
1224           case 0 :
1225             entire_insn = entire_insn >> 16;
1226             itype = SH5_COMPACT_INSN_SHLL_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1227           case 1 :
1228             entire_insn = entire_insn >> 16;
1229             itype = SH5_COMPACT_INSN_MULR_COMPACT; sh5_compact_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1230           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1231           }
1232         }
1233       case 513 :
1234         entire_insn = entire_insn >> 16;
1235         if ((entire_insn & 0xf0ff) == 0x4001)
1236           { itype = SH5_COMPACT_INSN_SHLR_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1237         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1238       case 514 :
1239         entire_insn = entire_insn >> 16;
1240         if ((entire_insn & 0xf0ff) == 0x4002)
1241           { itype = SH5_COMPACT_INSN_STSL_MACH_COMPACT; sh5_compact_extract_sfmt_stsl_mach_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1242         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1243       case 516 :
1244         {
1245           unsigned int val = (((insn >> 23) & (1 << 0)));
1246           switch (val)
1247           {
1248           case 0 :
1249             entire_insn = entire_insn >> 16;
1250             itype = SH5_COMPACT_INSN_ROTL_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1251           case 1 :
1252             entire_insn = entire_insn >> 16;
1253             itype = SH5_COMPACT_INSN_DIVU_COMPACT; sh5_compact_extract_sfmt_divu_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1254           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1255           }
1256         }
1257       case 517 :
1258         entire_insn = entire_insn >> 16;
1259         if ((entire_insn & 0xf0ff) == 0x4005)
1260           { itype = SH5_COMPACT_INSN_ROTR_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1261         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1262       case 518 :
1263         entire_insn = entire_insn >> 16;
1264         if ((entire_insn & 0xf0ff) == 0x4006)
1265           { itype = SH5_COMPACT_INSN_LDSL_MACH_COMPACT; sh5_compact_extract_sfmt_ldsl_mach_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1266         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1267       case 520 :
1268         entire_insn = entire_insn >> 16;
1269         if ((entire_insn & 0xf0ff) == 0x4008)
1270           { itype = SH5_COMPACT_INSN_SHLL2_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1271         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1272       case 521 :
1273         entire_insn = entire_insn >> 16;
1274         if ((entire_insn & 0xf0ff) == 0x4009)
1275           { itype = SH5_COMPACT_INSN_SHLR2_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1276         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1277       case 522 :
1278         entire_insn = entire_insn >> 16;
1279         if ((entire_insn & 0xf0ff) == 0x400a)
1280           { itype = SH5_COMPACT_INSN_LDS_MACH_COMPACT; sh5_compact_extract_sfmt_lds_mach_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1281         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1282       case 523 :
1283         entire_insn = entire_insn >> 16;
1284         if ((entire_insn & 0xf0ff) == 0x400b)
1285           { itype = SH5_COMPACT_INSN_JSR_COMPACT; sh5_compact_extract_sfmt_bsrf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1286         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1287       case 524 : /* fall through */
1288       case 540 : /* fall through */
1289       case 556 : /* fall through */
1290       case 572 : /* fall through */
1291       case 588 : /* fall through */
1292       case 604 : /* fall through */
1293       case 620 : /* fall through */
1294       case 636 :
1295         entire_insn = entire_insn >> 16;
1296         itype = SH5_COMPACT_INSN_SHAD_COMPACT; sh5_compact_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1297       case 525 : /* fall through */
1298       case 541 : /* fall through */
1299       case 557 : /* fall through */
1300       case 573 : /* fall through */
1301       case 589 : /* fall through */
1302       case 605 : /* fall through */
1303       case 621 : /* fall through */
1304       case 637 :
1305         entire_insn = entire_insn >> 16;
1306         itype = SH5_COMPACT_INSN_SHLD_COMPACT; sh5_compact_extract_sfmt_shad_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1307       case 526 :
1308         entire_insn = entire_insn >> 16;
1309         if ((entire_insn & 0xf0ff) == 0x400e)
1310           { itype = SH5_COMPACT_INSN_LDC_SR_COMPACT; sh5_compact_extract_sfmt_ldc_sr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1311         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1312       case 527 : /* fall through */
1313       case 543 : /* fall through */
1314       case 559 : /* fall through */
1315       case 575 : /* fall through */
1316       case 591 : /* fall through */
1317       case 607 : /* fall through */
1318       case 623 : /* fall through */
1319       case 639 :
1320         entire_insn = entire_insn >> 16;
1321         itype = SH5_COMPACT_INSN_MACW_COMPACT; sh5_compact_extract_sfmt_macw_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1322       case 528 :
1323         entire_insn = entire_insn >> 16;
1324         if ((entire_insn & 0xf0ff) == 0x4010)
1325           { itype = SH5_COMPACT_INSN_DT_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1326         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1327       case 529 :
1328         entire_insn = entire_insn >> 16;
1329         if ((entire_insn & 0xf0ff) == 0x4011)
1330           { itype = SH5_COMPACT_INSN_CMPPZ_COMPACT; sh5_compact_extract_sfmt_cmppl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1331         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1332       case 530 :
1333         entire_insn = entire_insn >> 16;
1334         if ((entire_insn & 0xf0ff) == 0x4012)
1335           { itype = SH5_COMPACT_INSN_STSL_MACL_COMPACT; sh5_compact_extract_sfmt_stsl_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1336         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1337       case 531 :
1338         entire_insn = entire_insn >> 16;
1339         if ((entire_insn & 0xf0ff) == 0x4013)
1340           { itype = SH5_COMPACT_INSN_STCL_GBR_COMPACT; sh5_compact_extract_sfmt_stcl_gbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1341         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1342       case 533 :
1343         entire_insn = entire_insn >> 16;
1344         if ((entire_insn & 0xf0ff) == 0x4015)
1345           { itype = SH5_COMPACT_INSN_CMPPL_COMPACT; sh5_compact_extract_sfmt_cmppl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1346         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1347       case 534 :
1348         entire_insn = entire_insn >> 16;
1349         if ((entire_insn & 0xf0ff) == 0x4016)
1350           { itype = SH5_COMPACT_INSN_LDSL_MACL_COMPACT; sh5_compact_extract_sfmt_ldsl_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1351         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1352       case 535 :
1353         entire_insn = entire_insn >> 16;
1354         if ((entire_insn & 0xf0ff) == 0x4017)
1355           { itype = SH5_COMPACT_INSN_LDCL_GBR_COMPACT; sh5_compact_extract_sfmt_ldcl_gbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1356         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1357       case 536 :
1358         entire_insn = entire_insn >> 16;
1359         if ((entire_insn & 0xf0ff) == 0x4018)
1360           { itype = SH5_COMPACT_INSN_SHLL8_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1361         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1362       case 537 :
1363         entire_insn = entire_insn >> 16;
1364         if ((entire_insn & 0xf0ff) == 0x4019)
1365           { itype = SH5_COMPACT_INSN_SHLR8_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1366         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1367       case 538 :
1368         entire_insn = entire_insn >> 16;
1369         if ((entire_insn & 0xf0ff) == 0x401a)
1370           { itype = SH5_COMPACT_INSN_LDS_MACL_COMPACT; sh5_compact_extract_sfmt_lds_macl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1371         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1372       case 539 :
1373         entire_insn = entire_insn >> 16;
1374         if ((entire_insn & 0xf0ff) == 0x401b)
1375           { itype = SH5_COMPACT_INSN_TASB_COMPACT; sh5_compact_extract_sfmt_tasb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1376         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1377       case 542 :
1378         entire_insn = entire_insn >> 16;
1379         if ((entire_insn & 0xf0ff) == 0x401e)
1380           { itype = SH5_COMPACT_INSN_LDC_GBR_COMPACT; sh5_compact_extract_sfmt_ldc_gbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1381         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1382       case 544 :
1383         entire_insn = entire_insn >> 16;
1384         if ((entire_insn & 0xf0ff) == 0x4020)
1385           { itype = SH5_COMPACT_INSN_SHAL_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1386         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1387       case 545 :
1388         entire_insn = entire_insn >> 16;
1389         if ((entire_insn & 0xf0ff) == 0x4021)
1390           { itype = SH5_COMPACT_INSN_SHAR_COMPACT; sh5_compact_extract_sfmt_dt_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1391         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1392       case 546 :
1393         entire_insn = entire_insn >> 16;
1394         if ((entire_insn & 0xf0ff) == 0x4022)
1395           { itype = SH5_COMPACT_INSN_STSL_PR_COMPACT; sh5_compact_extract_sfmt_stsl_pr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1396         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1397       case 547 :
1398         entire_insn = entire_insn >> 16;
1399         if ((entire_insn & 0xf0ff) == 0x4023)
1400           { itype = SH5_COMPACT_INSN_STCL_VBR_COMPACT; sh5_compact_extract_sfmt_stcl_vbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1401         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1402       case 548 :
1403         entire_insn = entire_insn >> 16;
1404         if ((entire_insn & 0xf0ff) == 0x4024)
1405           { itype = SH5_COMPACT_INSN_ROTCL_COMPACT; sh5_compact_extract_sfmt_rotcl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1406         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1407       case 549 :
1408         entire_insn = entire_insn >> 16;
1409         if ((entire_insn & 0xf0ff) == 0x4025)
1410           { itype = SH5_COMPACT_INSN_ROTCR_COMPACT; sh5_compact_extract_sfmt_rotcl_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1411         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1412       case 550 :
1413         entire_insn = entire_insn >> 16;
1414         if ((entire_insn & 0xf0ff) == 0x4026)
1415           { itype = SH5_COMPACT_INSN_LDSL_PR_COMPACT; sh5_compact_extract_sfmt_ldsl_pr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1416         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1417       case 551 :
1418         entire_insn = entire_insn >> 16;
1419         if ((entire_insn & 0xf0ff) == 0x4027)
1420           { itype = SH5_COMPACT_INSN_LDCL_VBR_COMPACT; sh5_compact_extract_sfmt_ldcl_vbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1421         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1422       case 552 :
1423         entire_insn = entire_insn >> 16;
1424         if ((entire_insn & 0xf0ff) == 0x4028)
1425           { itype = SH5_COMPACT_INSN_SHLL16_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1426         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1427       case 553 :
1428         {
1429           unsigned int val = (((insn >> 23) & (1 << 0)));
1430           switch (val)
1431           {
1432           case 0 :
1433             entire_insn = entire_insn >> 16;
1434             itype = SH5_COMPACT_INSN_SHLR16_COMPACT; sh5_compact_extract_sfmt_movcol_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1435           case 1 :
1436             entire_insn = entire_insn >> 16;
1437             itype = SH5_COMPACT_INSN_MOVUAL_COMPACT; sh5_compact_extract_sfmt_movual_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1438           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1439           }
1440         }
1441       case 554 :
1442         entire_insn = entire_insn >> 16;
1443         if ((entire_insn & 0xf0ff) == 0x402a)
1444           { itype = SH5_COMPACT_INSN_LDS_PR_COMPACT; sh5_compact_extract_sfmt_lds_pr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1445         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1446       case 555 :
1447         entire_insn = entire_insn >> 16;
1448         if ((entire_insn & 0xf0ff) == 0x402b)
1449           { itype = SH5_COMPACT_INSN_JMP_COMPACT; sh5_compact_extract_sfmt_braf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1450         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1451       case 558 :
1452         entire_insn = entire_insn >> 16;
1453         if ((entire_insn & 0xf0ff) == 0x402e)
1454           { itype = SH5_COMPACT_INSN_LDC_VBR_COMPACT; sh5_compact_extract_sfmt_ldc_vbr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1455         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1456       case 594 :
1457         entire_insn = entire_insn >> 16;
1458         if ((entire_insn & 0xf0ff) == 0x4052)
1459           { itype = SH5_COMPACT_INSN_STSL_FPUL_COMPACT; sh5_compact_extract_sfmt_stsl_fpul_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1460         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1461       case 598 :
1462         entire_insn = entire_insn >> 16;
1463         if ((entire_insn & 0xf0ff) == 0x4056)
1464           { itype = SH5_COMPACT_INSN_LDSL_FPUL_COMPACT; sh5_compact_extract_sfmt_ldsl_fpul_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1465         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1466       case 602 :
1467         entire_insn = entire_insn >> 16;
1468         if ((entire_insn & 0xf0ff) == 0x405a)
1469           { itype = SH5_COMPACT_INSN_LDS_FPUL_COMPACT; sh5_compact_extract_sfmt_lds_fpul_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1470         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1471       case 610 :
1472         entire_insn = entire_insn >> 16;
1473         if ((entire_insn & 0xf0ff) == 0x4062)
1474           { itype = SH5_COMPACT_INSN_STSL_FPSCR_COMPACT; sh5_compact_extract_sfmt_stsl_fpscr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1475         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1476       case 614 :
1477         entire_insn = entire_insn >> 16;
1478         if ((entire_insn & 0xf0ff) == 0x4066)
1479           { itype = SH5_COMPACT_INSN_LDSL_FPSCR_COMPACT; sh5_compact_extract_sfmt_ldsl_fpscr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1480         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1481       case 617 :
1482         entire_insn = entire_insn >> 16;
1483         if ((entire_insn & 0xf0ff) == 0x40e9)
1484           { itype = SH5_COMPACT_INSN_MOVUAL2_COMPACT; sh5_compact_extract_sfmt_movual2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1485         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1486       case 618 :
1487         entire_insn = entire_insn >> 16;
1488         if ((entire_insn & 0xf0ff) == 0x406a)
1489           { itype = SH5_COMPACT_INSN_LDS_FPSCR_COMPACT; sh5_compact_extract_sfmt_lds_fpscr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
1490         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
1491       case 640 : /* fall through */
1492       case 641 : /* fall through */
1493       case 642 : /* fall through */
1494       case 643 : /* fall through */
1495       case 644 : /* fall through */
1496       case 645 : /* fall through */
1497       case 646 : /* fall through */
1498       case 647 : /* fall through */
1499       case 648 : /* fall through */
1500       case 649 : /* fall through */
1501       case 650 : /* fall through */
1502       case 651 : /* fall through */
1503       case 652 : /* fall through */
1504       case 653 : /* fall through */
1505       case 654 : /* fall through */
1506       case 655 : /* fall through */
1507       case 656 : /* fall through */
1508       case 657 : /* fall through */
1509       case 658 : /* fall through */
1510       case 659 : /* fall through */
1511       case 660 : /* fall through */
1512       case 661 : /* fall through */
1513       case 662 : /* fall through */
1514       case 663 : /* fall through */
1515       case 664 : /* fall through */
1516       case 665 : /* fall through */
1517       case 666 : /* fall through */
1518       case 667 : /* fall through */
1519       case 668 : /* fall through */
1520       case 669 : /* fall through */
1521       case 670 : /* fall through */
1522       case 671 : /* fall through */
1523       case 672 : /* fall through */
1524       case 673 : /* fall through */
1525       case 674 : /* fall through */
1526       case 675 : /* fall through */
1527       case 676 : /* fall through */
1528       case 677 : /* fall through */
1529       case 678 : /* fall through */
1530       case 679 : /* fall through */
1531       case 680 : /* fall through */
1532       case 681 : /* fall through */
1533       case 682 : /* fall through */
1534       case 683 : /* fall through */
1535       case 684 : /* fall through */
1536       case 685 : /* fall through */
1537       case 686 : /* fall through */
1538       case 687 : /* fall through */
1539       case 688 : /* fall through */
1540       case 689 : /* fall through */
1541       case 690 : /* fall through */
1542       case 691 : /* fall through */
1543       case 692 : /* fall through */
1544       case 693 : /* fall through */
1545       case 694 : /* fall through */
1546       case 695 : /* fall through */
1547       case 696 : /* fall through */
1548       case 697 : /* fall through */
1549       case 698 : /* fall through */
1550       case 699 : /* fall through */
1551       case 700 : /* fall through */
1552       case 701 : /* fall through */
1553       case 702 : /* fall through */
1554       case 703 : /* fall through */
1555       case 704 : /* fall through */
1556       case 705 : /* fall through */
1557       case 706 : /* fall through */
1558       case 707 : /* fall through */
1559       case 708 : /* fall through */
1560       case 709 : /* fall through */
1561       case 710 : /* fall through */
1562       case 711 : /* fall through */
1563       case 712 : /* fall through */
1564       case 713 : /* fall through */
1565       case 714 : /* fall through */
1566       case 715 : /* fall through */
1567       case 716 : /* fall through */
1568       case 717 : /* fall through */
1569       case 718 : /* fall through */
1570       case 719 : /* fall through */
1571       case 720 : /* fall through */
1572       case 721 : /* fall through */
1573       case 722 : /* fall through */
1574       case 723 : /* fall through */
1575       case 724 : /* fall through */
1576       case 725 : /* fall through */
1577       case 726 : /* fall through */
1578       case 727 : /* fall through */
1579       case 728 : /* fall through */
1580       case 729 : /* fall through */
1581       case 730 : /* fall through */
1582       case 731 : /* fall through */
1583       case 732 : /* fall through */
1584       case 733 : /* fall through */
1585       case 734 : /* fall through */
1586       case 735 : /* fall through */
1587       case 736 : /* fall through */
1588       case 737 : /* fall through */
1589       case 738 : /* fall through */
1590       case 739 : /* fall through */
1591       case 740 : /* fall through */
1592       case 741 : /* fall through */
1593       case 742 : /* fall through */
1594       case 743 : /* fall through */
1595       case 744 : /* fall through */
1596       case 745 : /* fall through */
1597       case 746 : /* fall through */
1598       case 747 : /* fall through */
1599       case 748 : /* fall through */
1600       case 749 : /* fall through */
1601       case 750 : /* fall through */
1602       case 751 : /* fall through */
1603       case 752 : /* fall through */
1604       case 753 : /* fall through */
1605       case 754 : /* fall through */
1606       case 755 : /* fall through */
1607       case 756 : /* fall through */
1608       case 757 : /* fall through */
1609       case 758 : /* fall through */
1610       case 759 : /* fall through */
1611       case 760 : /* fall through */
1612       case 761 : /* fall through */
1613       case 762 : /* fall through */
1614       case 763 : /* fall through */
1615       case 764 : /* fall through */
1616       case 765 : /* fall through */
1617       case 766 : /* fall through */
1618       case 767 :
1619         entire_insn = entire_insn >> 16;
1620         itype = SH5_COMPACT_INSN_MOVL11_COMPACT; sh5_compact_extract_sfmt_movl11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1621       case 768 : /* fall through */
1622       case 784 : /* fall through */
1623       case 800 : /* fall through */
1624       case 816 : /* fall through */
1625       case 832 : /* fall through */
1626       case 848 : /* fall through */
1627       case 864 : /* fall through */
1628       case 880 :
1629         entire_insn = entire_insn >> 16;
1630         itype = SH5_COMPACT_INSN_MOVB6_COMPACT; sh5_compact_extract_sfmt_movb6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1631       case 769 : /* fall through */
1632       case 785 : /* fall through */
1633       case 801 : /* fall through */
1634       case 817 : /* fall through */
1635       case 833 : /* fall through */
1636       case 849 : /* fall through */
1637       case 865 : /* fall through */
1638       case 881 :
1639         entire_insn = entire_insn >> 16;
1640         itype = SH5_COMPACT_INSN_MOVW6_COMPACT; sh5_compact_extract_sfmt_movw6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1641       case 770 : /* fall through */
1642       case 786 : /* fall through */
1643       case 802 : /* fall through */
1644       case 818 : /* fall through */
1645       case 834 : /* fall through */
1646       case 850 : /* fall through */
1647       case 866 : /* fall through */
1648       case 882 :
1649         entire_insn = entire_insn >> 16;
1650         itype = SH5_COMPACT_INSN_MOVL6_COMPACT; sh5_compact_extract_sfmt_movl6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1651       case 771 : /* fall through */
1652       case 787 : /* fall through */
1653       case 803 : /* fall through */
1654       case 819 : /* fall through */
1655       case 835 : /* fall through */
1656       case 851 : /* fall through */
1657       case 867 : /* fall through */
1658       case 883 :
1659         entire_insn = entire_insn >> 16;
1660         itype = SH5_COMPACT_INSN_MOV_COMPACT; sh5_compact_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1661       case 772 : /* fall through */
1662       case 788 : /* fall through */
1663       case 804 : /* fall through */
1664       case 820 : /* fall through */
1665       case 836 : /* fall through */
1666       case 852 : /* fall through */
1667       case 868 : /* fall through */
1668       case 884 :
1669         entire_insn = entire_insn >> 16;
1670         itype = SH5_COMPACT_INSN_MOVB7_COMPACT; sh5_compact_extract_sfmt_movb7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1671       case 773 : /* fall through */
1672       case 789 : /* fall through */
1673       case 805 : /* fall through */
1674       case 821 : /* fall through */
1675       case 837 : /* fall through */
1676       case 853 : /* fall through */
1677       case 869 : /* fall through */
1678       case 885 :
1679         entire_insn = entire_insn >> 16;
1680         itype = SH5_COMPACT_INSN_MOVW7_COMPACT; sh5_compact_extract_sfmt_movw7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1681       case 774 : /* fall through */
1682       case 790 : /* fall through */
1683       case 806 : /* fall through */
1684       case 822 : /* fall through */
1685       case 838 : /* fall through */
1686       case 854 : /* fall through */
1687       case 870 : /* fall through */
1688       case 886 :
1689         entire_insn = entire_insn >> 16;
1690         itype = SH5_COMPACT_INSN_MOVL7_COMPACT; sh5_compact_extract_sfmt_movl7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1691       case 775 : /* fall through */
1692       case 791 : /* fall through */
1693       case 807 : /* fall through */
1694       case 823 : /* fall through */
1695       case 839 : /* fall through */
1696       case 855 : /* fall through */
1697       case 871 : /* fall through */
1698       case 887 :
1699         entire_insn = entire_insn >> 16;
1700         itype = SH5_COMPACT_INSN_NOT_COMPACT; sh5_compact_extract_sfmt_mov_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1701       case 776 : /* fall through */
1702       case 792 : /* fall through */
1703       case 808 : /* fall through */
1704       case 824 : /* fall through */
1705       case 840 : /* fall through */
1706       case 856 : /* fall through */
1707       case 872 : /* fall through */
1708       case 888 :
1709         entire_insn = entire_insn >> 16;
1710         itype = SH5_COMPACT_INSN_SWAPB_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1711       case 777 : /* fall through */
1712       case 793 : /* fall through */
1713       case 809 : /* fall through */
1714       case 825 : /* fall through */
1715       case 841 : /* fall through */
1716       case 857 : /* fall through */
1717       case 873 : /* fall through */
1718       case 889 :
1719         entire_insn = entire_insn >> 16;
1720         itype = SH5_COMPACT_INSN_SWAPW_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1721       case 778 : /* fall through */
1722       case 794 : /* fall through */
1723       case 810 : /* fall through */
1724       case 826 : /* fall through */
1725       case 842 : /* fall through */
1726       case 858 : /* fall through */
1727       case 874 : /* fall through */
1728       case 890 :
1729         entire_insn = entire_insn >> 16;
1730         itype = SH5_COMPACT_INSN_NEGC_COMPACT; sh5_compact_extract_sfmt_negc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1731       case 779 : /* fall through */
1732       case 795 : /* fall through */
1733       case 811 : /* fall through */
1734       case 827 : /* fall through */
1735       case 843 : /* fall through */
1736       case 859 : /* fall through */
1737       case 875 : /* fall through */
1738       case 891 :
1739         entire_insn = entire_insn >> 16;
1740         itype = SH5_COMPACT_INSN_NEG_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1741       case 780 : /* fall through */
1742       case 796 : /* fall through */
1743       case 812 : /* fall through */
1744       case 828 : /* fall through */
1745       case 844 : /* fall through */
1746       case 860 : /* fall through */
1747       case 876 : /* fall through */
1748       case 892 :
1749         entire_insn = entire_insn >> 16;
1750         itype = SH5_COMPACT_INSN_EXTUB_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1751       case 781 : /* fall through */
1752       case 797 : /* fall through */
1753       case 813 : /* fall through */
1754       case 829 : /* fall through */
1755       case 845 : /* fall through */
1756       case 861 : /* fall through */
1757       case 877 : /* fall through */
1758       case 893 :
1759         entire_insn = entire_insn >> 16;
1760         itype = SH5_COMPACT_INSN_EXTUW_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1761       case 782 : /* fall through */
1762       case 798 : /* fall through */
1763       case 814 : /* fall through */
1764       case 830 : /* fall through */
1765       case 846 : /* fall through */
1766       case 862 : /* fall through */
1767       case 878 : /* fall through */
1768       case 894 :
1769         entire_insn = entire_insn >> 16;
1770         itype = SH5_COMPACT_INSN_EXTSB_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1771       case 783 : /* fall through */
1772       case 799 : /* fall through */
1773       case 815 : /* fall through */
1774       case 831 : /* fall through */
1775       case 847 : /* fall through */
1776       case 863 : /* fall through */
1777       case 879 : /* fall through */
1778       case 895 :
1779         entire_insn = entire_insn >> 16;
1780         itype = SH5_COMPACT_INSN_EXTSW_COMPACT; sh5_compact_extract_sfmt_extsb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1781       case 896 : /* fall through */
1782       case 897 : /* fall through */
1783       case 898 : /* fall through */
1784       case 899 : /* fall through */
1785       case 900 : /* fall through */
1786       case 901 : /* fall through */
1787       case 902 : /* fall through */
1788       case 903 : /* fall through */
1789       case 904 : /* fall through */
1790       case 905 : /* fall through */
1791       case 906 : /* fall through */
1792       case 907 : /* fall through */
1793       case 908 : /* fall through */
1794       case 909 : /* fall through */
1795       case 910 : /* fall through */
1796       case 911 : /* fall through */
1797       case 912 : /* fall through */
1798       case 913 : /* fall through */
1799       case 914 : /* fall through */
1800       case 915 : /* fall through */
1801       case 916 : /* fall through */
1802       case 917 : /* fall through */
1803       case 918 : /* fall through */
1804       case 919 : /* fall through */
1805       case 920 : /* fall through */
1806       case 921 : /* fall through */
1807       case 922 : /* fall through */
1808       case 923 : /* fall through */
1809       case 924 : /* fall through */
1810       case 925 : /* fall through */
1811       case 926 : /* fall through */
1812       case 927 : /* fall through */
1813       case 928 : /* fall through */
1814       case 929 : /* fall through */
1815       case 930 : /* fall through */
1816       case 931 : /* fall through */
1817       case 932 : /* fall through */
1818       case 933 : /* fall through */
1819       case 934 : /* fall through */
1820       case 935 : /* fall through */
1821       case 936 : /* fall through */
1822       case 937 : /* fall through */
1823       case 938 : /* fall through */
1824       case 939 : /* fall through */
1825       case 940 : /* fall through */
1826       case 941 : /* fall through */
1827       case 942 : /* fall through */
1828       case 943 : /* fall through */
1829       case 944 : /* fall through */
1830       case 945 : /* fall through */
1831       case 946 : /* fall through */
1832       case 947 : /* fall through */
1833       case 948 : /* fall through */
1834       case 949 : /* fall through */
1835       case 950 : /* fall through */
1836       case 951 : /* fall through */
1837       case 952 : /* fall through */
1838       case 953 : /* fall through */
1839       case 954 : /* fall through */
1840       case 955 : /* fall through */
1841       case 956 : /* fall through */
1842       case 957 : /* fall through */
1843       case 958 : /* fall through */
1844       case 959 : /* fall through */
1845       case 960 : /* fall through */
1846       case 961 : /* fall through */
1847       case 962 : /* fall through */
1848       case 963 : /* fall through */
1849       case 964 : /* fall through */
1850       case 965 : /* fall through */
1851       case 966 : /* fall through */
1852       case 967 : /* fall through */
1853       case 968 : /* fall through */
1854       case 969 : /* fall through */
1855       case 970 : /* fall through */
1856       case 971 : /* fall through */
1857       case 972 : /* fall through */
1858       case 973 : /* fall through */
1859       case 974 : /* fall through */
1860       case 975 : /* fall through */
1861       case 976 : /* fall through */
1862       case 977 : /* fall through */
1863       case 978 : /* fall through */
1864       case 979 : /* fall through */
1865       case 980 : /* fall through */
1866       case 981 : /* fall through */
1867       case 982 : /* fall through */
1868       case 983 : /* fall through */
1869       case 984 : /* fall through */
1870       case 985 : /* fall through */
1871       case 986 : /* fall through */
1872       case 987 : /* fall through */
1873       case 988 : /* fall through */
1874       case 989 : /* fall through */
1875       case 990 : /* fall through */
1876       case 991 : /* fall through */
1877       case 992 : /* fall through */
1878       case 993 : /* fall through */
1879       case 994 : /* fall through */
1880       case 995 : /* fall through */
1881       case 996 : /* fall through */
1882       case 997 : /* fall through */
1883       case 998 : /* fall through */
1884       case 999 : /* fall through */
1885       case 1000 : /* fall through */
1886       case 1001 : /* fall through */
1887       case 1002 : /* fall through */
1888       case 1003 : /* fall through */
1889       case 1004 : /* fall through */
1890       case 1005 : /* fall through */
1891       case 1006 : /* fall through */
1892       case 1007 : /* fall through */
1893       case 1008 : /* fall through */
1894       case 1009 : /* fall through */
1895       case 1010 : /* fall through */
1896       case 1011 : /* fall through */
1897       case 1012 : /* fall through */
1898       case 1013 : /* fall through */
1899       case 1014 : /* fall through */
1900       case 1015 : /* fall through */
1901       case 1016 : /* fall through */
1902       case 1017 : /* fall through */
1903       case 1018 : /* fall through */
1904       case 1019 : /* fall through */
1905       case 1020 : /* fall through */
1906       case 1021 : /* fall through */
1907       case 1022 : /* fall through */
1908       case 1023 :
1909         entire_insn = entire_insn >> 16;
1910         itype = SH5_COMPACT_INSN_ADDI_COMPACT; sh5_compact_extract_sfmt_addi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
1911       case 1024 : /* fall through */
1912       case 1025 : /* fall through */
1913       case 1026 : /* fall through */
1914       case 1027 : /* fall through */
1915       case 1028 : /* fall through */
1916       case 1029 : /* fall through */
1917       case 1030 : /* fall through */
1918       case 1031 : /* fall through */
1919       case 1032 : /* fall through */
1920       case 1033 : /* fall through */
1921       case 1034 : /* fall through */
1922       case 1035 : /* fall through */
1923       case 1036 : /* fall through */
1924       case 1037 : /* fall through */
1925       case 1038 : /* fall through */
1926       case 1039 : /* fall through */
1927       case 1040 : /* fall through */
1928       case 1041 : /* fall through */
1929       case 1042 : /* fall through */
1930       case 1043 : /* fall through */
1931       case 1044 : /* fall through */
1932       case 1045 : /* fall through */
1933       case 1046 : /* fall through */
1934       case 1047 : /* fall through */
1935       case 1048 : /* fall through */
1936       case 1049 : /* fall through */
1937       case 1050 : /* fall through */
1938       case 1051 : /* fall through */
1939       case 1052 : /* fall through */
1940       case 1053 : /* fall through */
1941       case 1054 : /* fall through */
1942       case 1055 : /* fall through */
1943       case 1056 : /* fall through */
1944       case 1057 : /* fall through */
1945       case 1058 : /* fall through */
1946       case 1059 : /* fall through */
1947       case 1060 : /* fall through */
1948       case 1061 : /* fall through */
1949       case 1062 : /* fall through */
1950       case 1063 : /* fall through */
1951       case 1064 : /* fall through */
1952       case 1065 : /* fall through */
1953       case 1066 : /* fall through */
1954       case 1067 : /* fall through */
1955       case 1068 : /* fall through */
1956       case 1069 : /* fall through */
1957       case 1070 : /* fall through */
1958       case 1071 : /* fall through */
1959       case 1072 : /* fall through */
1960       case 1073 : /* fall through */
1961       case 1074 : /* fall through */
1962       case 1075 : /* fall through */
1963       case 1076 : /* fall through */
1964       case 1077 : /* fall through */
1965       case 1078 : /* fall through */
1966       case 1079 : /* fall through */
1967       case 1080 : /* fall through */
1968       case 1081 : /* fall through */
1969       case 1082 : /* fall through */
1970       case 1083 : /* fall through */
1971       case 1084 : /* fall through */
1972       case 1085 : /* fall through */
1973       case 1086 : /* fall through */
1974       case 1087 : /* fall through */
1975       case 1088 : /* fall through */
1976       case 1089 : /* fall through */
1977       case 1090 : /* fall through */
1978       case 1091 : /* fall through */
1979       case 1092 : /* fall through */
1980       case 1093 : /* fall through */
1981       case 1094 : /* fall through */
1982       case 1095 : /* fall through */
1983       case 1096 : /* fall through */
1984       case 1097 : /* fall through */
1985       case 1098 : /* fall through */
1986       case 1099 : /* fall through */
1987       case 1100 : /* fall through */
1988       case 1101 : /* fall through */
1989       case 1102 : /* fall through */
1990       case 1103 : /* fall through */
1991       case 1104 : /* fall through */
1992       case 1105 : /* fall through */
1993       case 1106 : /* fall through */
1994       case 1107 : /* fall through */
1995       case 1108 : /* fall through */
1996       case 1109 : /* fall through */
1997       case 1110 : /* fall through */
1998       case 1111 : /* fall through */
1999       case 1112 : /* fall through */
2000       case 1113 : /* fall through */
2001       case 1114 : /* fall through */
2002       case 1115 : /* fall through */
2003       case 1116 : /* fall through */
2004       case 1117 : /* fall through */
2005       case 1118 : /* fall through */
2006       case 1119 : /* fall through */
2007       case 1120 : /* fall through */
2008       case 1121 : /* fall through */
2009       case 1122 : /* fall through */
2010       case 1123 : /* fall through */
2011       case 1124 : /* fall through */
2012       case 1125 : /* fall through */
2013       case 1126 : /* fall through */
2014       case 1127 : /* fall through */
2015       case 1128 : /* fall through */
2016       case 1129 : /* fall through */
2017       case 1130 : /* fall through */
2018       case 1131 : /* fall through */
2019       case 1132 : /* fall through */
2020       case 1133 : /* fall through */
2021       case 1134 : /* fall through */
2022       case 1135 : /* fall through */
2023       case 1136 : /* fall through */
2024       case 1137 : /* fall through */
2025       case 1138 : /* fall through */
2026       case 1139 : /* fall through */
2027       case 1140 : /* fall through */
2028       case 1141 : /* fall through */
2029       case 1142 : /* fall through */
2030       case 1143 : /* fall through */
2031       case 1144 : /* fall through */
2032       case 1145 : /* fall through */
2033       case 1146 : /* fall through */
2034       case 1147 : /* fall through */
2035       case 1148 : /* fall through */
2036       case 1149 : /* fall through */
2037       case 1150 : /* fall through */
2038       case 1151 :
2039         {
2040           unsigned int val = (((insn >> 24) & (15 << 0)));
2041           switch (val)
2042           {
2043           case 0 :
2044             entire_insn = entire_insn >> 16;
2045             itype = SH5_COMPACT_INSN_MOVB5_COMPACT; sh5_compact_extract_sfmt_movb5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2046           case 1 :
2047             entire_insn = entire_insn >> 16;
2048             itype = SH5_COMPACT_INSN_MOVW5_COMPACT; sh5_compact_extract_sfmt_movw5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2049           case 4 :
2050             entire_insn = entire_insn >> 16;
2051             itype = SH5_COMPACT_INSN_MOVB10_COMPACT; sh5_compact_extract_sfmt_movb10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2052           case 5 :
2053             entire_insn = entire_insn >> 16;
2054             itype = SH5_COMPACT_INSN_MOVW11_COMPACT; sh5_compact_extract_sfmt_movw11_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2055           case 8 :
2056             entire_insn = entire_insn >> 16;
2057             itype = SH5_COMPACT_INSN_CMPEQI_COMPACT; sh5_compact_extract_sfmt_cmpeqi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2058           case 9 :
2059             entire_insn = entire_insn >> 16;
2060             itype = SH5_COMPACT_INSN_BT_COMPACT; sh5_compact_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2061           case 11 :
2062             entire_insn = entire_insn >> 16;
2063             itype = SH5_COMPACT_INSN_BF_COMPACT; sh5_compact_extract_sfmt_bf_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2064           case 13 :
2065             entire_insn = entire_insn >> 16;
2066             itype = SH5_COMPACT_INSN_BTS_COMPACT; sh5_compact_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2067           case 15 :
2068             entire_insn = entire_insn >> 16;
2069             itype = SH5_COMPACT_INSN_BFS_COMPACT; sh5_compact_extract_sfmt_bfs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2070           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2071           }
2072         }
2073       case 1152 : /* fall through */
2074       case 1153 : /* fall through */
2075       case 1154 : /* fall through */
2076       case 1155 : /* fall through */
2077       case 1156 : /* fall through */
2078       case 1157 : /* fall through */
2079       case 1158 : /* fall through */
2080       case 1159 : /* fall through */
2081       case 1160 : /* fall through */
2082       case 1161 : /* fall through */
2083       case 1162 : /* fall through */
2084       case 1163 : /* fall through */
2085       case 1164 : /* fall through */
2086       case 1165 : /* fall through */
2087       case 1166 : /* fall through */
2088       case 1167 : /* fall through */
2089       case 1168 : /* fall through */
2090       case 1169 : /* fall through */
2091       case 1170 : /* fall through */
2092       case 1171 : /* fall through */
2093       case 1172 : /* fall through */
2094       case 1173 : /* fall through */
2095       case 1174 : /* fall through */
2096       case 1175 : /* fall through */
2097       case 1176 : /* fall through */
2098       case 1177 : /* fall through */
2099       case 1178 : /* fall through */
2100       case 1179 : /* fall through */
2101       case 1180 : /* fall through */
2102       case 1181 : /* fall through */
2103       case 1182 : /* fall through */
2104       case 1183 : /* fall through */
2105       case 1184 : /* fall through */
2106       case 1185 : /* fall through */
2107       case 1186 : /* fall through */
2108       case 1187 : /* fall through */
2109       case 1188 : /* fall through */
2110       case 1189 : /* fall through */
2111       case 1190 : /* fall through */
2112       case 1191 : /* fall through */
2113       case 1192 : /* fall through */
2114       case 1193 : /* fall through */
2115       case 1194 : /* fall through */
2116       case 1195 : /* fall through */
2117       case 1196 : /* fall through */
2118       case 1197 : /* fall through */
2119       case 1198 : /* fall through */
2120       case 1199 : /* fall through */
2121       case 1200 : /* fall through */
2122       case 1201 : /* fall through */
2123       case 1202 : /* fall through */
2124       case 1203 : /* fall through */
2125       case 1204 : /* fall through */
2126       case 1205 : /* fall through */
2127       case 1206 : /* fall through */
2128       case 1207 : /* fall through */
2129       case 1208 : /* fall through */
2130       case 1209 : /* fall through */
2131       case 1210 : /* fall through */
2132       case 1211 : /* fall through */
2133       case 1212 : /* fall through */
2134       case 1213 : /* fall through */
2135       case 1214 : /* fall through */
2136       case 1215 : /* fall through */
2137       case 1216 : /* fall through */
2138       case 1217 : /* fall through */
2139       case 1218 : /* fall through */
2140       case 1219 : /* fall through */
2141       case 1220 : /* fall through */
2142       case 1221 : /* fall through */
2143       case 1222 : /* fall through */
2144       case 1223 : /* fall through */
2145       case 1224 : /* fall through */
2146       case 1225 : /* fall through */
2147       case 1226 : /* fall through */
2148       case 1227 : /* fall through */
2149       case 1228 : /* fall through */
2150       case 1229 : /* fall through */
2151       case 1230 : /* fall through */
2152       case 1231 : /* fall through */
2153       case 1232 : /* fall through */
2154       case 1233 : /* fall through */
2155       case 1234 : /* fall through */
2156       case 1235 : /* fall through */
2157       case 1236 : /* fall through */
2158       case 1237 : /* fall through */
2159       case 1238 : /* fall through */
2160       case 1239 : /* fall through */
2161       case 1240 : /* fall through */
2162       case 1241 : /* fall through */
2163       case 1242 : /* fall through */
2164       case 1243 : /* fall through */
2165       case 1244 : /* fall through */
2166       case 1245 : /* fall through */
2167       case 1246 : /* fall through */
2168       case 1247 : /* fall through */
2169       case 1248 : /* fall through */
2170       case 1249 : /* fall through */
2171       case 1250 : /* fall through */
2172       case 1251 : /* fall through */
2173       case 1252 : /* fall through */
2174       case 1253 : /* fall through */
2175       case 1254 : /* fall through */
2176       case 1255 : /* fall through */
2177       case 1256 : /* fall through */
2178       case 1257 : /* fall through */
2179       case 1258 : /* fall through */
2180       case 1259 : /* fall through */
2181       case 1260 : /* fall through */
2182       case 1261 : /* fall through */
2183       case 1262 : /* fall through */
2184       case 1263 : /* fall through */
2185       case 1264 : /* fall through */
2186       case 1265 : /* fall through */
2187       case 1266 : /* fall through */
2188       case 1267 : /* fall through */
2189       case 1268 : /* fall through */
2190       case 1269 : /* fall through */
2191       case 1270 : /* fall through */
2192       case 1271 : /* fall through */
2193       case 1272 : /* fall through */
2194       case 1273 : /* fall through */
2195       case 1274 : /* fall through */
2196       case 1275 : /* fall through */
2197       case 1276 : /* fall through */
2198       case 1277 : /* fall through */
2199       case 1278 : /* fall through */
2200       case 1279 :
2201         entire_insn = entire_insn >> 16;
2202         itype = SH5_COMPACT_INSN_MOVW10_COMPACT; sh5_compact_extract_sfmt_movw10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2203       case 1280 : /* fall through */
2204       case 1281 : /* fall through */
2205       case 1282 : /* fall through */
2206       case 1283 : /* fall through */
2207       case 1284 : /* fall through */
2208       case 1285 : /* fall through */
2209       case 1286 : /* fall through */
2210       case 1287 : /* fall through */
2211       case 1288 : /* fall through */
2212       case 1289 : /* fall through */
2213       case 1290 : /* fall through */
2214       case 1291 : /* fall through */
2215       case 1292 : /* fall through */
2216       case 1293 : /* fall through */
2217       case 1294 : /* fall through */
2218       case 1295 : /* fall through */
2219       case 1296 : /* fall through */
2220       case 1297 : /* fall through */
2221       case 1298 : /* fall through */
2222       case 1299 : /* fall through */
2223       case 1300 : /* fall through */
2224       case 1301 : /* fall through */
2225       case 1302 : /* fall through */
2226       case 1303 : /* fall through */
2227       case 1304 : /* fall through */
2228       case 1305 : /* fall through */
2229       case 1306 : /* fall through */
2230       case 1307 : /* fall through */
2231       case 1308 : /* fall through */
2232       case 1309 : /* fall through */
2233       case 1310 : /* fall through */
2234       case 1311 : /* fall through */
2235       case 1312 : /* fall through */
2236       case 1313 : /* fall through */
2237       case 1314 : /* fall through */
2238       case 1315 : /* fall through */
2239       case 1316 : /* fall through */
2240       case 1317 : /* fall through */
2241       case 1318 : /* fall through */
2242       case 1319 : /* fall through */
2243       case 1320 : /* fall through */
2244       case 1321 : /* fall through */
2245       case 1322 : /* fall through */
2246       case 1323 : /* fall through */
2247       case 1324 : /* fall through */
2248       case 1325 : /* fall through */
2249       case 1326 : /* fall through */
2250       case 1327 : /* fall through */
2251       case 1328 : /* fall through */
2252       case 1329 : /* fall through */
2253       case 1330 : /* fall through */
2254       case 1331 : /* fall through */
2255       case 1332 : /* fall through */
2256       case 1333 : /* fall through */
2257       case 1334 : /* fall through */
2258       case 1335 : /* fall through */
2259       case 1336 : /* fall through */
2260       case 1337 : /* fall through */
2261       case 1338 : /* fall through */
2262       case 1339 : /* fall through */
2263       case 1340 : /* fall through */
2264       case 1341 : /* fall through */
2265       case 1342 : /* fall through */
2266       case 1343 : /* fall through */
2267       case 1344 : /* fall through */
2268       case 1345 : /* fall through */
2269       case 1346 : /* fall through */
2270       case 1347 : /* fall through */
2271       case 1348 : /* fall through */
2272       case 1349 : /* fall through */
2273       case 1350 : /* fall through */
2274       case 1351 : /* fall through */
2275       case 1352 : /* fall through */
2276       case 1353 : /* fall through */
2277       case 1354 : /* fall through */
2278       case 1355 : /* fall through */
2279       case 1356 : /* fall through */
2280       case 1357 : /* fall through */
2281       case 1358 : /* fall through */
2282       case 1359 : /* fall through */
2283       case 1360 : /* fall through */
2284       case 1361 : /* fall through */
2285       case 1362 : /* fall through */
2286       case 1363 : /* fall through */
2287       case 1364 : /* fall through */
2288       case 1365 : /* fall through */
2289       case 1366 : /* fall through */
2290       case 1367 : /* fall through */
2291       case 1368 : /* fall through */
2292       case 1369 : /* fall through */
2293       case 1370 : /* fall through */
2294       case 1371 : /* fall through */
2295       case 1372 : /* fall through */
2296       case 1373 : /* fall through */
2297       case 1374 : /* fall through */
2298       case 1375 : /* fall through */
2299       case 1376 : /* fall through */
2300       case 1377 : /* fall through */
2301       case 1378 : /* fall through */
2302       case 1379 : /* fall through */
2303       case 1380 : /* fall through */
2304       case 1381 : /* fall through */
2305       case 1382 : /* fall through */
2306       case 1383 : /* fall through */
2307       case 1384 : /* fall through */
2308       case 1385 : /* fall through */
2309       case 1386 : /* fall through */
2310       case 1387 : /* fall through */
2311       case 1388 : /* fall through */
2312       case 1389 : /* fall through */
2313       case 1390 : /* fall through */
2314       case 1391 : /* fall through */
2315       case 1392 : /* fall through */
2316       case 1393 : /* fall through */
2317       case 1394 : /* fall through */
2318       case 1395 : /* fall through */
2319       case 1396 : /* fall through */
2320       case 1397 : /* fall through */
2321       case 1398 : /* fall through */
2322       case 1399 : /* fall through */
2323       case 1400 : /* fall through */
2324       case 1401 : /* fall through */
2325       case 1402 : /* fall through */
2326       case 1403 : /* fall through */
2327       case 1404 : /* fall through */
2328       case 1405 : /* fall through */
2329       case 1406 : /* fall through */
2330       case 1407 :
2331         entire_insn = entire_insn >> 16;
2332         itype = SH5_COMPACT_INSN_BRA_COMPACT; sh5_compact_extract_sfmt_bra_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2333       case 1408 : /* fall through */
2334       case 1409 : /* fall through */
2335       case 1410 : /* fall through */
2336       case 1411 : /* fall through */
2337       case 1412 : /* fall through */
2338       case 1413 : /* fall through */
2339       case 1414 : /* fall through */
2340       case 1415 : /* fall through */
2341       case 1416 : /* fall through */
2342       case 1417 : /* fall through */
2343       case 1418 : /* fall through */
2344       case 1419 : /* fall through */
2345       case 1420 : /* fall through */
2346       case 1421 : /* fall through */
2347       case 1422 : /* fall through */
2348       case 1423 : /* fall through */
2349       case 1424 : /* fall through */
2350       case 1425 : /* fall through */
2351       case 1426 : /* fall through */
2352       case 1427 : /* fall through */
2353       case 1428 : /* fall through */
2354       case 1429 : /* fall through */
2355       case 1430 : /* fall through */
2356       case 1431 : /* fall through */
2357       case 1432 : /* fall through */
2358       case 1433 : /* fall through */
2359       case 1434 : /* fall through */
2360       case 1435 : /* fall through */
2361       case 1436 : /* fall through */
2362       case 1437 : /* fall through */
2363       case 1438 : /* fall through */
2364       case 1439 : /* fall through */
2365       case 1440 : /* fall through */
2366       case 1441 : /* fall through */
2367       case 1442 : /* fall through */
2368       case 1443 : /* fall through */
2369       case 1444 : /* fall through */
2370       case 1445 : /* fall through */
2371       case 1446 : /* fall through */
2372       case 1447 : /* fall through */
2373       case 1448 : /* fall through */
2374       case 1449 : /* fall through */
2375       case 1450 : /* fall through */
2376       case 1451 : /* fall through */
2377       case 1452 : /* fall through */
2378       case 1453 : /* fall through */
2379       case 1454 : /* fall through */
2380       case 1455 : /* fall through */
2381       case 1456 : /* fall through */
2382       case 1457 : /* fall through */
2383       case 1458 : /* fall through */
2384       case 1459 : /* fall through */
2385       case 1460 : /* fall through */
2386       case 1461 : /* fall through */
2387       case 1462 : /* fall through */
2388       case 1463 : /* fall through */
2389       case 1464 : /* fall through */
2390       case 1465 : /* fall through */
2391       case 1466 : /* fall through */
2392       case 1467 : /* fall through */
2393       case 1468 : /* fall through */
2394       case 1469 : /* fall through */
2395       case 1470 : /* fall through */
2396       case 1471 : /* fall through */
2397       case 1472 : /* fall through */
2398       case 1473 : /* fall through */
2399       case 1474 : /* fall through */
2400       case 1475 : /* fall through */
2401       case 1476 : /* fall through */
2402       case 1477 : /* fall through */
2403       case 1478 : /* fall through */
2404       case 1479 : /* fall through */
2405       case 1480 : /* fall through */
2406       case 1481 : /* fall through */
2407       case 1482 : /* fall through */
2408       case 1483 : /* fall through */
2409       case 1484 : /* fall through */
2410       case 1485 : /* fall through */
2411       case 1486 : /* fall through */
2412       case 1487 : /* fall through */
2413       case 1488 : /* fall through */
2414       case 1489 : /* fall through */
2415       case 1490 : /* fall through */
2416       case 1491 : /* fall through */
2417       case 1492 : /* fall through */
2418       case 1493 : /* fall through */
2419       case 1494 : /* fall through */
2420       case 1495 : /* fall through */
2421       case 1496 : /* fall through */
2422       case 1497 : /* fall through */
2423       case 1498 : /* fall through */
2424       case 1499 : /* fall through */
2425       case 1500 : /* fall through */
2426       case 1501 : /* fall through */
2427       case 1502 : /* fall through */
2428       case 1503 : /* fall through */
2429       case 1504 : /* fall through */
2430       case 1505 : /* fall through */
2431       case 1506 : /* fall through */
2432       case 1507 : /* fall through */
2433       case 1508 : /* fall through */
2434       case 1509 : /* fall through */
2435       case 1510 : /* fall through */
2436       case 1511 : /* fall through */
2437       case 1512 : /* fall through */
2438       case 1513 : /* fall through */
2439       case 1514 : /* fall through */
2440       case 1515 : /* fall through */
2441       case 1516 : /* fall through */
2442       case 1517 : /* fall through */
2443       case 1518 : /* fall through */
2444       case 1519 : /* fall through */
2445       case 1520 : /* fall through */
2446       case 1521 : /* fall through */
2447       case 1522 : /* fall through */
2448       case 1523 : /* fall through */
2449       case 1524 : /* fall through */
2450       case 1525 : /* fall through */
2451       case 1526 : /* fall through */
2452       case 1527 : /* fall through */
2453       case 1528 : /* fall through */
2454       case 1529 : /* fall through */
2455       case 1530 : /* fall through */
2456       case 1531 : /* fall through */
2457       case 1532 : /* fall through */
2458       case 1533 : /* fall through */
2459       case 1534 : /* fall through */
2460       case 1535 :
2461         entire_insn = entire_insn >> 16;
2462         itype = SH5_COMPACT_INSN_BSR_COMPACT; sh5_compact_extract_sfmt_bsr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2463       case 1536 : /* fall through */
2464       case 1537 : /* fall through */
2465       case 1538 : /* fall through */
2466       case 1539 : /* fall through */
2467       case 1540 : /* fall through */
2468       case 1541 : /* fall through */
2469       case 1542 : /* fall through */
2470       case 1543 : /* fall through */
2471       case 1544 : /* fall through */
2472       case 1545 : /* fall through */
2473       case 1546 : /* fall through */
2474       case 1547 : /* fall through */
2475       case 1548 : /* fall through */
2476       case 1549 : /* fall through */
2477       case 1550 : /* fall through */
2478       case 1551 : /* fall through */
2479       case 1552 : /* fall through */
2480       case 1553 : /* fall through */
2481       case 1554 : /* fall through */
2482       case 1555 : /* fall through */
2483       case 1556 : /* fall through */
2484       case 1557 : /* fall through */
2485       case 1558 : /* fall through */
2486       case 1559 : /* fall through */
2487       case 1560 : /* fall through */
2488       case 1561 : /* fall through */
2489       case 1562 : /* fall through */
2490       case 1563 : /* fall through */
2491       case 1564 : /* fall through */
2492       case 1565 : /* fall through */
2493       case 1566 : /* fall through */
2494       case 1567 : /* fall through */
2495       case 1568 : /* fall through */
2496       case 1569 : /* fall through */
2497       case 1570 : /* fall through */
2498       case 1571 : /* fall through */
2499       case 1572 : /* fall through */
2500       case 1573 : /* fall through */
2501       case 1574 : /* fall through */
2502       case 1575 : /* fall through */
2503       case 1576 : /* fall through */
2504       case 1577 : /* fall through */
2505       case 1578 : /* fall through */
2506       case 1579 : /* fall through */
2507       case 1580 : /* fall through */
2508       case 1581 : /* fall through */
2509       case 1582 : /* fall through */
2510       case 1583 : /* fall through */
2511       case 1584 : /* fall through */
2512       case 1585 : /* fall through */
2513       case 1586 : /* fall through */
2514       case 1587 : /* fall through */
2515       case 1588 : /* fall through */
2516       case 1589 : /* fall through */
2517       case 1590 : /* fall through */
2518       case 1591 : /* fall through */
2519       case 1592 : /* fall through */
2520       case 1593 : /* fall through */
2521       case 1594 : /* fall through */
2522       case 1595 : /* fall through */
2523       case 1596 : /* fall through */
2524       case 1597 : /* fall through */
2525       case 1598 : /* fall through */
2526       case 1599 : /* fall through */
2527       case 1600 : /* fall through */
2528       case 1601 : /* fall through */
2529       case 1602 : /* fall through */
2530       case 1603 : /* fall through */
2531       case 1604 : /* fall through */
2532       case 1605 : /* fall through */
2533       case 1606 : /* fall through */
2534       case 1607 : /* fall through */
2535       case 1608 : /* fall through */
2536       case 1609 : /* fall through */
2537       case 1610 : /* fall through */
2538       case 1611 : /* fall through */
2539       case 1612 : /* fall through */
2540       case 1613 : /* fall through */
2541       case 1614 : /* fall through */
2542       case 1615 : /* fall through */
2543       case 1616 : /* fall through */
2544       case 1617 : /* fall through */
2545       case 1618 : /* fall through */
2546       case 1619 : /* fall through */
2547       case 1620 : /* fall through */
2548       case 1621 : /* fall through */
2549       case 1622 : /* fall through */
2550       case 1623 : /* fall through */
2551       case 1624 : /* fall through */
2552       case 1625 : /* fall through */
2553       case 1626 : /* fall through */
2554       case 1627 : /* fall through */
2555       case 1628 : /* fall through */
2556       case 1629 : /* fall through */
2557       case 1630 : /* fall through */
2558       case 1631 : /* fall through */
2559       case 1632 : /* fall through */
2560       case 1633 : /* fall through */
2561       case 1634 : /* fall through */
2562       case 1635 : /* fall through */
2563       case 1636 : /* fall through */
2564       case 1637 : /* fall through */
2565       case 1638 : /* fall through */
2566       case 1639 : /* fall through */
2567       case 1640 : /* fall through */
2568       case 1641 : /* fall through */
2569       case 1642 : /* fall through */
2570       case 1643 : /* fall through */
2571       case 1644 : /* fall through */
2572       case 1645 : /* fall through */
2573       case 1646 : /* fall through */
2574       case 1647 : /* fall through */
2575       case 1648 : /* fall through */
2576       case 1649 : /* fall through */
2577       case 1650 : /* fall through */
2578       case 1651 : /* fall through */
2579       case 1652 : /* fall through */
2580       case 1653 : /* fall through */
2581       case 1654 : /* fall through */
2582       case 1655 : /* fall through */
2583       case 1656 : /* fall through */
2584       case 1657 : /* fall through */
2585       case 1658 : /* fall through */
2586       case 1659 : /* fall through */
2587       case 1660 : /* fall through */
2588       case 1661 : /* fall through */
2589       case 1662 : /* fall through */
2590       case 1663 :
2591         {
2592           unsigned int val = (((insn >> 24) & (15 << 0)));
2593           switch (val)
2594           {
2595           case 0 :
2596             entire_insn = entire_insn >> 16;
2597             itype = SH5_COMPACT_INSN_MOVB4_COMPACT; sh5_compact_extract_sfmt_movb4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2598           case 1 :
2599             entire_insn = entire_insn >> 16;
2600             itype = SH5_COMPACT_INSN_MOVW4_COMPACT; sh5_compact_extract_sfmt_movw4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2601           case 2 :
2602             entire_insn = entire_insn >> 16;
2603             itype = SH5_COMPACT_INSN_MOVL4_COMPACT; sh5_compact_extract_sfmt_movl4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2604           case 3 :
2605             entire_insn = entire_insn >> 16;
2606             itype = SH5_COMPACT_INSN_TRAPA_COMPACT; sh5_compact_extract_sfmt_trapa_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2607           case 4 :
2608             entire_insn = entire_insn >> 16;
2609             itype = SH5_COMPACT_INSN_MOVB9_COMPACT; sh5_compact_extract_sfmt_movb9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2610           case 5 :
2611             entire_insn = entire_insn >> 16;
2612             itype = SH5_COMPACT_INSN_MOVW9_COMPACT; sh5_compact_extract_sfmt_movw9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2613           case 6 :
2614             entire_insn = entire_insn >> 16;
2615             itype = SH5_COMPACT_INSN_MOVL9_COMPACT; sh5_compact_extract_sfmt_movl9_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2616           case 7 :
2617             entire_insn = entire_insn >> 16;
2618             itype = SH5_COMPACT_INSN_MOVA_COMPACT; sh5_compact_extract_sfmt_mova_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2619           case 8 :
2620             entire_insn = entire_insn >> 16;
2621             itype = SH5_COMPACT_INSN_TSTI_COMPACT; sh5_compact_extract_sfmt_tsti_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2622           case 9 :
2623             entire_insn = entire_insn >> 16;
2624             itype = SH5_COMPACT_INSN_ANDI_COMPACT; sh5_compact_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2625           case 10 :
2626             entire_insn = entire_insn >> 16;
2627             itype = SH5_COMPACT_INSN_XORI_COMPACT; sh5_compact_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2628           case 11 :
2629             entire_insn = entire_insn >> 16;
2630             itype = SH5_COMPACT_INSN_ORI_COMPACT; sh5_compact_extract_sfmt_andi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2631           case 12 :
2632             entire_insn = entire_insn >> 16;
2633             itype = SH5_COMPACT_INSN_TSTB_COMPACT; sh5_compact_extract_sfmt_tstb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2634           case 13 :
2635             entire_insn = entire_insn >> 16;
2636             itype = SH5_COMPACT_INSN_ANDB_COMPACT; sh5_compact_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2637           case 14 :
2638             entire_insn = entire_insn >> 16;
2639             itype = SH5_COMPACT_INSN_XORB_COMPACT; sh5_compact_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2640           case 15 :
2641             entire_insn = entire_insn >> 16;
2642             itype = SH5_COMPACT_INSN_ORB_COMPACT; sh5_compact_extract_sfmt_andb_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2643           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
2644           }
2645         }
2646       case 1664 : /* fall through */
2647       case 1665 : /* fall through */
2648       case 1666 : /* fall through */
2649       case 1667 : /* fall through */
2650       case 1668 : /* fall through */
2651       case 1669 : /* fall through */
2652       case 1670 : /* fall through */
2653       case 1671 : /* fall through */
2654       case 1672 : /* fall through */
2655       case 1673 : /* fall through */
2656       case 1674 : /* fall through */
2657       case 1675 : /* fall through */
2658       case 1676 : /* fall through */
2659       case 1677 : /* fall through */
2660       case 1678 : /* fall through */
2661       case 1679 : /* fall through */
2662       case 1680 : /* fall through */
2663       case 1681 : /* fall through */
2664       case 1682 : /* fall through */
2665       case 1683 : /* fall through */
2666       case 1684 : /* fall through */
2667       case 1685 : /* fall through */
2668       case 1686 : /* fall through */
2669       case 1687 : /* fall through */
2670       case 1688 : /* fall through */
2671       case 1689 : /* fall through */
2672       case 1690 : /* fall through */
2673       case 1691 : /* fall through */
2674       case 1692 : /* fall through */
2675       case 1693 : /* fall through */
2676       case 1694 : /* fall through */
2677       case 1695 : /* fall through */
2678       case 1696 : /* fall through */
2679       case 1697 : /* fall through */
2680       case 1698 : /* fall through */
2681       case 1699 : /* fall through */
2682       case 1700 : /* fall through */
2683       case 1701 : /* fall through */
2684       case 1702 : /* fall through */
2685       case 1703 : /* fall through */
2686       case 1704 : /* fall through */
2687       case 1705 : /* fall through */
2688       case 1706 : /* fall through */
2689       case 1707 : /* fall through */
2690       case 1708 : /* fall through */
2691       case 1709 : /* fall through */
2692       case 1710 : /* fall through */
2693       case 1711 : /* fall through */
2694       case 1712 : /* fall through */
2695       case 1713 : /* fall through */
2696       case 1714 : /* fall through */
2697       case 1715 : /* fall through */
2698       case 1716 : /* fall through */
2699       case 1717 : /* fall through */
2700       case 1718 : /* fall through */
2701       case 1719 : /* fall through */
2702       case 1720 : /* fall through */
2703       case 1721 : /* fall through */
2704       case 1722 : /* fall through */
2705       case 1723 : /* fall through */
2706       case 1724 : /* fall through */
2707       case 1725 : /* fall through */
2708       case 1726 : /* fall through */
2709       case 1727 : /* fall through */
2710       case 1728 : /* fall through */
2711       case 1729 : /* fall through */
2712       case 1730 : /* fall through */
2713       case 1731 : /* fall through */
2714       case 1732 : /* fall through */
2715       case 1733 : /* fall through */
2716       case 1734 : /* fall through */
2717       case 1735 : /* fall through */
2718       case 1736 : /* fall through */
2719       case 1737 : /* fall through */
2720       case 1738 : /* fall through */
2721       case 1739 : /* fall through */
2722       case 1740 : /* fall through */
2723       case 1741 : /* fall through */
2724       case 1742 : /* fall through */
2725       case 1743 : /* fall through */
2726       case 1744 : /* fall through */
2727       case 1745 : /* fall through */
2728       case 1746 : /* fall through */
2729       case 1747 : /* fall through */
2730       case 1748 : /* fall through */
2731       case 1749 : /* fall through */
2732       case 1750 : /* fall through */
2733       case 1751 : /* fall through */
2734       case 1752 : /* fall through */
2735       case 1753 : /* fall through */
2736       case 1754 : /* fall through */
2737       case 1755 : /* fall through */
2738       case 1756 : /* fall through */
2739       case 1757 : /* fall through */
2740       case 1758 : /* fall through */
2741       case 1759 : /* fall through */
2742       case 1760 : /* fall through */
2743       case 1761 : /* fall through */
2744       case 1762 : /* fall through */
2745       case 1763 : /* fall through */
2746       case 1764 : /* fall through */
2747       case 1765 : /* fall through */
2748       case 1766 : /* fall through */
2749       case 1767 : /* fall through */
2750       case 1768 : /* fall through */
2751       case 1769 : /* fall through */
2752       case 1770 : /* fall through */
2753       case 1771 : /* fall through */
2754       case 1772 : /* fall through */
2755       case 1773 : /* fall through */
2756       case 1774 : /* fall through */
2757       case 1775 : /* fall through */
2758       case 1776 : /* fall through */
2759       case 1777 : /* fall through */
2760       case 1778 : /* fall through */
2761       case 1779 : /* fall through */
2762       case 1780 : /* fall through */
2763       case 1781 : /* fall through */
2764       case 1782 : /* fall through */
2765       case 1783 : /* fall through */
2766       case 1784 : /* fall through */
2767       case 1785 : /* fall through */
2768       case 1786 : /* fall through */
2769       case 1787 : /* fall through */
2770       case 1788 : /* fall through */
2771       case 1789 : /* fall through */
2772       case 1790 : /* fall through */
2773       case 1791 :
2774         entire_insn = entire_insn >> 16;
2775         itype = SH5_COMPACT_INSN_MOVL10_COMPACT; sh5_compact_extract_sfmt_movl10_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2776       case 1792 : /* fall through */
2777       case 1793 : /* fall through */
2778       case 1794 : /* fall through */
2779       case 1795 : /* fall through */
2780       case 1796 : /* fall through */
2781       case 1797 : /* fall through */
2782       case 1798 : /* fall through */
2783       case 1799 : /* fall through */
2784       case 1800 : /* fall through */
2785       case 1801 : /* fall through */
2786       case 1802 : /* fall through */
2787       case 1803 : /* fall through */
2788       case 1804 : /* fall through */
2789       case 1805 : /* fall through */
2790       case 1806 : /* fall through */
2791       case 1807 : /* fall through */
2792       case 1808 : /* fall through */
2793       case 1809 : /* fall through */
2794       case 1810 : /* fall through */
2795       case 1811 : /* fall through */
2796       case 1812 : /* fall through */
2797       case 1813 : /* fall through */
2798       case 1814 : /* fall through */
2799       case 1815 : /* fall through */
2800       case 1816 : /* fall through */
2801       case 1817 : /* fall through */
2802       case 1818 : /* fall through */
2803       case 1819 : /* fall through */
2804       case 1820 : /* fall through */
2805       case 1821 : /* fall through */
2806       case 1822 : /* fall through */
2807       case 1823 : /* fall through */
2808       case 1824 : /* fall through */
2809       case 1825 : /* fall through */
2810       case 1826 : /* fall through */
2811       case 1827 : /* fall through */
2812       case 1828 : /* fall through */
2813       case 1829 : /* fall through */
2814       case 1830 : /* fall through */
2815       case 1831 : /* fall through */
2816       case 1832 : /* fall through */
2817       case 1833 : /* fall through */
2818       case 1834 : /* fall through */
2819       case 1835 : /* fall through */
2820       case 1836 : /* fall through */
2821       case 1837 : /* fall through */
2822       case 1838 : /* fall through */
2823       case 1839 : /* fall through */
2824       case 1840 : /* fall through */
2825       case 1841 : /* fall through */
2826       case 1842 : /* fall through */
2827       case 1843 : /* fall through */
2828       case 1844 : /* fall through */
2829       case 1845 : /* fall through */
2830       case 1846 : /* fall through */
2831       case 1847 : /* fall through */
2832       case 1848 : /* fall through */
2833       case 1849 : /* fall through */
2834       case 1850 : /* fall through */
2835       case 1851 : /* fall through */
2836       case 1852 : /* fall through */
2837       case 1853 : /* fall through */
2838       case 1854 : /* fall through */
2839       case 1855 : /* fall through */
2840       case 1856 : /* fall through */
2841       case 1857 : /* fall through */
2842       case 1858 : /* fall through */
2843       case 1859 : /* fall through */
2844       case 1860 : /* fall through */
2845       case 1861 : /* fall through */
2846       case 1862 : /* fall through */
2847       case 1863 : /* fall through */
2848       case 1864 : /* fall through */
2849       case 1865 : /* fall through */
2850       case 1866 : /* fall through */
2851       case 1867 : /* fall through */
2852       case 1868 : /* fall through */
2853       case 1869 : /* fall through */
2854       case 1870 : /* fall through */
2855       case 1871 : /* fall through */
2856       case 1872 : /* fall through */
2857       case 1873 : /* fall through */
2858       case 1874 : /* fall through */
2859       case 1875 : /* fall through */
2860       case 1876 : /* fall through */
2861       case 1877 : /* fall through */
2862       case 1878 : /* fall through */
2863       case 1879 : /* fall through */
2864       case 1880 : /* fall through */
2865       case 1881 : /* fall through */
2866       case 1882 : /* fall through */
2867       case 1883 : /* fall through */
2868       case 1884 : /* fall through */
2869       case 1885 : /* fall through */
2870       case 1886 : /* fall through */
2871       case 1887 : /* fall through */
2872       case 1888 : /* fall through */
2873       case 1889 : /* fall through */
2874       case 1890 : /* fall through */
2875       case 1891 : /* fall through */
2876       case 1892 : /* fall through */
2877       case 1893 : /* fall through */
2878       case 1894 : /* fall through */
2879       case 1895 : /* fall through */
2880       case 1896 : /* fall through */
2881       case 1897 : /* fall through */
2882       case 1898 : /* fall through */
2883       case 1899 : /* fall through */
2884       case 1900 : /* fall through */
2885       case 1901 : /* fall through */
2886       case 1902 : /* fall through */
2887       case 1903 : /* fall through */
2888       case 1904 : /* fall through */
2889       case 1905 : /* fall through */
2890       case 1906 : /* fall through */
2891       case 1907 : /* fall through */
2892       case 1908 : /* fall through */
2893       case 1909 : /* fall through */
2894       case 1910 : /* fall through */
2895       case 1911 : /* fall through */
2896       case 1912 : /* fall through */
2897       case 1913 : /* fall through */
2898       case 1914 : /* fall through */
2899       case 1915 : /* fall through */
2900       case 1916 : /* fall through */
2901       case 1917 : /* fall through */
2902       case 1918 : /* fall through */
2903       case 1919 :
2904         entire_insn = entire_insn >> 16;
2905         itype = SH5_COMPACT_INSN_MOVI_COMPACT; sh5_compact_extract_sfmt_movi_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2906       case 1920 : /* fall through */
2907       case 1936 : /* fall through */
2908       case 1952 : /* fall through */
2909       case 1968 : /* fall through */
2910       case 1984 : /* fall through */
2911       case 2000 : /* fall through */
2912       case 2016 : /* fall through */
2913       case 2032 :
2914         entire_insn = entire_insn >> 16;
2915         itype = SH5_COMPACT_INSN_FADD_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2916       case 1921 : /* fall through */
2917       case 1937 : /* fall through */
2918       case 1953 : /* fall through */
2919       case 1969 : /* fall through */
2920       case 1985 : /* fall through */
2921       case 2001 : /* fall through */
2922       case 2017 : /* fall through */
2923       case 2033 :
2924         entire_insn = entire_insn >> 16;
2925         itype = SH5_COMPACT_INSN_FSUB_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2926       case 1922 : /* fall through */
2927       case 1938 : /* fall through */
2928       case 1954 : /* fall through */
2929       case 1970 : /* fall through */
2930       case 1986 : /* fall through */
2931       case 2002 : /* fall through */
2932       case 2018 : /* fall through */
2933       case 2034 :
2934         entire_insn = entire_insn >> 16;
2935         itype = SH5_COMPACT_INSN_FMUL_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2936       case 1923 : /* fall through */
2937       case 1939 : /* fall through */
2938       case 1955 : /* fall through */
2939       case 1971 : /* fall through */
2940       case 1987 : /* fall through */
2941       case 2003 : /* fall through */
2942       case 2019 : /* fall through */
2943       case 2035 :
2944         entire_insn = entire_insn >> 16;
2945         itype = SH5_COMPACT_INSN_FDIV_COMPACT; sh5_compact_extract_sfmt_fadd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2946       case 1924 : /* fall through */
2947       case 1940 : /* fall through */
2948       case 1956 : /* fall through */
2949       case 1972 : /* fall through */
2950       case 1988 : /* fall through */
2951       case 2004 : /* fall through */
2952       case 2020 : /* fall through */
2953       case 2036 :
2954         entire_insn = entire_insn >> 16;
2955         itype = SH5_COMPACT_INSN_FCMPEQ_COMPACT; sh5_compact_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2956       case 1925 : /* fall through */
2957       case 1941 : /* fall through */
2958       case 1957 : /* fall through */
2959       case 1973 : /* fall through */
2960       case 1989 : /* fall through */
2961       case 2005 : /* fall through */
2962       case 2021 : /* fall through */
2963       case 2037 :
2964         entire_insn = entire_insn >> 16;
2965         itype = SH5_COMPACT_INSN_FCMPGT_COMPACT; sh5_compact_extract_sfmt_fcmpeq_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2966       case 1926 : /* fall through */
2967       case 1942 : /* fall through */
2968       case 1958 : /* fall through */
2969       case 1974 : /* fall through */
2970       case 1990 : /* fall through */
2971       case 2006 : /* fall through */
2972       case 2022 : /* fall through */
2973       case 2038 :
2974         entire_insn = entire_insn >> 16;
2975         itype = SH5_COMPACT_INSN_FMOV4_COMPACT; sh5_compact_extract_sfmt_fmov4_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2976       case 1927 : /* fall through */
2977       case 1943 : /* fall through */
2978       case 1959 : /* fall through */
2979       case 1975 : /* fall through */
2980       case 1991 : /* fall through */
2981       case 2007 : /* fall through */
2982       case 2023 : /* fall through */
2983       case 2039 :
2984         entire_insn = entire_insn >> 16;
2985         itype = SH5_COMPACT_INSN_FMOV7_COMPACT; sh5_compact_extract_sfmt_fmov7_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2986       case 1928 : /* fall through */
2987       case 1944 : /* fall through */
2988       case 1960 : /* fall through */
2989       case 1976 : /* fall through */
2990       case 1992 : /* fall through */
2991       case 2008 : /* fall through */
2992       case 2024 : /* fall through */
2993       case 2040 :
2994         entire_insn = entire_insn >> 16;
2995         itype = SH5_COMPACT_INSN_FMOV2_COMPACT; sh5_compact_extract_sfmt_fmov2_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
2996       case 1929 : /* fall through */
2997       case 1945 : /* fall through */
2998       case 1961 : /* fall through */
2999       case 1977 : /* fall through */
3000       case 1993 : /* fall through */
3001       case 2009 : /* fall through */
3002       case 2025 : /* fall through */
3003       case 2041 :
3004         entire_insn = entire_insn >> 16;
3005         itype = SH5_COMPACT_INSN_FMOV3_COMPACT; sh5_compact_extract_sfmt_fmov3_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3006       case 1930 : /* fall through */
3007       case 1946 : /* fall through */
3008       case 1962 : /* fall through */
3009       case 1978 : /* fall through */
3010       case 1994 : /* fall through */
3011       case 2010 : /* fall through */
3012       case 2026 : /* fall through */
3013       case 2042 :
3014         entire_insn = entire_insn >> 16;
3015         itype = SH5_COMPACT_INSN_FMOV5_COMPACT; sh5_compact_extract_sfmt_fmov5_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3016       case 1931 : /* fall through */
3017       case 1947 : /* fall through */
3018       case 1963 : /* fall through */
3019       case 1979 : /* fall through */
3020       case 1995 : /* fall through */
3021       case 2011 : /* fall through */
3022       case 2027 : /* fall through */
3023       case 2043 :
3024         entire_insn = entire_insn >> 16;
3025         itype = SH5_COMPACT_INSN_FMOV6_COMPACT; sh5_compact_extract_sfmt_fmov6_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3026       case 1932 : /* fall through */
3027       case 1948 : /* fall through */
3028       case 1964 : /* fall through */
3029       case 1980 : /* fall through */
3030       case 1996 : /* fall through */
3031       case 2012 : /* fall through */
3032       case 2028 : /* fall through */
3033       case 2044 :
3034         entire_insn = entire_insn >> 16;
3035         itype = SH5_COMPACT_INSN_FMOV1_COMPACT; sh5_compact_extract_sfmt_fmov1_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3036       case 1933 :
3037         {
3038           unsigned int val = (((insn >> 23) & (1 << 0)));
3039           switch (val)
3040           {
3041           case 0 :
3042             entire_insn = entire_insn >> 16;
3043             itype = SH5_COMPACT_INSN_FSTS_COMPACT; sh5_compact_extract_sfmt_fsts_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3044           case 1 :
3045             entire_insn = entire_insn >> 16;
3046             itype = SH5_COMPACT_INSN_FLDI0_COMPACT; sh5_compact_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3047           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3048           }
3049         }
3050       case 1934 : /* fall through */
3051       case 1950 : /* fall through */
3052       case 1966 : /* fall through */
3053       case 1982 : /* fall through */
3054       case 1998 : /* fall through */
3055       case 2014 : /* fall through */
3056       case 2030 : /* fall through */
3057       case 2046 :
3058         entire_insn = entire_insn >> 16;
3059         itype = SH5_COMPACT_INSN_FMAC_COMPACT; sh5_compact_extract_sfmt_fmac_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3060       case 1949 :
3061         {
3062           unsigned int val = (((insn >> 23) & (1 << 0)));
3063           switch (val)
3064           {
3065           case 0 :
3066             entire_insn = entire_insn >> 16;
3067             itype = SH5_COMPACT_INSN_FLDS_COMPACT; sh5_compact_extract_sfmt_flds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3068           case 1 :
3069             entire_insn = entire_insn >> 16;
3070             itype = SH5_COMPACT_INSN_FLDI1_COMPACT; sh5_compact_extract_sfmt_fldi0_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3071           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3072           }
3073         }
3074       case 1965 :
3075         {
3076           unsigned int val = (((insn >> 23) & (1 << 0)));
3077           switch (val)
3078           {
3079           case 0 :
3080             entire_insn = entire_insn >> 16;
3081             itype = SH5_COMPACT_INSN_FLOAT_COMPACT; sh5_compact_extract_sfmt_float_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3082           case 1 :
3083             entire_insn = entire_insn >> 16;
3084             if ((entire_insn & 0xf1ff) == 0xf0ad)
3085               { itype = SH5_COMPACT_INSN_FCNVSD_COMPACT; sh5_compact_extract_sfmt_fcnvsd_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
3086             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3087           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3088           }
3089         }
3090       case 1981 :
3091         {
3092           unsigned int val = (((insn >> 23) & (1 << 0)));
3093           switch (val)
3094           {
3095           case 0 :
3096             entire_insn = entire_insn >> 16;
3097             itype = SH5_COMPACT_INSN_FTRC_COMPACT; sh5_compact_extract_sfmt_ftrc_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3098           case 1 :
3099             entire_insn = entire_insn >> 16;
3100             if ((entire_insn & 0xf1ff) == 0xf0bd)
3101               { itype = SH5_COMPACT_INSN_FCNVDS_COMPACT; sh5_compact_extract_sfmt_fcnvds_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
3102             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3103           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3104           }
3105         }
3106       case 1997 :
3107         entire_insn = entire_insn >> 16;
3108         if ((entire_insn & 0xf0ff) == 0xf04d)
3109           { itype = SH5_COMPACT_INSN_FNEG_COMPACT; sh5_compact_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
3110         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3111       case 2013 :
3112         entire_insn = entire_insn >> 16;
3113         if ((entire_insn & 0xf0ff) == 0xf05d)
3114           { itype = SH5_COMPACT_INSN_FABS_COMPACT; sh5_compact_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
3115         itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3116       case 2029 :
3117         {
3118           unsigned int val = (((insn >> 23) & (1 << 0)));
3119           switch (val)
3120           {
3121           case 0 :
3122             entire_insn = entire_insn >> 16;
3123             itype = SH5_COMPACT_INSN_FSQRT_COMPACT; sh5_compact_extract_sfmt_fabs_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3124           case 1 :
3125             entire_insn = entire_insn >> 16;
3126             itype = SH5_COMPACT_INSN_FIPR_COMPACT; sh5_compact_extract_sfmt_fipr_compact (this, current_cpu, pc, base_insn, entire_insn); goto done;
3127           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3128           }
3129         }
3130       case 2045 :
3131         {
3132           unsigned int val = (((insn >> 26) & (1 << 1)) | ((insn >> 25) & (1 << 0)));
3133           switch (val)
3134           {
3135           case 0 : /* fall through */
3136           case 2 :
3137             entire_insn = entire_insn >> 16;
3138             if ((entire_insn & 0xf3ff) == 0xf1fd)
3139               { itype = SH5_COMPACT_INSN_FTRV_COMPACT; sh5_compact_extract_sfmt_ftrv_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
3140             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3141           case 1 :
3142             entire_insn = entire_insn >> 16;
3143             if ((entire_insn & 0xffff) == 0xf3fd)
3144               { itype = SH5_COMPACT_INSN_FSCHG_COMPACT; sh5_compact_extract_sfmt_fschg_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
3145             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3146           case 3 :
3147             entire_insn = entire_insn >> 16;
3148             if ((entire_insn & 0xffff) == 0xfbfd)
3149               { itype = SH5_COMPACT_INSN_FRCHG_COMPACT; sh5_compact_extract_sfmt_frchg_compact (this, current_cpu, pc, base_insn, entire_insn); goto done; }
3150             itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3151           default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3152           }
3153         }
3154       default : itype = SH5_COMPACT_INSN_X_INVALID; sh5_compact_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
3155       }
3156     }
3157
3158   }
3159
3160   /* The instruction has been decoded and fields extracted.  */
3161   done:
3162
3163   this->addr = pc;
3164   // FIXME: To be redone (to handle ISA variants).
3165   this->idesc = & sh5_compact_idesc::idesc_table[itype];
3166   // ??? record semantic handler?
3167   assert(this->idesc->sem_index == itype);
3168 }
3169
3170 void
3171 sh5_compact_extract_sfmt_empty (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3172     sh5_compact_insn_word insn = entire_insn;
3173 #define FLD(f) abuf->fields.sfmt_empty.f
3174
3175
3176   /* Record the fields for the semantic handler.  */
3177   if (UNLIKELY(current_cpu->trace_extract_p))
3178     {
3179       current_cpu->trace_stream 
3180         << "0x" << hex << pc << dec << " (sfmt_empty)\t"
3181         << endl;
3182     }
3183
3184 #undef FLD
3185 }
3186
3187 void
3188 sh5_compact_extract_sfmt_add_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3189     sh5_compact_insn_word insn = entire_insn;
3190 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3191     UINT f_rn;
3192     UINT f_rm;
3193
3194     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3195     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3196
3197   /* Record the fields for the semantic handler.  */
3198   FLD (f_rm) = f_rm;
3199   FLD (f_rn) = f_rn;
3200   if (UNLIKELY(current_cpu->trace_extract_p))
3201     {
3202       current_cpu->trace_stream 
3203         << "0x" << hex << pc << dec << " (sfmt_add_compact)\t"
3204         << " f_rm:0x" << hex << f_rm << dec
3205         << " f_rn:0x" << hex << f_rn << dec
3206         << endl;
3207     }
3208
3209   /* Record the fields for profiling.  */
3210   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3211     {
3212       FLD (in_rm) = f_rm;
3213       FLD (in_rn) = f_rn;
3214       FLD (out_rn) = f_rn;
3215     }
3216 #undef FLD
3217 }
3218
3219 void
3220 sh5_compact_extract_sfmt_addi_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3221     sh5_compact_insn_word insn = entire_insn;
3222 #define FLD(f) abuf->fields.sfmt_addi_compact.f
3223     UINT f_rn;
3224     UINT f_imm8;
3225
3226     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3227     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3228
3229   /* Record the fields for the semantic handler.  */
3230   FLD (f_imm8) = f_imm8;
3231   FLD (f_rn) = f_rn;
3232   if (UNLIKELY(current_cpu->trace_extract_p))
3233     {
3234       current_cpu->trace_stream 
3235         << "0x" << hex << pc << dec << " (sfmt_addi_compact)\t"
3236         << " f_imm8:0x" << hex << f_imm8 << dec
3237         << " f_rn:0x" << hex << f_rn << dec
3238         << endl;
3239     }
3240
3241   /* Record the fields for profiling.  */
3242   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3243     {
3244       FLD (in_rn) = f_rn;
3245       FLD (out_rn) = f_rn;
3246     }
3247 #undef FLD
3248 }
3249
3250 void
3251 sh5_compact_extract_sfmt_addc_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3252     sh5_compact_insn_word insn = entire_insn;
3253 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3254     UINT f_rn;
3255     UINT f_rm;
3256
3257     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3258     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3259
3260   /* Record the fields for the semantic handler.  */
3261   FLD (f_rm) = f_rm;
3262   FLD (f_rn) = f_rn;
3263   if (UNLIKELY(current_cpu->trace_extract_p))
3264     {
3265       current_cpu->trace_stream 
3266         << "0x" << hex << pc << dec << " (sfmt_addc_compact)\t"
3267         << " f_rm:0x" << hex << f_rm << dec
3268         << " f_rn:0x" << hex << f_rn << dec
3269         << endl;
3270     }
3271
3272   /* Record the fields for profiling.  */
3273   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3274     {
3275       FLD (in_rm) = f_rm;
3276       FLD (in_rn) = f_rn;
3277       FLD (out_rn) = f_rn;
3278     }
3279 #undef FLD
3280 }
3281
3282 void
3283 sh5_compact_extract_sfmt_addv_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3284     sh5_compact_insn_word insn = entire_insn;
3285 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3286     UINT f_rn;
3287     UINT f_rm;
3288
3289     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3290     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3291
3292   /* Record the fields for the semantic handler.  */
3293   FLD (f_rm) = f_rm;
3294   FLD (f_rn) = f_rn;
3295   if (UNLIKELY(current_cpu->trace_extract_p))
3296     {
3297       current_cpu->trace_stream 
3298         << "0x" << hex << pc << dec << " (sfmt_addv_compact)\t"
3299         << " f_rm:0x" << hex << f_rm << dec
3300         << " f_rn:0x" << hex << f_rn << dec
3301         << endl;
3302     }
3303
3304   /* Record the fields for profiling.  */
3305   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3306     {
3307       FLD (in_rm) = f_rm;
3308       FLD (in_rn) = f_rn;
3309       FLD (out_rn) = f_rn;
3310     }
3311 #undef FLD
3312 }
3313
3314 void
3315 sh5_compact_extract_sfmt_and_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3316     sh5_compact_insn_word insn = entire_insn;
3317 #define FLD(f) abuf->fields.sfmt_and_compact.f
3318     UINT f_rn;
3319     UINT f_rm;
3320
3321     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3322     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3323
3324   /* Record the fields for the semantic handler.  */
3325   FLD (f_rm) = f_rm;
3326   FLD (f_rn) = f_rn;
3327   if (UNLIKELY(current_cpu->trace_extract_p))
3328     {
3329       current_cpu->trace_stream 
3330         << "0x" << hex << pc << dec << " (sfmt_and_compact)\t"
3331         << " f_rm:0x" << hex << f_rm << dec
3332         << " f_rn:0x" << hex << f_rn << dec
3333         << endl;
3334     }
3335
3336   /* Record the fields for profiling.  */
3337   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3338     {
3339       FLD (in_rm64) = f_rm;
3340       FLD (in_rn64) = f_rn;
3341       FLD (out_rn64) = f_rn;
3342     }
3343 #undef FLD
3344 }
3345
3346 void
3347 sh5_compact_extract_sfmt_andi_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3348     sh5_compact_insn_word insn = entire_insn;
3349 #define FLD(f) abuf->fields.sfmt_andi_compact.f
3350     UINT f_imm8;
3351
3352     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3353
3354   /* Record the fields for the semantic handler.  */
3355   FLD (f_imm8) = f_imm8;
3356   if (UNLIKELY(current_cpu->trace_extract_p))
3357     {
3358       current_cpu->trace_stream 
3359         << "0x" << hex << pc << dec << " (sfmt_andi_compact)\t"
3360         << " f_imm8:0x" << hex << f_imm8 << dec
3361         << endl;
3362     }
3363
3364   /* Record the fields for profiling.  */
3365   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3366     {
3367       FLD (in_r0) = 0;
3368       FLD (out_r0) = 0;
3369     }
3370 #undef FLD
3371 }
3372
3373 void
3374 sh5_compact_extract_sfmt_andb_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3375     sh5_compact_insn_word insn = entire_insn;
3376 #define FLD(f) abuf->fields.sfmt_andi_compact.f
3377     UINT f_imm8;
3378
3379     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3380
3381   /* Record the fields for the semantic handler.  */
3382   FLD (f_imm8) = f_imm8;
3383   if (UNLIKELY(current_cpu->trace_extract_p))
3384     {
3385       current_cpu->trace_stream 
3386         << "0x" << hex << pc << dec << " (sfmt_andb_compact)\t"
3387         << " f_imm8:0x" << hex << f_imm8 << dec
3388         << endl;
3389     }
3390
3391   /* Record the fields for profiling.  */
3392   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3393     {
3394       FLD (in_r0) = 0;
3395     }
3396 #undef FLD
3397 }
3398
3399 void
3400 sh5_compact_extract_sfmt_bf_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3401     sh5_compact_insn_word insn = entire_insn;
3402 #define FLD(f) abuf->fields.sfmt_bf_compact.f
3403     SI f_disp8;
3404
3405     f_disp8 = ((((EXTRACT_MSB0_SINT (insn, 16, 8, 8)) << (1))) + (((pc) + (4))));
3406
3407   /* Record the fields for the semantic handler.  */
3408   FLD (i_disp8) = f_disp8;
3409   if (UNLIKELY(current_cpu->trace_extract_p))
3410     {
3411       current_cpu->trace_stream 
3412         << "0x" << hex << pc << dec << " (sfmt_bf_compact)\t"
3413         << endl;
3414     }
3415
3416   /* Record the fields for profiling.  */
3417   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3418     {
3419     }
3420 #undef FLD
3421 }
3422
3423 void
3424 sh5_compact_extract_sfmt_bfs_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3425     sh5_compact_insn_word insn = entire_insn;
3426 #define FLD(f) abuf->fields.sfmt_bf_compact.f
3427     SI f_disp8;
3428
3429     f_disp8 = ((((EXTRACT_MSB0_SINT (insn, 16, 8, 8)) << (1))) + (((pc) + (4))));
3430
3431   /* Record the fields for the semantic handler.  */
3432   FLD (i_disp8) = f_disp8;
3433   if (UNLIKELY(current_cpu->trace_extract_p))
3434     {
3435       current_cpu->trace_stream 
3436         << "0x" << hex << pc << dec << " (sfmt_bfs_compact)\t"
3437         << endl;
3438     }
3439
3440   /* Record the fields for profiling.  */
3441   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3442     {
3443     }
3444 #undef FLD
3445 }
3446
3447 void
3448 sh5_compact_extract_sfmt_bra_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3449     sh5_compact_insn_word insn = entire_insn;
3450 #define FLD(f) abuf->fields.sfmt_bra_compact.f
3451     SI f_disp12;
3452
3453     f_disp12 = ((((EXTRACT_MSB0_SINT (insn, 16, 4, 12)) << (1))) + (((pc) + (4))));
3454
3455   /* Record the fields for the semantic handler.  */
3456   FLD (i_disp12) = f_disp12;
3457   if (UNLIKELY(current_cpu->trace_extract_p))
3458     {
3459       current_cpu->trace_stream 
3460         << "0x" << hex << pc << dec << " (sfmt_bra_compact)\t"
3461         << endl;
3462     }
3463
3464   /* Record the fields for profiling.  */
3465   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3466     {
3467     }
3468 #undef FLD
3469 }
3470
3471 void
3472 sh5_compact_extract_sfmt_braf_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3473     sh5_compact_insn_word insn = entire_insn;
3474 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3475     UINT f_rn;
3476
3477     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3478
3479   /* Record the fields for the semantic handler.  */
3480   FLD (f_rn) = f_rn;
3481   if (UNLIKELY(current_cpu->trace_extract_p))
3482     {
3483       current_cpu->trace_stream 
3484         << "0x" << hex << pc << dec << " (sfmt_braf_compact)\t"
3485         << " f_rn:0x" << hex << f_rn << dec
3486         << endl;
3487     }
3488
3489   /* Record the fields for profiling.  */
3490   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3491     {
3492       FLD (in_rn) = f_rn;
3493     }
3494 #undef FLD
3495 }
3496
3497 void
3498 sh5_compact_extract_sfmt_brk_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3499     sh5_compact_insn_word insn = entire_insn;
3500 #define FLD(f) abuf->fields.sfmt_empty.f
3501
3502
3503   /* Record the fields for the semantic handler.  */
3504   if (UNLIKELY(current_cpu->trace_extract_p))
3505     {
3506       current_cpu->trace_stream 
3507         << "0x" << hex << pc << dec << " (sfmt_brk_compact)\t"
3508         << endl;
3509     }
3510
3511   /* Record the fields for profiling.  */
3512   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3513     {
3514     }
3515 #undef FLD
3516 }
3517
3518 void
3519 sh5_compact_extract_sfmt_bsr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3520     sh5_compact_insn_word insn = entire_insn;
3521 #define FLD(f) abuf->fields.sfmt_bra_compact.f
3522     SI f_disp12;
3523
3524     f_disp12 = ((((EXTRACT_MSB0_SINT (insn, 16, 4, 12)) << (1))) + (((pc) + (4))));
3525
3526   /* Record the fields for the semantic handler.  */
3527   FLD (i_disp12) = f_disp12;
3528   if (UNLIKELY(current_cpu->trace_extract_p))
3529     {
3530       current_cpu->trace_stream 
3531         << "0x" << hex << pc << dec << " (sfmt_bsr_compact)\t"
3532         << endl;
3533     }
3534
3535   /* Record the fields for profiling.  */
3536   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3537     {
3538     }
3539 #undef FLD
3540 }
3541
3542 void
3543 sh5_compact_extract_sfmt_bsrf_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3544     sh5_compact_insn_word insn = entire_insn;
3545 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3546     UINT f_rn;
3547
3548     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3549
3550   /* Record the fields for the semantic handler.  */
3551   FLD (f_rn) = f_rn;
3552   if (UNLIKELY(current_cpu->trace_extract_p))
3553     {
3554       current_cpu->trace_stream 
3555         << "0x" << hex << pc << dec << " (sfmt_bsrf_compact)\t"
3556         << " f_rn:0x" << hex << f_rn << dec
3557         << endl;
3558     }
3559
3560   /* Record the fields for profiling.  */
3561   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3562     {
3563       FLD (in_rn) = f_rn;
3564     }
3565 #undef FLD
3566 }
3567
3568 void
3569 sh5_compact_extract_sfmt_clrmac_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3570     sh5_compact_insn_word insn = entire_insn;
3571 #define FLD(f) abuf->fields.sfmt_empty.f
3572
3573
3574   /* Record the fields for the semantic handler.  */
3575   if (UNLIKELY(current_cpu->trace_extract_p))
3576     {
3577       current_cpu->trace_stream 
3578         << "0x" << hex << pc << dec << " (sfmt_clrmac_compact)\t"
3579         << endl;
3580     }
3581
3582 #undef FLD
3583 }
3584
3585 void
3586 sh5_compact_extract_sfmt_clrs_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3587     sh5_compact_insn_word insn = entire_insn;
3588 #define FLD(f) abuf->fields.sfmt_empty.f
3589
3590
3591   /* Record the fields for the semantic handler.  */
3592   if (UNLIKELY(current_cpu->trace_extract_p))
3593     {
3594       current_cpu->trace_stream 
3595         << "0x" << hex << pc << dec << " (sfmt_clrs_compact)\t"
3596         << endl;
3597     }
3598
3599 #undef FLD
3600 }
3601
3602 void
3603 sh5_compact_extract_sfmt_clrt_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3604     sh5_compact_insn_word insn = entire_insn;
3605 #define FLD(f) abuf->fields.sfmt_empty.f
3606
3607
3608   /* Record the fields for the semantic handler.  */
3609   if (UNLIKELY(current_cpu->trace_extract_p))
3610     {
3611       current_cpu->trace_stream 
3612         << "0x" << hex << pc << dec << " (sfmt_clrt_compact)\t"
3613         << endl;
3614     }
3615
3616 #undef FLD
3617 }
3618
3619 void
3620 sh5_compact_extract_sfmt_cmpeq_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3621     sh5_compact_insn_word insn = entire_insn;
3622 #define FLD(f) abuf->fields.sfmt_movl13_compact.f
3623     UINT f_rn;
3624     UINT f_rm;
3625
3626     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3627     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3628
3629   /* Record the fields for the semantic handler.  */
3630   FLD (f_rm) = f_rm;
3631   FLD (f_rn) = f_rn;
3632   if (UNLIKELY(current_cpu->trace_extract_p))
3633     {
3634       current_cpu->trace_stream 
3635         << "0x" << hex << pc << dec << " (sfmt_cmpeq_compact)\t"
3636         << " f_rm:0x" << hex << f_rm << dec
3637         << " f_rn:0x" << hex << f_rn << dec
3638         << endl;
3639     }
3640
3641   /* Record the fields for profiling.  */
3642   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3643     {
3644       FLD (in_rm) = f_rm;
3645       FLD (in_rn) = f_rn;
3646     }
3647 #undef FLD
3648 }
3649
3650 void
3651 sh5_compact_extract_sfmt_cmpeqi_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3652     sh5_compact_insn_word insn = entire_insn;
3653 #define FLD(f) abuf->fields.sfmt_andi_compact.f
3654     UINT f_imm8;
3655
3656     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3657
3658   /* Record the fields for the semantic handler.  */
3659   FLD (f_imm8) = f_imm8;
3660   if (UNLIKELY(current_cpu->trace_extract_p))
3661     {
3662       current_cpu->trace_stream 
3663         << "0x" << hex << pc << dec << " (sfmt_cmpeqi_compact)\t"
3664         << " f_imm8:0x" << hex << f_imm8 << dec
3665         << endl;
3666     }
3667
3668   /* Record the fields for profiling.  */
3669   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3670     {
3671       FLD (in_r0) = 0;
3672     }
3673 #undef FLD
3674 }
3675
3676 void
3677 sh5_compact_extract_sfmt_cmppl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3678     sh5_compact_insn_word insn = entire_insn;
3679 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3680     UINT f_rn;
3681
3682     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3683
3684   /* Record the fields for the semantic handler.  */
3685   FLD (f_rn) = f_rn;
3686   if (UNLIKELY(current_cpu->trace_extract_p))
3687     {
3688       current_cpu->trace_stream 
3689         << "0x" << hex << pc << dec << " (sfmt_cmppl_compact)\t"
3690         << " f_rn:0x" << hex << f_rn << dec
3691         << endl;
3692     }
3693
3694   /* Record the fields for profiling.  */
3695   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3696     {
3697       FLD (in_rn) = f_rn;
3698     }
3699 #undef FLD
3700 }
3701
3702 void
3703 sh5_compact_extract_sfmt_div0s_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3704     sh5_compact_insn_word insn = entire_insn;
3705 #define FLD(f) abuf->fields.sfmt_movl13_compact.f
3706     UINT f_rn;
3707     UINT f_rm;
3708
3709     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3710     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3711
3712   /* Record the fields for the semantic handler.  */
3713   FLD (f_rm) = f_rm;
3714   FLD (f_rn) = f_rn;
3715   if (UNLIKELY(current_cpu->trace_extract_p))
3716     {
3717       current_cpu->trace_stream 
3718         << "0x" << hex << pc << dec << " (sfmt_div0s_compact)\t"
3719         << " f_rm:0x" << hex << f_rm << dec
3720         << " f_rn:0x" << hex << f_rn << dec
3721         << endl;
3722     }
3723
3724   /* Record the fields for profiling.  */
3725   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3726     {
3727       FLD (in_rm) = f_rm;
3728       FLD (in_rn) = f_rn;
3729     }
3730 #undef FLD
3731 }
3732
3733 void
3734 sh5_compact_extract_sfmt_div0u_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3735     sh5_compact_insn_word insn = entire_insn;
3736 #define FLD(f) abuf->fields.sfmt_empty.f
3737
3738
3739   /* Record the fields for the semantic handler.  */
3740   if (UNLIKELY(current_cpu->trace_extract_p))
3741     {
3742       current_cpu->trace_stream 
3743         << "0x" << hex << pc << dec << " (sfmt_div0u_compact)\t"
3744         << endl;
3745     }
3746
3747 #undef FLD
3748 }
3749
3750 void
3751 sh5_compact_extract_sfmt_div1_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3752     sh5_compact_insn_word insn = entire_insn;
3753 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3754     UINT f_rn;
3755     UINT f_rm;
3756
3757     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3758     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3759
3760   /* Record the fields for the semantic handler.  */
3761   FLD (f_rm) = f_rm;
3762   FLD (f_rn) = f_rn;
3763   if (UNLIKELY(current_cpu->trace_extract_p))
3764     {
3765       current_cpu->trace_stream 
3766         << "0x" << hex << pc << dec << " (sfmt_div1_compact)\t"
3767         << " f_rm:0x" << hex << f_rm << dec
3768         << " f_rn:0x" << hex << f_rn << dec
3769         << endl;
3770     }
3771
3772   /* Record the fields for profiling.  */
3773   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3774     {
3775       FLD (in_rm) = f_rm;
3776       FLD (in_rn) = f_rn;
3777       FLD (out_rn) = f_rn;
3778     }
3779 #undef FLD
3780 }
3781
3782 void
3783 sh5_compact_extract_sfmt_divu_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3784     sh5_compact_insn_word insn = entire_insn;
3785 #define FLD(f) abuf->fields.sfmt_divu_compact.f
3786     UINT f_rn;
3787
3788     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3789
3790   /* Record the fields for the semantic handler.  */
3791   FLD (f_rn) = f_rn;
3792   if (UNLIKELY(current_cpu->trace_extract_p))
3793     {
3794       current_cpu->trace_stream 
3795         << "0x" << hex << pc << dec << " (sfmt_divu_compact)\t"
3796         << " f_rn:0x" << hex << f_rn << dec
3797         << endl;
3798     }
3799
3800   /* Record the fields for profiling.  */
3801   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3802     {
3803       FLD (in_r0) = 0;
3804       FLD (in_rn) = f_rn;
3805       FLD (out_rn) = f_rn;
3806     }
3807 #undef FLD
3808 }
3809
3810 void
3811 sh5_compact_extract_sfmt_dmulsl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3812     sh5_compact_insn_word insn = entire_insn;
3813 #define FLD(f) abuf->fields.sfmt_movl13_compact.f
3814     UINT f_rn;
3815     UINT f_rm;
3816
3817     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3818     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3819
3820   /* Record the fields for the semantic handler.  */
3821   FLD (f_rm) = f_rm;
3822   FLD (f_rn) = f_rn;
3823   if (UNLIKELY(current_cpu->trace_extract_p))
3824     {
3825       current_cpu->trace_stream 
3826         << "0x" << hex << pc << dec << " (sfmt_dmulsl_compact)\t"
3827         << " f_rm:0x" << hex << f_rm << dec
3828         << " f_rn:0x" << hex << f_rn << dec
3829         << endl;
3830     }
3831
3832   /* Record the fields for profiling.  */
3833   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3834     {
3835       FLD (in_rm) = f_rm;
3836       FLD (in_rn) = f_rn;
3837     }
3838 #undef FLD
3839 }
3840
3841 void
3842 sh5_compact_extract_sfmt_dt_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3843     sh5_compact_insn_word insn = entire_insn;
3844 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3845     UINT f_rn;
3846
3847     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3848
3849   /* Record the fields for the semantic handler.  */
3850   FLD (f_rn) = f_rn;
3851   if (UNLIKELY(current_cpu->trace_extract_p))
3852     {
3853       current_cpu->trace_stream 
3854         << "0x" << hex << pc << dec << " (sfmt_dt_compact)\t"
3855         << " f_rn:0x" << hex << f_rn << dec
3856         << endl;
3857     }
3858
3859   /* Record the fields for profiling.  */
3860   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3861     {
3862       FLD (in_rn) = f_rn;
3863       FLD (out_rn) = f_rn;
3864     }
3865 #undef FLD
3866 }
3867
3868 void
3869 sh5_compact_extract_sfmt_extsb_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3870     sh5_compact_insn_word insn = entire_insn;
3871 #define FLD(f) abuf->fields.sfmt_movl12_compact.f
3872     UINT f_rn;
3873     UINT f_rm;
3874
3875     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3876     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3877
3878   /* Record the fields for the semantic handler.  */
3879   FLD (f_rm) = f_rm;
3880   FLD (f_rn) = f_rn;
3881   if (UNLIKELY(current_cpu->trace_extract_p))
3882     {
3883       current_cpu->trace_stream 
3884         << "0x" << hex << pc << dec << " (sfmt_extsb_compact)\t"
3885         << " f_rm:0x" << hex << f_rm << dec
3886         << " f_rn:0x" << hex << f_rn << dec
3887         << endl;
3888     }
3889
3890   /* Record the fields for profiling.  */
3891   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3892     {
3893       FLD (in_rm) = f_rm;
3894       FLD (out_rn) = f_rn;
3895     }
3896 #undef FLD
3897 }
3898
3899 void
3900 sh5_compact_extract_sfmt_fabs_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3901     sh5_compact_insn_word insn = entire_insn;
3902 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3903     UINT f_rn;
3904
3905     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3906
3907   /* Record the fields for the semantic handler.  */
3908   FLD (f_rn) = f_rn;
3909   if (UNLIKELY(current_cpu->trace_extract_p))
3910     {
3911       current_cpu->trace_stream 
3912         << "0x" << hex << pc << dec << " (sfmt_fabs_compact)\t"
3913         << " f_rn:0x" << hex << f_rn << dec
3914         << endl;
3915     }
3916
3917   /* Record the fields for profiling.  */
3918   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3919     {
3920       FLD (in_fsdn) = f_rn;
3921       FLD (out_fsdn) = f_rn;
3922     }
3923 #undef FLD
3924 }
3925
3926 void
3927 sh5_compact_extract_sfmt_fadd_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3928     sh5_compact_insn_word insn = entire_insn;
3929 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3930     UINT f_rn;
3931     UINT f_rm;
3932
3933     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3934     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3935
3936   /* Record the fields for the semantic handler.  */
3937   FLD (f_rm) = f_rm;
3938   FLD (f_rn) = f_rn;
3939   if (UNLIKELY(current_cpu->trace_extract_p))
3940     {
3941       current_cpu->trace_stream 
3942         << "0x" << hex << pc << dec << " (sfmt_fadd_compact)\t"
3943         << " f_rm:0x" << hex << f_rm << dec
3944         << " f_rn:0x" << hex << f_rn << dec
3945         << endl;
3946     }
3947
3948   /* Record the fields for profiling.  */
3949   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3950     {
3951       FLD (in_fsdm) = f_rm;
3952       FLD (in_fsdn) = f_rn;
3953       FLD (out_fsdn) = f_rn;
3954     }
3955 #undef FLD
3956 }
3957
3958 void
3959 sh5_compact_extract_sfmt_fcmpeq_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3960     sh5_compact_insn_word insn = entire_insn;
3961 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3962     UINT f_rn;
3963     UINT f_rm;
3964
3965     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
3966     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3967
3968   /* Record the fields for the semantic handler.  */
3969   FLD (f_rm) = f_rm;
3970   FLD (f_rn) = f_rn;
3971   if (UNLIKELY(current_cpu->trace_extract_p))
3972     {
3973       current_cpu->trace_stream 
3974         << "0x" << hex << pc << dec << " (sfmt_fcmpeq_compact)\t"
3975         << " f_rm:0x" << hex << f_rm << dec
3976         << " f_rn:0x" << hex << f_rn << dec
3977         << endl;
3978     }
3979
3980   /* Record the fields for profiling.  */
3981   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
3982     {
3983       FLD (in_fsdm) = f_rm;
3984       FLD (in_fsdn) = f_rn;
3985     }
3986 #undef FLD
3987 }
3988
3989 void
3990 sh5_compact_extract_sfmt_fcnvds_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
3991     sh5_compact_insn_word insn = entire_insn;
3992 #define FLD(f) abuf->fields.sfmt_fcnvds_compact.f
3993     SI f_dn;
3994
3995     f_dn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 3)) << (1));
3996
3997   /* Record the fields for the semantic handler.  */
3998   FLD (f_dn) = f_dn;
3999   if (UNLIKELY(current_cpu->trace_extract_p))
4000     {
4001       current_cpu->trace_stream 
4002         << "0x" << hex << pc << dec << " (sfmt_fcnvds_compact)\t"
4003         << " f_dn:0x" << hex << f_dn << dec
4004         << endl;
4005     }
4006
4007   /* Record the fields for profiling.  */
4008   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4009     {
4010       FLD (in_drn) = f_dn;
4011       FLD (out_fpul) = 32;
4012     }
4013 #undef FLD
4014 }
4015
4016 void
4017 sh5_compact_extract_sfmt_fcnvsd_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4018     sh5_compact_insn_word insn = entire_insn;
4019 #define FLD(f) abuf->fields.sfmt_fcnvsd_compact.f
4020     SI f_dn;
4021
4022     f_dn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 3)) << (1));
4023
4024   /* Record the fields for the semantic handler.  */
4025   FLD (f_dn) = f_dn;
4026   if (UNLIKELY(current_cpu->trace_extract_p))
4027     {
4028       current_cpu->trace_stream 
4029         << "0x" << hex << pc << dec << " (sfmt_fcnvsd_compact)\t"
4030         << " f_dn:0x" << hex << f_dn << dec
4031         << endl;
4032     }
4033
4034   /* Record the fields for profiling.  */
4035   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4036     {
4037       FLD (in_fpul) = 32;
4038       FLD (out_drn) = f_dn;
4039     }
4040 #undef FLD
4041 }
4042
4043 void
4044 sh5_compact_extract_sfmt_fipr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4045     sh5_compact_insn_word insn = entire_insn;
4046 #define FLD(f) abuf->fields.sfmt_fipr_compact.f
4047     SI f_vn;
4048     SI f_vm;
4049
4050     f_vn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 2)) << (2));
4051     f_vm = ((EXTRACT_MSB0_UINT (insn, 16, 6, 2)) << (2));
4052
4053   /* Record the fields for the semantic handler.  */
4054   FLD (f_vm) = f_vm;
4055   FLD (f_vn) = f_vn;
4056   if (UNLIKELY(current_cpu->trace_extract_p))
4057     {
4058       current_cpu->trace_stream 
4059         << "0x" << hex << pc << dec << " (sfmt_fipr_compact)\t"
4060         << " f_vm:0x" << hex << f_vm << dec
4061         << " f_vn:0x" << hex << f_vn << dec
4062         << endl;
4063     }
4064
4065 #undef FLD
4066 }
4067
4068 void
4069 sh5_compact_extract_sfmt_flds_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4070     sh5_compact_insn_word insn = entire_insn;
4071 #define FLD(f) abuf->fields.sfmt_flds_compact.f
4072     UINT f_rn;
4073
4074     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4075
4076   /* Record the fields for the semantic handler.  */
4077   FLD (f_rn) = f_rn;
4078   if (UNLIKELY(current_cpu->trace_extract_p))
4079     {
4080       current_cpu->trace_stream 
4081         << "0x" << hex << pc << dec << " (sfmt_flds_compact)\t"
4082         << " f_rn:0x" << hex << f_rn << dec
4083         << endl;
4084     }
4085
4086   /* Record the fields for profiling.  */
4087   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4088     {
4089       FLD (in_frn) = f_rn;
4090       FLD (out_fpul) = 32;
4091     }
4092 #undef FLD
4093 }
4094
4095 void
4096 sh5_compact_extract_sfmt_fldi0_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4097     sh5_compact_insn_word insn = entire_insn;
4098 #define FLD(f) abuf->fields.sfmt_fsts_compact.f
4099     UINT f_rn;
4100
4101     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4102
4103   /* Record the fields for the semantic handler.  */
4104   FLD (f_rn) = f_rn;
4105   if (UNLIKELY(current_cpu->trace_extract_p))
4106     {
4107       current_cpu->trace_stream 
4108         << "0x" << hex << pc << dec << " (sfmt_fldi0_compact)\t"
4109         << " f_rn:0x" << hex << f_rn << dec
4110         << endl;
4111     }
4112
4113   /* Record the fields for profiling.  */
4114   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4115     {
4116       FLD (out_frn) = f_rn;
4117     }
4118 #undef FLD
4119 }
4120
4121 void
4122 sh5_compact_extract_sfmt_float_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4123     sh5_compact_insn_word insn = entire_insn;
4124 #define FLD(f) abuf->fields.sfmt_float_compact.f
4125     UINT f_rn;
4126
4127     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4128
4129   /* Record the fields for the semantic handler.  */
4130   FLD (f_rn) = f_rn;
4131   if (UNLIKELY(current_cpu->trace_extract_p))
4132     {
4133       current_cpu->trace_stream 
4134         << "0x" << hex << pc << dec << " (sfmt_float_compact)\t"
4135         << " f_rn:0x" << hex << f_rn << dec
4136         << endl;
4137     }
4138
4139   /* Record the fields for profiling.  */
4140   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4141     {
4142       FLD (in_fpul) = 32;
4143       FLD (out_fsdn) = f_rn;
4144     }
4145 #undef FLD
4146 }
4147
4148 void
4149 sh5_compact_extract_sfmt_fmac_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4150     sh5_compact_insn_word insn = entire_insn;
4151 #define FLD(f) abuf->fields.sfmt_fmac_compact.f
4152     UINT f_rn;
4153     UINT f_rm;
4154
4155     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4156     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4157
4158   /* Record the fields for the semantic handler.  */
4159   FLD (f_rm) = f_rm;
4160   FLD (f_rn) = f_rn;
4161   if (UNLIKELY(current_cpu->trace_extract_p))
4162     {
4163       current_cpu->trace_stream 
4164         << "0x" << hex << pc << dec << " (sfmt_fmac_compact)\t"
4165         << " f_rm:0x" << hex << f_rm << dec
4166         << " f_rn:0x" << hex << f_rn << dec
4167         << endl;
4168     }
4169
4170   /* Record the fields for profiling.  */
4171   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4172     {
4173       FLD (in_fr0) = 0;
4174       FLD (in_frm) = f_rm;
4175       FLD (in_frn) = f_rn;
4176       FLD (out_frn) = f_rn;
4177     }
4178 #undef FLD
4179 }
4180
4181 void
4182 sh5_compact_extract_sfmt_fmov1_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4183     sh5_compact_insn_word insn = entire_insn;
4184 #define FLD(f) abuf->fields.sfmt_fmov1_compact.f
4185     UINT f_rn;
4186     UINT f_rm;
4187
4188     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4189     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4190
4191   /* Record the fields for the semantic handler.  */
4192   FLD (f_rm) = f_rm;
4193   FLD (f_rn) = f_rn;
4194   if (UNLIKELY(current_cpu->trace_extract_p))
4195     {
4196       current_cpu->trace_stream 
4197         << "0x" << hex << pc << dec << " (sfmt_fmov1_compact)\t"
4198         << " f_rm:0x" << hex << f_rm << dec
4199         << " f_rn:0x" << hex << f_rn << dec
4200         << endl;
4201     }
4202
4203   /* Record the fields for profiling.  */
4204   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4205     {
4206       FLD (in_fmovm) = f_rm;
4207       FLD (out_fmovn) = f_rn;
4208     }
4209 #undef FLD
4210 }
4211
4212 void
4213 sh5_compact_extract_sfmt_fmov2_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4214     sh5_compact_insn_word insn = entire_insn;
4215 #define FLD(f) abuf->fields.sfmt_fmov4_compact.f
4216     UINT f_rn;
4217     UINT f_rm;
4218
4219     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4220     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4221
4222   /* Record the fields for the semantic handler.  */
4223   FLD (f_rm) = f_rm;
4224   FLD (f_rn) = f_rn;
4225   if (UNLIKELY(current_cpu->trace_extract_p))
4226     {
4227       current_cpu->trace_stream 
4228         << "0x" << hex << pc << dec << " (sfmt_fmov2_compact)\t"
4229         << " f_rm:0x" << hex << f_rm << dec
4230         << " f_rn:0x" << hex << f_rn << dec
4231         << endl;
4232     }
4233
4234   /* Record the fields for profiling.  */
4235   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4236     {
4237       FLD (in_rm) = f_rm;
4238       FLD (out_fmovn) = f_rn;
4239     }
4240 #undef FLD
4241 }
4242
4243 void
4244 sh5_compact_extract_sfmt_fmov3_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4245     sh5_compact_insn_word insn = entire_insn;
4246 #define FLD(f) abuf->fields.sfmt_fmov3_compact.f
4247     UINT f_rn;
4248     UINT f_rm;
4249
4250     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4251     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4252
4253   /* Record the fields for the semantic handler.  */
4254   FLD (f_rm) = f_rm;
4255   FLD (f_rn) = f_rn;
4256   if (UNLIKELY(current_cpu->trace_extract_p))
4257     {
4258       current_cpu->trace_stream 
4259         << "0x" << hex << pc << dec << " (sfmt_fmov3_compact)\t"
4260         << " f_rm:0x" << hex << f_rm << dec
4261         << " f_rn:0x" << hex << f_rn << dec
4262         << endl;
4263     }
4264
4265   /* Record the fields for profiling.  */
4266   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4267     {
4268       FLD (in_rm) = f_rm;
4269       FLD (out_fmovn) = f_rn;
4270       FLD (out_rm) = f_rm;
4271     }
4272 #undef FLD
4273 }
4274
4275 void
4276 sh5_compact_extract_sfmt_fmov4_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4277     sh5_compact_insn_word insn = entire_insn;
4278 #define FLD(f) abuf->fields.sfmt_fmov4_compact.f
4279     UINT f_rn;
4280     UINT f_rm;
4281
4282     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4283     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4284
4285   /* Record the fields for the semantic handler.  */
4286   FLD (f_rm) = f_rm;
4287   FLD (f_rn) = f_rn;
4288   if (UNLIKELY(current_cpu->trace_extract_p))
4289     {
4290       current_cpu->trace_stream 
4291         << "0x" << hex << pc << dec << " (sfmt_fmov4_compact)\t"
4292         << " f_rm:0x" << hex << f_rm << dec
4293         << " f_rn:0x" << hex << f_rn << dec
4294         << endl;
4295     }
4296
4297   /* Record the fields for profiling.  */
4298   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4299     {
4300       FLD (in_r0) = 0;
4301       FLD (in_rm) = f_rm;
4302       FLD (out_fmovn) = f_rn;
4303     }
4304 #undef FLD
4305 }
4306
4307 void
4308 sh5_compact_extract_sfmt_fmov5_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4309     sh5_compact_insn_word insn = entire_insn;
4310 #define FLD(f) abuf->fields.sfmt_fmov7_compact.f
4311     UINT f_rn;
4312     UINT f_rm;
4313
4314     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4315     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4316
4317   /* Record the fields for the semantic handler.  */
4318   FLD (f_rm) = f_rm;
4319   FLD (f_rn) = f_rn;
4320   if (UNLIKELY(current_cpu->trace_extract_p))
4321     {
4322       current_cpu->trace_stream 
4323         << "0x" << hex << pc << dec << " (sfmt_fmov5_compact)\t"
4324         << " f_rm:0x" << hex << f_rm << dec
4325         << " f_rn:0x" << hex << f_rn << dec
4326         << endl;
4327     }
4328
4329   /* Record the fields for profiling.  */
4330   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4331     {
4332       FLD (in_fmovm) = f_rm;
4333       FLD (in_rn) = f_rn;
4334     }
4335 #undef FLD
4336 }
4337
4338 void
4339 sh5_compact_extract_sfmt_fmov6_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4340     sh5_compact_insn_word insn = entire_insn;
4341 #define FLD(f) abuf->fields.sfmt_fmov6_compact.f
4342     UINT f_rn;
4343     UINT f_rm;
4344
4345     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4346     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4347
4348   /* Record the fields for the semantic handler.  */
4349   FLD (f_rm) = f_rm;
4350   FLD (f_rn) = f_rn;
4351   if (UNLIKELY(current_cpu->trace_extract_p))
4352     {
4353       current_cpu->trace_stream 
4354         << "0x" << hex << pc << dec << " (sfmt_fmov6_compact)\t"
4355         << " f_rm:0x" << hex << f_rm << dec
4356         << " f_rn:0x" << hex << f_rn << dec
4357         << endl;
4358     }
4359
4360   /* Record the fields for profiling.  */
4361   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4362     {
4363       FLD (in_fmovm) = f_rm;
4364       FLD (in_rn) = f_rn;
4365       FLD (out_rn) = f_rn;
4366     }
4367 #undef FLD
4368 }
4369
4370 void
4371 sh5_compact_extract_sfmt_fmov7_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4372     sh5_compact_insn_word insn = entire_insn;
4373 #define FLD(f) abuf->fields.sfmt_fmov7_compact.f
4374     UINT f_rn;
4375     UINT f_rm;
4376
4377     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4378     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4379
4380   /* Record the fields for the semantic handler.  */
4381   FLD (f_rm) = f_rm;
4382   FLD (f_rn) = f_rn;
4383   if (UNLIKELY(current_cpu->trace_extract_p))
4384     {
4385       current_cpu->trace_stream 
4386         << "0x" << hex << pc << dec << " (sfmt_fmov7_compact)\t"
4387         << " f_rm:0x" << hex << f_rm << dec
4388         << " f_rn:0x" << hex << f_rn << dec
4389         << endl;
4390     }
4391
4392   /* Record the fields for profiling.  */
4393   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4394     {
4395       FLD (in_fmovm) = f_rm;
4396       FLD (in_r0) = 0;
4397       FLD (in_rn) = f_rn;
4398     }
4399 #undef FLD
4400 }
4401
4402 void
4403 sh5_compact_extract_sfmt_fmov8_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4404     sh5_compact_insn_word insn = entire_insn;
4405 #define FLD(f) abuf->fields.sfmt_fmov8_compact.f
4406     SI f_dn;
4407     UINT f_rm;
4408     SI f_imm12x8;
4409
4410     f_dn = ((EXTRACT_MSB0_UINT (insn, 32, 4, 3)) << (1));
4411     f_rm = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
4412     f_imm12x8 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (3));
4413
4414   /* Record the fields for the semantic handler.  */
4415   FLD (f_imm12x8) = f_imm12x8;
4416   FLD (f_rm) = f_rm;
4417   FLD (f_dn) = f_dn;
4418   if (UNLIKELY(current_cpu->trace_extract_p))
4419     {
4420       current_cpu->trace_stream 
4421         << "0x" << hex << pc << dec << " (sfmt_fmov8_compact)\t"
4422         << " f_imm12x8:0x" << hex << f_imm12x8 << dec
4423         << " f_rm:0x" << hex << f_rm << dec
4424         << " f_dn:0x" << hex << f_dn << dec
4425         << endl;
4426     }
4427
4428   /* Record the fields for profiling.  */
4429   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4430     {
4431       FLD (in_rm) = f_rm;
4432       FLD (out_drn) = f_dn;
4433     }
4434 #undef FLD
4435 }
4436
4437 void
4438 sh5_compact_extract_sfmt_fmov9_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4439     sh5_compact_insn_word insn = entire_insn;
4440 #define FLD(f) abuf->fields.sfmt_fmov9_compact.f
4441     UINT f_rn;
4442     SI f_dm;
4443     SI f_imm12x8;
4444
4445     f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
4446     f_dm = ((EXTRACT_MSB0_UINT (insn, 32, 8, 3)) << (1));
4447     f_imm12x8 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (3));
4448
4449   /* Record the fields for the semantic handler.  */
4450   FLD (f_dm) = f_dm;
4451   FLD (f_imm12x8) = f_imm12x8;
4452   FLD (f_rn) = f_rn;
4453   if (UNLIKELY(current_cpu->trace_extract_p))
4454     {
4455       current_cpu->trace_stream 
4456         << "0x" << hex << pc << dec << " (sfmt_fmov9_compact)\t"
4457         << " f_dm:0x" << hex << f_dm << dec
4458         << " f_imm12x8:0x" << hex << f_imm12x8 << dec
4459         << " f_rn:0x" << hex << f_rn << dec
4460         << endl;
4461     }
4462
4463   /* Record the fields for profiling.  */
4464   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4465     {
4466       FLD (in_drm) = f_dm;
4467       FLD (in_rn) = f_rn;
4468     }
4469 #undef FLD
4470 }
4471
4472 void
4473 sh5_compact_extract_sfmt_frchg_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4474     sh5_compact_insn_word insn = entire_insn;
4475 #define FLD(f) abuf->fields.sfmt_empty.f
4476
4477
4478   /* Record the fields for the semantic handler.  */
4479   if (UNLIKELY(current_cpu->trace_extract_p))
4480     {
4481       current_cpu->trace_stream 
4482         << "0x" << hex << pc << dec << " (sfmt_frchg_compact)\t"
4483         << endl;
4484     }
4485
4486 #undef FLD
4487 }
4488
4489 void
4490 sh5_compact_extract_sfmt_fschg_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4491     sh5_compact_insn_word insn = entire_insn;
4492 #define FLD(f) abuf->fields.sfmt_empty.f
4493
4494
4495   /* Record the fields for the semantic handler.  */
4496   if (UNLIKELY(current_cpu->trace_extract_p))
4497     {
4498       current_cpu->trace_stream 
4499         << "0x" << hex << pc << dec << " (sfmt_fschg_compact)\t"
4500         << endl;
4501     }
4502
4503 #undef FLD
4504 }
4505
4506 void
4507 sh5_compact_extract_sfmt_fsts_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4508     sh5_compact_insn_word insn = entire_insn;
4509 #define FLD(f) abuf->fields.sfmt_fsts_compact.f
4510     UINT f_rn;
4511
4512     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4513
4514   /* Record the fields for the semantic handler.  */
4515   FLD (f_rn) = f_rn;
4516   if (UNLIKELY(current_cpu->trace_extract_p))
4517     {
4518       current_cpu->trace_stream 
4519         << "0x" << hex << pc << dec << " (sfmt_fsts_compact)\t"
4520         << " f_rn:0x" << hex << f_rn << dec
4521         << endl;
4522     }
4523
4524   /* Record the fields for profiling.  */
4525   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4526     {
4527       FLD (in_fpul) = 32;
4528       FLD (out_frn) = f_rn;
4529     }
4530 #undef FLD
4531 }
4532
4533 void
4534 sh5_compact_extract_sfmt_ftrc_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4535     sh5_compact_insn_word insn = entire_insn;
4536 #define FLD(f) abuf->fields.sfmt_ftrc_compact.f
4537     UINT f_rn;
4538
4539     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4540
4541   /* Record the fields for the semantic handler.  */
4542   FLD (f_rn) = f_rn;
4543   if (UNLIKELY(current_cpu->trace_extract_p))
4544     {
4545       current_cpu->trace_stream 
4546         << "0x" << hex << pc << dec << " (sfmt_ftrc_compact)\t"
4547         << " f_rn:0x" << hex << f_rn << dec
4548         << endl;
4549     }
4550
4551   /* Record the fields for profiling.  */
4552   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4553     {
4554       FLD (in_fsdn) = f_rn;
4555       FLD (out_fpul) = 32;
4556     }
4557 #undef FLD
4558 }
4559
4560 void
4561 sh5_compact_extract_sfmt_ftrv_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4562     sh5_compact_insn_word insn = entire_insn;
4563 #define FLD(f) abuf->fields.sfmt_fipr_compact.f
4564     SI f_vn;
4565
4566     f_vn = ((EXTRACT_MSB0_UINT (insn, 16, 4, 2)) << (2));
4567
4568   /* Record the fields for the semantic handler.  */
4569   FLD (f_vn) = f_vn;
4570   if (UNLIKELY(current_cpu->trace_extract_p))
4571     {
4572       current_cpu->trace_stream 
4573         << "0x" << hex << pc << dec << " (sfmt_ftrv_compact)\t"
4574         << " f_vn:0x" << hex << f_vn << dec
4575         << endl;
4576     }
4577
4578 #undef FLD
4579 }
4580
4581 void
4582 sh5_compact_extract_sfmt_ldc_gbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4583     sh5_compact_insn_word insn = entire_insn;
4584 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4585     UINT f_rn;
4586
4587     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4588
4589   /* Record the fields for the semantic handler.  */
4590   FLD (f_rn) = f_rn;
4591   if (UNLIKELY(current_cpu->trace_extract_p))
4592     {
4593       current_cpu->trace_stream 
4594         << "0x" << hex << pc << dec << " (sfmt_ldc_gbr_compact)\t"
4595         << " f_rn:0x" << hex << f_rn << dec
4596         << endl;
4597     }
4598
4599   /* Record the fields for profiling.  */
4600   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4601     {
4602       FLD (in_rn) = f_rn;
4603     }
4604 #undef FLD
4605 }
4606
4607 void
4608 sh5_compact_extract_sfmt_ldc_vbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4609     sh5_compact_insn_word insn = entire_insn;
4610 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4611     UINT f_rn;
4612
4613     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4614
4615   /* Record the fields for the semantic handler.  */
4616   FLD (f_rn) = f_rn;
4617   if (UNLIKELY(current_cpu->trace_extract_p))
4618     {
4619       current_cpu->trace_stream 
4620         << "0x" << hex << pc << dec << " (sfmt_ldc_vbr_compact)\t"
4621         << " f_rn:0x" << hex << f_rn << dec
4622         << endl;
4623     }
4624
4625   /* Record the fields for profiling.  */
4626   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4627     {
4628       FLD (in_rn) = f_rn;
4629     }
4630 #undef FLD
4631 }
4632
4633 void
4634 sh5_compact_extract_sfmt_ldc_sr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4635     sh5_compact_insn_word insn = entire_insn;
4636 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4637     UINT f_rn;
4638
4639     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4640
4641   /* Record the fields for the semantic handler.  */
4642   FLD (f_rn) = f_rn;
4643   if (UNLIKELY(current_cpu->trace_extract_p))
4644     {
4645       current_cpu->trace_stream 
4646         << "0x" << hex << pc << dec << " (sfmt_ldc_sr_compact)\t"
4647         << " f_rn:0x" << hex << f_rn << dec
4648         << endl;
4649     }
4650
4651   /* Record the fields for profiling.  */
4652   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4653     {
4654       FLD (in_rn) = f_rn;
4655     }
4656 #undef FLD
4657 }
4658
4659 void
4660 sh5_compact_extract_sfmt_ldcl_gbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4661     sh5_compact_insn_word insn = entire_insn;
4662 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4663     UINT f_rn;
4664
4665     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4666
4667   /* Record the fields for the semantic handler.  */
4668   FLD (f_rn) = f_rn;
4669   if (UNLIKELY(current_cpu->trace_extract_p))
4670     {
4671       current_cpu->trace_stream 
4672         << "0x" << hex << pc << dec << " (sfmt_ldcl_gbr_compact)\t"
4673         << " f_rn:0x" << hex << f_rn << dec
4674         << endl;
4675     }
4676
4677   /* Record the fields for profiling.  */
4678   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4679     {
4680       FLD (in_rn) = f_rn;
4681       FLD (out_rn) = f_rn;
4682     }
4683 #undef FLD
4684 }
4685
4686 void
4687 sh5_compact_extract_sfmt_ldcl_vbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4688     sh5_compact_insn_word insn = entire_insn;
4689 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4690     UINT f_rn;
4691
4692     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4693
4694   /* Record the fields for the semantic handler.  */
4695   FLD (f_rn) = f_rn;
4696   if (UNLIKELY(current_cpu->trace_extract_p))
4697     {
4698       current_cpu->trace_stream 
4699         << "0x" << hex << pc << dec << " (sfmt_ldcl_vbr_compact)\t"
4700         << " f_rn:0x" << hex << f_rn << dec
4701         << endl;
4702     }
4703
4704   /* Record the fields for profiling.  */
4705   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4706     {
4707       FLD (in_rn) = f_rn;
4708       FLD (out_rn) = f_rn;
4709     }
4710 #undef FLD
4711 }
4712
4713 void
4714 sh5_compact_extract_sfmt_lds_fpscr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4715     sh5_compact_insn_word insn = entire_insn;
4716 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4717     UINT f_rn;
4718
4719     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4720
4721   /* Record the fields for the semantic handler.  */
4722   FLD (f_rn) = f_rn;
4723   if (UNLIKELY(current_cpu->trace_extract_p))
4724     {
4725       current_cpu->trace_stream 
4726         << "0x" << hex << pc << dec << " (sfmt_lds_fpscr_compact)\t"
4727         << " f_rn:0x" << hex << f_rn << dec
4728         << endl;
4729     }
4730
4731   /* Record the fields for profiling.  */
4732   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4733     {
4734       FLD (in_rn) = f_rn;
4735     }
4736 #undef FLD
4737 }
4738
4739 void
4740 sh5_compact_extract_sfmt_ldsl_fpscr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4741     sh5_compact_insn_word insn = entire_insn;
4742 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4743     UINT f_rn;
4744
4745     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4746
4747   /* Record the fields for the semantic handler.  */
4748   FLD (f_rn) = f_rn;
4749   if (UNLIKELY(current_cpu->trace_extract_p))
4750     {
4751       current_cpu->trace_stream 
4752         << "0x" << hex << pc << dec << " (sfmt_ldsl_fpscr_compact)\t"
4753         << " f_rn:0x" << hex << f_rn << dec
4754         << endl;
4755     }
4756
4757   /* Record the fields for profiling.  */
4758   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4759     {
4760       FLD (in_rn) = f_rn;
4761       FLD (out_rn) = f_rn;
4762     }
4763 #undef FLD
4764 }
4765
4766 void
4767 sh5_compact_extract_sfmt_lds_fpul_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4768     sh5_compact_insn_word insn = entire_insn;
4769 #define FLD(f) abuf->fields.sfmt_ldsl_fpul_compact.f
4770     UINT f_rn;
4771
4772     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4773
4774   /* Record the fields for the semantic handler.  */
4775   FLD (f_rn) = f_rn;
4776   if (UNLIKELY(current_cpu->trace_extract_p))
4777     {
4778       current_cpu->trace_stream 
4779         << "0x" << hex << pc << dec << " (sfmt_lds_fpul_compact)\t"
4780         << " f_rn:0x" << hex << f_rn << dec
4781         << endl;
4782     }
4783
4784   /* Record the fields for profiling.  */
4785   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4786     {
4787       FLD (in_rn) = f_rn;
4788       FLD (out_fpul) = 32;
4789     }
4790 #undef FLD
4791 }
4792
4793 void
4794 sh5_compact_extract_sfmt_ldsl_fpul_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4795     sh5_compact_insn_word insn = entire_insn;
4796 #define FLD(f) abuf->fields.sfmt_ldsl_fpul_compact.f
4797     UINT f_rn;
4798
4799     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4800
4801   /* Record the fields for the semantic handler.  */
4802   FLD (f_rn) = f_rn;
4803   if (UNLIKELY(current_cpu->trace_extract_p))
4804     {
4805       current_cpu->trace_stream 
4806         << "0x" << hex << pc << dec << " (sfmt_ldsl_fpul_compact)\t"
4807         << " f_rn:0x" << hex << f_rn << dec
4808         << endl;
4809     }
4810
4811   /* Record the fields for profiling.  */
4812   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4813     {
4814       FLD (in_rn) = f_rn;
4815       FLD (out_fpul) = 32;
4816       FLD (out_rn) = f_rn;
4817     }
4818 #undef FLD
4819 }
4820
4821 void
4822 sh5_compact_extract_sfmt_lds_mach_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4823     sh5_compact_insn_word insn = entire_insn;
4824 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4825     UINT f_rn;
4826
4827     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4828
4829   /* Record the fields for the semantic handler.  */
4830   FLD (f_rn) = f_rn;
4831   if (UNLIKELY(current_cpu->trace_extract_p))
4832     {
4833       current_cpu->trace_stream 
4834         << "0x" << hex << pc << dec << " (sfmt_lds_mach_compact)\t"
4835         << " f_rn:0x" << hex << f_rn << dec
4836         << endl;
4837     }
4838
4839   /* Record the fields for profiling.  */
4840   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4841     {
4842       FLD (in_rn) = f_rn;
4843     }
4844 #undef FLD
4845 }
4846
4847 void
4848 sh5_compact_extract_sfmt_ldsl_mach_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4849     sh5_compact_insn_word insn = entire_insn;
4850 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4851     UINT f_rn;
4852
4853     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4854
4855   /* Record the fields for the semantic handler.  */
4856   FLD (f_rn) = f_rn;
4857   if (UNLIKELY(current_cpu->trace_extract_p))
4858     {
4859       current_cpu->trace_stream 
4860         << "0x" << hex << pc << dec << " (sfmt_ldsl_mach_compact)\t"
4861         << " f_rn:0x" << hex << f_rn << dec
4862         << endl;
4863     }
4864
4865   /* Record the fields for profiling.  */
4866   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4867     {
4868       FLD (in_rn) = f_rn;
4869       FLD (out_rn) = f_rn;
4870     }
4871 #undef FLD
4872 }
4873
4874 void
4875 sh5_compact_extract_sfmt_lds_macl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4876     sh5_compact_insn_word insn = entire_insn;
4877 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4878     UINT f_rn;
4879
4880     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4881
4882   /* Record the fields for the semantic handler.  */
4883   FLD (f_rn) = f_rn;
4884   if (UNLIKELY(current_cpu->trace_extract_p))
4885     {
4886       current_cpu->trace_stream 
4887         << "0x" << hex << pc << dec << " (sfmt_lds_macl_compact)\t"
4888         << " f_rn:0x" << hex << f_rn << dec
4889         << endl;
4890     }
4891
4892   /* Record the fields for profiling.  */
4893   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4894     {
4895       FLD (in_rn) = f_rn;
4896     }
4897 #undef FLD
4898 }
4899
4900 void
4901 sh5_compact_extract_sfmt_ldsl_macl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4902     sh5_compact_insn_word insn = entire_insn;
4903 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4904     UINT f_rn;
4905
4906     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4907
4908   /* Record the fields for the semantic handler.  */
4909   FLD (f_rn) = f_rn;
4910   if (UNLIKELY(current_cpu->trace_extract_p))
4911     {
4912       current_cpu->trace_stream 
4913         << "0x" << hex << pc << dec << " (sfmt_ldsl_macl_compact)\t"
4914         << " f_rn:0x" << hex << f_rn << dec
4915         << endl;
4916     }
4917
4918   /* Record the fields for profiling.  */
4919   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4920     {
4921       FLD (in_rn) = f_rn;
4922       FLD (out_rn) = f_rn;
4923     }
4924 #undef FLD
4925 }
4926
4927 void
4928 sh5_compact_extract_sfmt_lds_pr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4929     sh5_compact_insn_word insn = entire_insn;
4930 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4931     UINT f_rn;
4932
4933     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4934
4935   /* Record the fields for the semantic handler.  */
4936   FLD (f_rn) = f_rn;
4937   if (UNLIKELY(current_cpu->trace_extract_p))
4938     {
4939       current_cpu->trace_stream 
4940         << "0x" << hex << pc << dec << " (sfmt_lds_pr_compact)\t"
4941         << " f_rn:0x" << hex << f_rn << 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 (in_rn) = f_rn;
4949     }
4950 #undef FLD
4951 }
4952
4953 void
4954 sh5_compact_extract_sfmt_ldsl_pr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4955     sh5_compact_insn_word insn = entire_insn;
4956 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4957     UINT f_rn;
4958
4959     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4960
4961   /* Record the fields for the semantic handler.  */
4962   FLD (f_rn) = f_rn;
4963   if (UNLIKELY(current_cpu->trace_extract_p))
4964     {
4965       current_cpu->trace_stream 
4966         << "0x" << hex << pc << dec << " (sfmt_ldsl_pr_compact)\t"
4967         << " f_rn:0x" << hex << f_rn << dec
4968         << endl;
4969     }
4970
4971   /* Record the fields for profiling.  */
4972   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
4973     {
4974       FLD (in_rn) = f_rn;
4975       FLD (out_rn) = f_rn;
4976     }
4977 #undef FLD
4978 }
4979
4980 void
4981 sh5_compact_extract_sfmt_macl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
4982     sh5_compact_insn_word insn = entire_insn;
4983 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4984     UINT f_rn;
4985     UINT f_rm;
4986
4987     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4988     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4989
4990   /* Record the fields for the semantic handler.  */
4991   FLD (f_rm) = f_rm;
4992   FLD (f_rn) = f_rn;
4993   if (UNLIKELY(current_cpu->trace_extract_p))
4994     {
4995       current_cpu->trace_stream 
4996         << "0x" << hex << pc << dec << " (sfmt_macl_compact)\t"
4997         << " f_rm:0x" << hex << f_rm << dec
4998         << " f_rn:0x" << hex << f_rn << dec
4999         << endl;
5000     }
5001
5002   /* Record the fields for profiling.  */
5003   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5004     {
5005       FLD (in_rm) = f_rm;
5006       FLD (in_rn) = f_rn;
5007       FLD (out_rm) = f_rm;
5008       FLD (out_rn) = f_rn;
5009     }
5010 #undef FLD
5011 }
5012
5013 void
5014 sh5_compact_extract_sfmt_macw_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5015     sh5_compact_insn_word insn = entire_insn;
5016 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5017     UINT f_rn;
5018     UINT f_rm;
5019
5020     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5021     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5022
5023   /* Record the fields for the semantic handler.  */
5024   FLD (f_rm) = f_rm;
5025   FLD (f_rn) = f_rn;
5026   if (UNLIKELY(current_cpu->trace_extract_p))
5027     {
5028       current_cpu->trace_stream 
5029         << "0x" << hex << pc << dec << " (sfmt_macw_compact)\t"
5030         << " f_rm:0x" << hex << f_rm << dec
5031         << " f_rn:0x" << hex << f_rn << dec
5032         << endl;
5033     }
5034
5035   /* Record the fields for profiling.  */
5036   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5037     {
5038       FLD (in_rm) = f_rm;
5039       FLD (in_rn) = f_rn;
5040       FLD (out_rm) = f_rm;
5041       FLD (out_rn) = f_rn;
5042     }
5043 #undef FLD
5044 }
5045
5046 void
5047 sh5_compact_extract_sfmt_mov_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5048     sh5_compact_insn_word insn = entire_insn;
5049 #define FLD(f) abuf->fields.sfmt_and_compact.f
5050     UINT f_rn;
5051     UINT f_rm;
5052
5053     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5054     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5055
5056   /* Record the fields for the semantic handler.  */
5057   FLD (f_rm) = f_rm;
5058   FLD (f_rn) = f_rn;
5059   if (UNLIKELY(current_cpu->trace_extract_p))
5060     {
5061       current_cpu->trace_stream 
5062         << "0x" << hex << pc << dec << " (sfmt_mov_compact)\t"
5063         << " f_rm:0x" << hex << f_rm << dec
5064         << " f_rn:0x" << hex << f_rn << dec
5065         << endl;
5066     }
5067
5068   /* Record the fields for profiling.  */
5069   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5070     {
5071       FLD (in_rm64) = f_rm;
5072       FLD (out_rn64) = f_rn;
5073     }
5074 #undef FLD
5075 }
5076
5077 void
5078 sh5_compact_extract_sfmt_movi_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5079     sh5_compact_insn_word insn = entire_insn;
5080 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5081     UINT f_rn;
5082     UINT f_imm8;
5083
5084     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5085     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
5086
5087   /* Record the fields for the semantic handler.  */
5088   FLD (f_imm8) = f_imm8;
5089   FLD (f_rn) = f_rn;
5090   if (UNLIKELY(current_cpu->trace_extract_p))
5091     {
5092       current_cpu->trace_stream 
5093         << "0x" << hex << pc << dec << " (sfmt_movi_compact)\t"
5094         << " f_imm8:0x" << hex << f_imm8 << dec
5095         << " f_rn:0x" << hex << f_rn << dec
5096         << endl;
5097     }
5098
5099   /* Record the fields for profiling.  */
5100   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5101     {
5102       FLD (out_rn) = f_rn;
5103     }
5104 #undef FLD
5105 }
5106
5107 void
5108 sh5_compact_extract_sfmt_movi20_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5109     sh5_compact_insn_word insn = entire_insn;
5110 #define FLD(f) abuf->fields.sfmt_movi20_compact.f
5111     UINT f_rn;
5112     INT f_imm20_hi;
5113     UINT f_imm20_lo;
5114     INT f_imm20;
5115
5116     f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
5117     f_imm20_hi = EXTRACT_MSB0_SINT (insn, 32, 8, 4);
5118     f_imm20_lo = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
5119   f_imm20 = ((((f_imm20_hi) << (16))) | (f_imm20_lo));
5120
5121   /* Record the fields for the semantic handler.  */
5122   FLD (f_imm20) = f_imm20;
5123   FLD (f_rn) = f_rn;
5124   if (UNLIKELY(current_cpu->trace_extract_p))
5125     {
5126       current_cpu->trace_stream 
5127         << "0x" << hex << pc << dec << " (sfmt_movi20_compact)\t"
5128         << " f_imm20:0x" << hex << f_imm20 << dec
5129         << " f_rn:0x" << hex << f_rn << dec
5130         << endl;
5131     }
5132
5133   /* Record the fields for profiling.  */
5134   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5135     {
5136       FLD (out_rn) = f_rn;
5137     }
5138 #undef FLD
5139 }
5140
5141 void
5142 sh5_compact_extract_sfmt_movb1_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5143     sh5_compact_insn_word insn = entire_insn;
5144 #define FLD(f) abuf->fields.sfmt_movl13_compact.f
5145     UINT f_rn;
5146     UINT f_rm;
5147
5148     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5149     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5150
5151   /* Record the fields for the semantic handler.  */
5152   FLD (f_rm) = f_rm;
5153   FLD (f_rn) = f_rn;
5154   if (UNLIKELY(current_cpu->trace_extract_p))
5155     {
5156       current_cpu->trace_stream 
5157         << "0x" << hex << pc << dec << " (sfmt_movb1_compact)\t"
5158         << " f_rm:0x" << hex << f_rm << dec
5159         << " f_rn:0x" << hex << f_rn << dec
5160         << endl;
5161     }
5162
5163   /* Record the fields for profiling.  */
5164   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5165     {
5166       FLD (in_rm) = f_rm;
5167       FLD (in_rn) = f_rn;
5168     }
5169 #undef FLD
5170 }
5171
5172 void
5173 sh5_compact_extract_sfmt_movb2_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5174     sh5_compact_insn_word insn = entire_insn;
5175 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5176     UINT f_rn;
5177     UINT f_rm;
5178
5179     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5180     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5181
5182   /* Record the fields for the semantic handler.  */
5183   FLD (f_rm) = f_rm;
5184   FLD (f_rn) = f_rn;
5185   if (UNLIKELY(current_cpu->trace_extract_p))
5186     {
5187       current_cpu->trace_stream 
5188         << "0x" << hex << pc << dec << " (sfmt_movb2_compact)\t"
5189         << " f_rm:0x" << hex << f_rm << dec
5190         << " f_rn:0x" << hex << f_rn << dec
5191         << endl;
5192     }
5193
5194   /* Record the fields for profiling.  */
5195   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5196     {
5197       FLD (in_rm) = f_rm;
5198       FLD (in_rn) = f_rn;
5199       FLD (out_rn) = f_rn;
5200     }
5201 #undef FLD
5202 }
5203
5204 void
5205 sh5_compact_extract_sfmt_movb3_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5206     sh5_compact_insn_word insn = entire_insn;
5207 #define FLD(f) abuf->fields.sfmt_movb3_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_movb3_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 (in_rn) = f_rn;
5232     }
5233 #undef FLD
5234 }
5235
5236 void
5237 sh5_compact_extract_sfmt_movb4_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5238     sh5_compact_insn_word insn = entire_insn;
5239 #define FLD(f) abuf->fields.sfmt_andi_compact.f
5240     UINT f_imm8;
5241
5242     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
5243
5244   /* Record the fields for the semantic handler.  */
5245   FLD (f_imm8) = f_imm8;
5246   if (UNLIKELY(current_cpu->trace_extract_p))
5247     {
5248       current_cpu->trace_stream 
5249         << "0x" << hex << pc << dec << " (sfmt_movb4_compact)\t"
5250         << " f_imm8:0x" << hex << f_imm8 << 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 (in_r0) = 0;
5258     }
5259 #undef FLD
5260 }
5261
5262 void
5263 sh5_compact_extract_sfmt_movb5_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5264     sh5_compact_insn_word insn = entire_insn;
5265 #define FLD(f) abuf->fields.sfmt_movb5_compact.f
5266     UINT f_rm;
5267     UINT f_imm4;
5268
5269     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5270     f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
5271
5272   /* Record the fields for the semantic handler.  */
5273   FLD (f_imm4) = f_imm4;
5274   FLD (f_rm) = f_rm;
5275   if (UNLIKELY(current_cpu->trace_extract_p))
5276     {
5277       current_cpu->trace_stream 
5278         << "0x" << hex << pc << dec << " (sfmt_movb5_compact)\t"
5279         << " f_imm4:0x" << hex << f_imm4 << dec
5280         << " f_rm:0x" << hex << f_rm << 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 (in_r0) = 0;
5288       FLD (in_rm) = f_rm;
5289     }
5290 #undef FLD
5291 }
5292
5293 void
5294 sh5_compact_extract_sfmt_movb6_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5295     sh5_compact_insn_word insn = entire_insn;
5296 #define FLD(f) abuf->fields.sfmt_movl12_compact.f
5297     UINT f_rn;
5298     UINT f_rm;
5299
5300     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5301     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5302
5303   /* Record the fields for the semantic handler.  */
5304   FLD (f_rm) = f_rm;
5305   FLD (f_rn) = f_rn;
5306   if (UNLIKELY(current_cpu->trace_extract_p))
5307     {
5308       current_cpu->trace_stream 
5309         << "0x" << hex << pc << dec << " (sfmt_movb6_compact)\t"
5310         << " f_rm:0x" << hex << f_rm << dec
5311         << " f_rn:0x" << hex << f_rn << dec
5312         << endl;
5313     }
5314
5315   /* Record the fields for profiling.  */
5316   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5317     {
5318       FLD (in_rm) = f_rm;
5319       FLD (out_rn) = f_rn;
5320     }
5321 #undef FLD
5322 }
5323
5324 void
5325 sh5_compact_extract_sfmt_movb7_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5326     sh5_compact_insn_word insn = entire_insn;
5327 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5328     UINT f_rn;
5329     UINT f_rm;
5330
5331     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5332     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5333
5334   /* Record the fields for the semantic handler.  */
5335   FLD (f_rm) = f_rm;
5336   FLD (f_rn) = f_rn;
5337   if (UNLIKELY(current_cpu->trace_extract_p))
5338     {
5339       current_cpu->trace_stream 
5340         << "0x" << hex << pc << dec << " (sfmt_movb7_compact)\t"
5341         << " f_rm:0x" << hex << f_rm << dec
5342         << " f_rn:0x" << hex << f_rn << dec
5343         << endl;
5344     }
5345
5346   /* Record the fields for profiling.  */
5347   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5348     {
5349       FLD (in_rm) = f_rm;
5350       FLD (out_rm) = f_rm;
5351       FLD (out_rn) = f_rn;
5352     }
5353 #undef FLD
5354 }
5355
5356 void
5357 sh5_compact_extract_sfmt_movb8_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5358     sh5_compact_insn_word insn = entire_insn;
5359 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
5360     UINT f_rn;
5361     UINT f_rm;
5362
5363     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5364     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5365
5366   /* Record the fields for the semantic handler.  */
5367   FLD (f_rm) = f_rm;
5368   FLD (f_rn) = f_rn;
5369   if (UNLIKELY(current_cpu->trace_extract_p))
5370     {
5371       current_cpu->trace_stream 
5372         << "0x" << hex << pc << dec << " (sfmt_movb8_compact)\t"
5373         << " f_rm:0x" << hex << f_rm << dec
5374         << " f_rn:0x" << hex << f_rn << dec
5375         << endl;
5376     }
5377
5378   /* Record the fields for profiling.  */
5379   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5380     {
5381       FLD (in_r0) = 0;
5382       FLD (in_rm) = f_rm;
5383       FLD (out_rn) = f_rn;
5384     }
5385 #undef FLD
5386 }
5387
5388 void
5389 sh5_compact_extract_sfmt_movb9_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5390     sh5_compact_insn_word insn = entire_insn;
5391 #define FLD(f) abuf->fields.sfmt_andi_compact.f
5392     UINT f_imm8;
5393
5394     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
5395
5396   /* Record the fields for the semantic handler.  */
5397   FLD (f_imm8) = f_imm8;
5398   if (UNLIKELY(current_cpu->trace_extract_p))
5399     {
5400       current_cpu->trace_stream 
5401         << "0x" << hex << pc << dec << " (sfmt_movb9_compact)\t"
5402         << " f_imm8:0x" << hex << f_imm8 << dec
5403         << endl;
5404     }
5405
5406   /* Record the fields for profiling.  */
5407   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5408     {
5409       FLD (out_r0) = 0;
5410     }
5411 #undef FLD
5412 }
5413
5414 void
5415 sh5_compact_extract_sfmt_movb10_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5416     sh5_compact_insn_word insn = entire_insn;
5417 #define FLD(f) abuf->fields.sfmt_movb10_compact.f
5418     UINT f_rm;
5419     UINT f_imm4;
5420
5421     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5422     f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
5423
5424   /* Record the fields for the semantic handler.  */
5425   FLD (f_imm4) = f_imm4;
5426   FLD (f_rm) = f_rm;
5427   if (UNLIKELY(current_cpu->trace_extract_p))
5428     {
5429       current_cpu->trace_stream 
5430         << "0x" << hex << pc << dec << " (sfmt_movb10_compact)\t"
5431         << " f_imm4:0x" << hex << f_imm4 << dec
5432         << " f_rm:0x" << hex << f_rm << dec
5433         << endl;
5434     }
5435
5436   /* Record the fields for profiling.  */
5437   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5438     {
5439       FLD (in_rm) = f_rm;
5440       FLD (out_r0) = 0;
5441     }
5442 #undef FLD
5443 }
5444
5445 void
5446 sh5_compact_extract_sfmt_movl1_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5447     sh5_compact_insn_word insn = entire_insn;
5448 #define FLD(f) abuf->fields.sfmt_movl13_compact.f
5449     UINT f_rn;
5450     UINT f_rm;
5451
5452     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5453     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5454
5455   /* Record the fields for the semantic handler.  */
5456   FLD (f_rm) = f_rm;
5457   FLD (f_rn) = f_rn;
5458   if (UNLIKELY(current_cpu->trace_extract_p))
5459     {
5460       current_cpu->trace_stream 
5461         << "0x" << hex << pc << dec << " (sfmt_movl1_compact)\t"
5462         << " f_rm:0x" << hex << f_rm << dec
5463         << " f_rn:0x" << hex << f_rn << dec
5464         << endl;
5465     }
5466
5467   /* Record the fields for profiling.  */
5468   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5469     {
5470       FLD (in_rm) = f_rm;
5471       FLD (in_rn) = f_rn;
5472     }
5473 #undef FLD
5474 }
5475
5476 void
5477 sh5_compact_extract_sfmt_movl2_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5478     sh5_compact_insn_word insn = entire_insn;
5479 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5480     UINT f_rn;
5481     UINT f_rm;
5482
5483     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5484     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5485
5486   /* Record the fields for the semantic handler.  */
5487   FLD (f_rm) = f_rm;
5488   FLD (f_rn) = f_rn;
5489   if (UNLIKELY(current_cpu->trace_extract_p))
5490     {
5491       current_cpu->trace_stream 
5492         << "0x" << hex << pc << dec << " (sfmt_movl2_compact)\t"
5493         << " f_rm:0x" << hex << f_rm << dec
5494         << " f_rn:0x" << hex << f_rn << dec
5495         << endl;
5496     }
5497
5498   /* Record the fields for profiling.  */
5499   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5500     {
5501       FLD (in_rm) = f_rm;
5502       FLD (in_rn) = f_rn;
5503       FLD (out_rn) = f_rn;
5504     }
5505 #undef FLD
5506 }
5507
5508 void
5509 sh5_compact_extract_sfmt_movl3_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5510     sh5_compact_insn_word insn = entire_insn;
5511 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
5512     UINT f_rn;
5513     UINT f_rm;
5514
5515     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5516     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5517
5518   /* Record the fields for the semantic handler.  */
5519   FLD (f_rm) = f_rm;
5520   FLD (f_rn) = f_rn;
5521   if (UNLIKELY(current_cpu->trace_extract_p))
5522     {
5523       current_cpu->trace_stream 
5524         << "0x" << hex << pc << dec << " (sfmt_movl3_compact)\t"
5525         << " f_rm:0x" << hex << f_rm << dec
5526         << " f_rn:0x" << hex << f_rn << dec
5527         << endl;
5528     }
5529
5530   /* Record the fields for profiling.  */
5531   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5532     {
5533       FLD (in_r0) = 0;
5534       FLD (in_rm) = f_rm;
5535       FLD (in_rn) = f_rn;
5536     }
5537 #undef FLD
5538 }
5539
5540 void
5541 sh5_compact_extract_sfmt_movl4_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5542     sh5_compact_insn_word insn = entire_insn;
5543 #define FLD(f) abuf->fields.sfmt_movl4_compact.f
5544     SI f_imm8x4;
5545
5546     f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
5547
5548   /* Record the fields for the semantic handler.  */
5549   FLD (f_imm8x4) = f_imm8x4;
5550   if (UNLIKELY(current_cpu->trace_extract_p))
5551     {
5552       current_cpu->trace_stream 
5553         << "0x" << hex << pc << dec << " (sfmt_movl4_compact)\t"
5554         << " f_imm8x4:0x" << hex << f_imm8x4 << dec
5555         << endl;
5556     }
5557
5558   /* Record the fields for profiling.  */
5559   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5560     {
5561       FLD (in_r0) = 0;
5562     }
5563 #undef FLD
5564 }
5565
5566 void
5567 sh5_compact_extract_sfmt_movl5_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5568     sh5_compact_insn_word insn = entire_insn;
5569 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
5570     UINT f_rn;
5571     UINT f_rm;
5572     SI f_imm4x4;
5573
5574     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5575     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5576     f_imm4x4 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (2));
5577
5578   /* Record the fields for the semantic handler.  */
5579   FLD (f_imm4x4) = f_imm4x4;
5580   FLD (f_rm) = f_rm;
5581   FLD (f_rn) = f_rn;
5582   if (UNLIKELY(current_cpu->trace_extract_p))
5583     {
5584       current_cpu->trace_stream 
5585         << "0x" << hex << pc << dec << " (sfmt_movl5_compact)\t"
5586         << " f_imm4x4:0x" << hex << f_imm4x4 << dec
5587         << " f_rm:0x" << hex << f_rm << dec
5588         << " f_rn:0x" << hex << f_rn << 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 (in_rm) = f_rm;
5596       FLD (in_rn) = f_rn;
5597     }
5598 #undef FLD
5599 }
5600
5601 void
5602 sh5_compact_extract_sfmt_movl6_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5603     sh5_compact_insn_word insn = entire_insn;
5604 #define FLD(f) abuf->fields.sfmt_movl12_compact.f
5605     UINT f_rn;
5606     UINT f_rm;
5607
5608     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5609     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5610
5611   /* Record the fields for the semantic handler.  */
5612   FLD (f_rm) = f_rm;
5613   FLD (f_rn) = f_rn;
5614   if (UNLIKELY(current_cpu->trace_extract_p))
5615     {
5616       current_cpu->trace_stream 
5617         << "0x" << hex << pc << dec << " (sfmt_movl6_compact)\t"
5618         << " f_rm:0x" << hex << f_rm << dec
5619         << " f_rn:0x" << hex << f_rn << dec
5620         << endl;
5621     }
5622
5623   /* Record the fields for profiling.  */
5624   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5625     {
5626       FLD (in_rm) = f_rm;
5627       FLD (out_rn) = f_rn;
5628     }
5629 #undef FLD
5630 }
5631
5632 void
5633 sh5_compact_extract_sfmt_movl7_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5634     sh5_compact_insn_word insn = entire_insn;
5635 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5636     UINT f_rn;
5637     UINT f_rm;
5638
5639     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5640     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5641
5642   /* Record the fields for the semantic handler.  */
5643   FLD (f_rm) = f_rm;
5644   FLD (f_rn) = f_rn;
5645   if (UNLIKELY(current_cpu->trace_extract_p))
5646     {
5647       current_cpu->trace_stream 
5648         << "0x" << hex << pc << dec << " (sfmt_movl7_compact)\t"
5649         << " f_rm:0x" << hex << f_rm << dec
5650         << " f_rn:0x" << hex << f_rn << dec
5651         << endl;
5652     }
5653
5654   /* Record the fields for profiling.  */
5655   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5656     {
5657       FLD (in_rm) = f_rm;
5658       FLD (in_rn) = f_rn;
5659       FLD (out_rm) = f_rm;
5660       FLD (out_rn) = f_rn;
5661     }
5662 #undef FLD
5663 }
5664
5665 void
5666 sh5_compact_extract_sfmt_movl8_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5667     sh5_compact_insn_word insn = entire_insn;
5668 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
5669     UINT f_rn;
5670     UINT f_rm;
5671
5672     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5673     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5674
5675   /* Record the fields for the semantic handler.  */
5676   FLD (f_rm) = f_rm;
5677   FLD (f_rn) = f_rn;
5678   if (UNLIKELY(current_cpu->trace_extract_p))
5679     {
5680       current_cpu->trace_stream 
5681         << "0x" << hex << pc << dec << " (sfmt_movl8_compact)\t"
5682         << " f_rm:0x" << hex << f_rm << dec
5683         << " f_rn:0x" << hex << f_rn << dec
5684         << endl;
5685     }
5686
5687   /* Record the fields for profiling.  */
5688   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5689     {
5690       FLD (in_r0) = 0;
5691       FLD (in_rm) = f_rm;
5692       FLD (out_rn) = f_rn;
5693     }
5694 #undef FLD
5695 }
5696
5697 void
5698 sh5_compact_extract_sfmt_movl9_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5699     sh5_compact_insn_word insn = entire_insn;
5700 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
5701     SI f_imm8x4;
5702
5703     f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
5704
5705   /* Record the fields for the semantic handler.  */
5706   FLD (f_imm8x4) = f_imm8x4;
5707   if (UNLIKELY(current_cpu->trace_extract_p))
5708     {
5709       current_cpu->trace_stream 
5710         << "0x" << hex << pc << dec << " (sfmt_movl9_compact)\t"
5711         << " f_imm8x4:0x" << hex << f_imm8x4 << dec
5712         << endl;
5713     }
5714
5715   /* Record the fields for profiling.  */
5716   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5717     {
5718       FLD (out_r0) = 0;
5719     }
5720 #undef FLD
5721 }
5722
5723 void
5724 sh5_compact_extract_sfmt_movl10_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5725     sh5_compact_insn_word insn = entire_insn;
5726 #define FLD(f) abuf->fields.sfmt_movl10_compact.f
5727     UINT f_rn;
5728     SI f_imm8x4;
5729
5730     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5731     f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
5732
5733   /* Record the fields for the semantic handler.  */
5734   FLD (f_imm8x4) = f_imm8x4;
5735   FLD (f_rn) = f_rn;
5736   if (UNLIKELY(current_cpu->trace_extract_p))
5737     {
5738       current_cpu->trace_stream 
5739         << "0x" << hex << pc << dec << " (sfmt_movl10_compact)\t"
5740         << " f_imm8x4:0x" << hex << f_imm8x4 << dec
5741         << " f_rn:0x" << hex << f_rn << dec
5742         << endl;
5743     }
5744
5745   /* Record the fields for profiling.  */
5746   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5747     {
5748       FLD (out_rn) = f_rn;
5749     }
5750 #undef FLD
5751 }
5752
5753 void
5754 sh5_compact_extract_sfmt_movl11_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5755     sh5_compact_insn_word insn = entire_insn;
5756 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5757     UINT f_rn;
5758     UINT f_rm;
5759     SI f_imm4x4;
5760
5761     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5762     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5763     f_imm4x4 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (2));
5764
5765   /* Record the fields for the semantic handler.  */
5766   FLD (f_imm4x4) = f_imm4x4;
5767   FLD (f_rm) = f_rm;
5768   FLD (f_rn) = f_rn;
5769   if (UNLIKELY(current_cpu->trace_extract_p))
5770     {
5771       current_cpu->trace_stream 
5772         << "0x" << hex << pc << dec << " (sfmt_movl11_compact)\t"
5773         << " f_imm4x4:0x" << hex << f_imm4x4 << dec
5774         << " f_rm:0x" << hex << f_rm << dec
5775         << " f_rn:0x" << hex << f_rn << dec
5776         << endl;
5777     }
5778
5779   /* Record the fields for profiling.  */
5780   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5781     {
5782       FLD (in_rm) = f_rm;
5783       FLD (out_rn) = f_rn;
5784     }
5785 #undef FLD
5786 }
5787
5788 void
5789 sh5_compact_extract_sfmt_movl12_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5790     sh5_compact_insn_word insn = entire_insn;
5791 #define FLD(f) abuf->fields.sfmt_movl12_compact.f
5792     UINT f_rn;
5793     UINT f_rm;
5794     SI f_imm12x4;
5795
5796     f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
5797     f_rm = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
5798     f_imm12x4 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (2));
5799
5800   /* Record the fields for the semantic handler.  */
5801   FLD (f_imm12x4) = f_imm12x4;
5802   FLD (f_rm) = f_rm;
5803   FLD (f_rn) = f_rn;
5804   if (UNLIKELY(current_cpu->trace_extract_p))
5805     {
5806       current_cpu->trace_stream 
5807         << "0x" << hex << pc << dec << " (sfmt_movl12_compact)\t"
5808         << " f_imm12x4:0x" << hex << f_imm12x4 << dec
5809         << " f_rm:0x" << hex << f_rm << dec
5810         << " f_rn:0x" << hex << f_rn << dec
5811         << endl;
5812     }
5813
5814   /* Record the fields for profiling.  */
5815   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5816     {
5817       FLD (in_rm) = f_rm;
5818       FLD (out_rn) = f_rn;
5819     }
5820 #undef FLD
5821 }
5822
5823 void
5824 sh5_compact_extract_sfmt_movl13_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5825     sh5_compact_insn_word insn = entire_insn;
5826 #define FLD(f) abuf->fields.sfmt_movl13_compact.f
5827     UINT f_rn;
5828     UINT f_rm;
5829     SI f_imm12x4;
5830
5831     f_rn = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
5832     f_rm = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
5833     f_imm12x4 = ((EXTRACT_MSB0_SINT (insn, 32, 20, 12)) << (2));
5834
5835   /* Record the fields for the semantic handler.  */
5836   FLD (f_imm12x4) = f_imm12x4;
5837   FLD (f_rm) = f_rm;
5838   FLD (f_rn) = f_rn;
5839   if (UNLIKELY(current_cpu->trace_extract_p))
5840     {
5841       current_cpu->trace_stream 
5842         << "0x" << hex << pc << dec << " (sfmt_movl13_compact)\t"
5843         << " f_imm12x4:0x" << hex << f_imm12x4 << dec
5844         << " f_rm:0x" << hex << f_rm << dec
5845         << " f_rn:0x" << hex << f_rn << dec
5846         << endl;
5847     }
5848
5849   /* Record the fields for profiling.  */
5850   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5851     {
5852       FLD (in_rm) = f_rm;
5853       FLD (in_rn) = f_rn;
5854     }
5855 #undef FLD
5856 }
5857
5858 void
5859 sh5_compact_extract_sfmt_movw1_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5860     sh5_compact_insn_word insn = entire_insn;
5861 #define FLD(f) abuf->fields.sfmt_movl13_compact.f
5862     UINT f_rn;
5863     UINT f_rm;
5864
5865     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5866     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5867
5868   /* Record the fields for the semantic handler.  */
5869   FLD (f_rm) = f_rm;
5870   FLD (f_rn) = f_rn;
5871   if (UNLIKELY(current_cpu->trace_extract_p))
5872     {
5873       current_cpu->trace_stream 
5874         << "0x" << hex << pc << dec << " (sfmt_movw1_compact)\t"
5875         << " f_rm:0x" << hex << f_rm << dec
5876         << " f_rn:0x" << hex << f_rn << dec
5877         << endl;
5878     }
5879
5880   /* Record the fields for profiling.  */
5881   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5882     {
5883       FLD (in_rm) = f_rm;
5884       FLD (in_rn) = f_rn;
5885     }
5886 #undef FLD
5887 }
5888
5889 void
5890 sh5_compact_extract_sfmt_movw2_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5891     sh5_compact_insn_word insn = entire_insn;
5892 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5893     UINT f_rn;
5894     UINT f_rm;
5895
5896     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5897     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5898
5899   /* Record the fields for the semantic handler.  */
5900   FLD (f_rm) = f_rm;
5901   FLD (f_rn) = f_rn;
5902   if (UNLIKELY(current_cpu->trace_extract_p))
5903     {
5904       current_cpu->trace_stream 
5905         << "0x" << hex << pc << dec << " (sfmt_movw2_compact)\t"
5906         << " f_rm:0x" << hex << f_rm << dec
5907         << " f_rn:0x" << hex << f_rn << dec
5908         << endl;
5909     }
5910
5911   /* Record the fields for profiling.  */
5912   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5913     {
5914       FLD (in_rm) = f_rm;
5915       FLD (in_rn) = f_rn;
5916       FLD (out_rn) = f_rn;
5917     }
5918 #undef FLD
5919 }
5920
5921 void
5922 sh5_compact_extract_sfmt_movw3_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5923     sh5_compact_insn_word insn = entire_insn;
5924 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
5925     UINT f_rn;
5926     UINT f_rm;
5927
5928     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
5929     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5930
5931   /* Record the fields for the semantic handler.  */
5932   FLD (f_rm) = f_rm;
5933   FLD (f_rn) = f_rn;
5934   if (UNLIKELY(current_cpu->trace_extract_p))
5935     {
5936       current_cpu->trace_stream 
5937         << "0x" << hex << pc << dec << " (sfmt_movw3_compact)\t"
5938         << " f_rm:0x" << hex << f_rm << dec
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 (in_r0) = 0;
5947       FLD (in_rm) = f_rm;
5948       FLD (in_rn) = f_rn;
5949     }
5950 #undef FLD
5951 }
5952
5953 void
5954 sh5_compact_extract_sfmt_movw4_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5955     sh5_compact_insn_word insn = entire_insn;
5956 #define FLD(f) abuf->fields.sfmt_movw4_compact.f
5957     SI f_imm8x2;
5958
5959     f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
5960
5961   /* Record the fields for the semantic handler.  */
5962   FLD (f_imm8x2) = f_imm8x2;
5963   if (UNLIKELY(current_cpu->trace_extract_p))
5964     {
5965       current_cpu->trace_stream 
5966         << "0x" << hex << pc << dec << " (sfmt_movw4_compact)\t"
5967         << " f_imm8x2:0x" << hex << f_imm8x2 << dec
5968         << endl;
5969     }
5970
5971   /* Record the fields for profiling.  */
5972   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
5973     {
5974       FLD (in_r0) = 0;
5975     }
5976 #undef FLD
5977 }
5978
5979 void
5980 sh5_compact_extract_sfmt_movw5_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
5981     sh5_compact_insn_word insn = entire_insn;
5982 #define FLD(f) abuf->fields.sfmt_movw5_compact.f
5983     UINT f_rm;
5984     SI f_imm4x2;
5985
5986     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
5987     f_imm4x2 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (1));
5988
5989   /* Record the fields for the semantic handler.  */
5990   FLD (f_imm4x2) = f_imm4x2;
5991   FLD (f_rm) = f_rm;
5992   if (UNLIKELY(current_cpu->trace_extract_p))
5993     {
5994       current_cpu->trace_stream 
5995         << "0x" << hex << pc << dec << " (sfmt_movw5_compact)\t"
5996         << " f_imm4x2:0x" << hex << f_imm4x2 << dec
5997         << " f_rm:0x" << hex << f_rm << dec
5998         << endl;
5999     }
6000
6001   /* Record the fields for profiling.  */
6002   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6003     {
6004       FLD (in_r0) = 0;
6005       FLD (in_rm) = f_rm;
6006     }
6007 #undef FLD
6008 }
6009
6010 void
6011 sh5_compact_extract_sfmt_movw6_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6012     sh5_compact_insn_word insn = entire_insn;
6013 #define FLD(f) abuf->fields.sfmt_movl12_compact.f
6014     UINT f_rn;
6015     UINT f_rm;
6016
6017     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6018     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
6019
6020   /* Record the fields for the semantic handler.  */
6021   FLD (f_rm) = f_rm;
6022   FLD (f_rn) = f_rn;
6023   if (UNLIKELY(current_cpu->trace_extract_p))
6024     {
6025       current_cpu->trace_stream 
6026         << "0x" << hex << pc << dec << " (sfmt_movw6_compact)\t"
6027         << " f_rm:0x" << hex << f_rm << dec
6028         << " f_rn:0x" << hex << f_rn << dec
6029         << endl;
6030     }
6031
6032   /* Record the fields for profiling.  */
6033   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6034     {
6035       FLD (in_rm) = f_rm;
6036       FLD (out_rn) = f_rn;
6037     }
6038 #undef FLD
6039 }
6040
6041 void
6042 sh5_compact_extract_sfmt_movw7_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6043     sh5_compact_insn_word insn = entire_insn;
6044 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6045     UINT f_rn;
6046     UINT f_rm;
6047
6048     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6049     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
6050
6051   /* Record the fields for the semantic handler.  */
6052   FLD (f_rm) = f_rm;
6053   FLD (f_rn) = f_rn;
6054   if (UNLIKELY(current_cpu->trace_extract_p))
6055     {
6056       current_cpu->trace_stream 
6057         << "0x" << hex << pc << dec << " (sfmt_movw7_compact)\t"
6058         << " f_rm:0x" << hex << f_rm << dec
6059         << " f_rn:0x" << hex << f_rn << dec
6060         << endl;
6061     }
6062
6063   /* Record the fields for profiling.  */
6064   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6065     {
6066       FLD (in_rm) = f_rm;
6067       FLD (out_rm) = f_rm;
6068       FLD (out_rn) = f_rn;
6069     }
6070 #undef FLD
6071 }
6072
6073 void
6074 sh5_compact_extract_sfmt_movw8_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6075     sh5_compact_insn_word insn = entire_insn;
6076 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
6077     UINT f_rn;
6078     UINT f_rm;
6079
6080     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6081     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
6082
6083   /* Record the fields for the semantic handler.  */
6084   FLD (f_rm) = f_rm;
6085   FLD (f_rn) = f_rn;
6086   if (UNLIKELY(current_cpu->trace_extract_p))
6087     {
6088       current_cpu->trace_stream 
6089         << "0x" << hex << pc << dec << " (sfmt_movw8_compact)\t"
6090         << " f_rm:0x" << hex << f_rm << dec
6091         << " f_rn:0x" << hex << f_rn << dec
6092         << endl;
6093     }
6094
6095   /* Record the fields for profiling.  */
6096   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6097     {
6098       FLD (in_r0) = 0;
6099       FLD (in_rm) = f_rm;
6100       FLD (out_rn) = f_rn;
6101     }
6102 #undef FLD
6103 }
6104
6105 void
6106 sh5_compact_extract_sfmt_movw9_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6107     sh5_compact_insn_word insn = entire_insn;
6108 #define FLD(f) abuf->fields.sfmt_movw9_compact.f
6109     SI f_imm8x2;
6110
6111     f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
6112
6113   /* Record the fields for the semantic handler.  */
6114   FLD (f_imm8x2) = f_imm8x2;
6115   if (UNLIKELY(current_cpu->trace_extract_p))
6116     {
6117       current_cpu->trace_stream 
6118         << "0x" << hex << pc << dec << " (sfmt_movw9_compact)\t"
6119         << " f_imm8x2:0x" << hex << f_imm8x2 << dec
6120         << endl;
6121     }
6122
6123   /* Record the fields for profiling.  */
6124   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6125     {
6126       FLD (out_r0) = 0;
6127     }
6128 #undef FLD
6129 }
6130
6131 void
6132 sh5_compact_extract_sfmt_movw10_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6133     sh5_compact_insn_word insn = entire_insn;
6134 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6135     UINT f_rn;
6136     SI f_imm8x2;
6137
6138     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6139     f_imm8x2 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
6140
6141   /* Record the fields for the semantic handler.  */
6142   FLD (f_imm8x2) = f_imm8x2;
6143   FLD (f_rn) = f_rn;
6144   if (UNLIKELY(current_cpu->trace_extract_p))
6145     {
6146       current_cpu->trace_stream 
6147         << "0x" << hex << pc << dec << " (sfmt_movw10_compact)\t"
6148         << " f_imm8x2:0x" << hex << f_imm8x2 << dec
6149         << " f_rn:0x" << hex << f_rn << dec
6150         << endl;
6151     }
6152
6153   /* Record the fields for profiling.  */
6154   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6155     {
6156       FLD (out_rn) = f_rn;
6157     }
6158 #undef FLD
6159 }
6160
6161 void
6162 sh5_compact_extract_sfmt_movw11_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6163     sh5_compact_insn_word insn = entire_insn;
6164 #define FLD(f) abuf->fields.sfmt_movw11_compact.f
6165     UINT f_rm;
6166     SI f_imm4x2;
6167
6168     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
6169     f_imm4x2 = ((EXTRACT_MSB0_UINT (insn, 16, 12, 4)) << (1));
6170
6171   /* Record the fields for the semantic handler.  */
6172   FLD (f_imm4x2) = f_imm4x2;
6173   FLD (f_rm) = f_rm;
6174   if (UNLIKELY(current_cpu->trace_extract_p))
6175     {
6176       current_cpu->trace_stream 
6177         << "0x" << hex << pc << dec << " (sfmt_movw11_compact)\t"
6178         << " f_imm4x2:0x" << hex << f_imm4x2 << dec
6179         << " f_rm:0x" << hex << f_rm << 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_rm) = f_rm;
6187       FLD (out_r0) = 0;
6188     }
6189 #undef FLD
6190 }
6191
6192 void
6193 sh5_compact_extract_sfmt_mova_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6194     sh5_compact_insn_word insn = entire_insn;
6195 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
6196     SI f_imm8x4;
6197
6198     f_imm8x4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
6199
6200   /* Record the fields for the semantic handler.  */
6201   FLD (f_imm8x4) = f_imm8x4;
6202   if (UNLIKELY(current_cpu->trace_extract_p))
6203     {
6204       current_cpu->trace_stream 
6205         << "0x" << hex << pc << dec << " (sfmt_mova_compact)\t"
6206         << " f_imm8x4:0x" << hex << f_imm8x4 << 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_r0) = 0;
6214     }
6215 #undef FLD
6216 }
6217
6218 void
6219 sh5_compact_extract_sfmt_movcal_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6220     sh5_compact_insn_word insn = entire_insn;
6221 #define FLD(f) abuf->fields.sfmt_divu_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_movcal_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_r0) = 0;
6240       FLD (in_rn) = f_rn;
6241     }
6242 #undef FLD
6243 }
6244
6245 void
6246 sh5_compact_extract_sfmt_movcol_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6247     sh5_compact_insn_word insn = entire_insn;
6248 #define FLD(f) abuf->fields.sfmt_stsl_fpul_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_movcol_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 (in_rn) = f_rn;
6267       FLD (out_rn) = f_rn;
6268     }
6269 #undef FLD
6270 }
6271
6272 void
6273 sh5_compact_extract_sfmt_movt_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6274     sh5_compact_insn_word insn = entire_insn;
6275 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6276     UINT f_rn;
6277
6278     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6279
6280   /* Record the fields for the semantic handler.  */
6281   FLD (f_rn) = f_rn;
6282   if (UNLIKELY(current_cpu->trace_extract_p))
6283     {
6284       current_cpu->trace_stream 
6285         << "0x" << hex << pc << dec << " (sfmt_movt_compact)\t"
6286         << " f_rn:0x" << hex << f_rn << dec
6287         << endl;
6288     }
6289
6290   /* Record the fields for profiling.  */
6291   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6292     {
6293       FLD (out_rn) = f_rn;
6294     }
6295 #undef FLD
6296 }
6297
6298 void
6299 sh5_compact_extract_sfmt_movual_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6300     sh5_compact_insn_word insn = entire_insn;
6301 #define FLD(f) abuf->fields.sfmt_movual2_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_movual_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       FLD (out_r0) = 0;
6321     }
6322 #undef FLD
6323 }
6324
6325 void
6326 sh5_compact_extract_sfmt_movual2_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6327     sh5_compact_insn_word insn = entire_insn;
6328 #define FLD(f) abuf->fields.sfmt_movual2_compact.f
6329     UINT f_rn;
6330
6331     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6332
6333   /* Record the fields for the semantic handler.  */
6334   FLD (f_rn) = f_rn;
6335   if (UNLIKELY(current_cpu->trace_extract_p))
6336     {
6337       current_cpu->trace_stream 
6338         << "0x" << hex << pc << dec << " (sfmt_movual2_compact)\t"
6339         << " f_rn:0x" << hex << f_rn << dec
6340         << endl;
6341     }
6342
6343   /* Record the fields for profiling.  */
6344   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6345     {
6346       FLD (in_rn) = f_rn;
6347       FLD (out_r0) = 0;
6348       FLD (out_rn) = f_rn;
6349     }
6350 #undef FLD
6351 }
6352
6353 void
6354 sh5_compact_extract_sfmt_mull_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6355     sh5_compact_insn_word insn = entire_insn;
6356 #define FLD(f) abuf->fields.sfmt_movl13_compact.f
6357     UINT f_rn;
6358     UINT f_rm;
6359
6360     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6361     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
6362
6363   /* Record the fields for the semantic handler.  */
6364   FLD (f_rm) = f_rm;
6365   FLD (f_rn) = f_rn;
6366   if (UNLIKELY(current_cpu->trace_extract_p))
6367     {
6368       current_cpu->trace_stream 
6369         << "0x" << hex << pc << dec << " (sfmt_mull_compact)\t"
6370         << " f_rm:0x" << hex << f_rm << dec
6371         << " f_rn:0x" << hex << f_rn << dec
6372         << endl;
6373     }
6374
6375   /* Record the fields for profiling.  */
6376   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6377     {
6378       FLD (in_rm) = f_rm;
6379       FLD (in_rn) = f_rn;
6380     }
6381 #undef FLD
6382 }
6383
6384 void
6385 sh5_compact_extract_sfmt_negc_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6386     sh5_compact_insn_word insn = entire_insn;
6387 #define FLD(f) abuf->fields.sfmt_movl12_compact.f
6388     UINT f_rn;
6389     UINT f_rm;
6390
6391     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6392     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
6393
6394   /* Record the fields for the semantic handler.  */
6395   FLD (f_rm) = f_rm;
6396   FLD (f_rn) = f_rn;
6397   if (UNLIKELY(current_cpu->trace_extract_p))
6398     {
6399       current_cpu->trace_stream 
6400         << "0x" << hex << pc << dec << " (sfmt_negc_compact)\t"
6401         << " f_rm:0x" << hex << f_rm << dec
6402         << " f_rn:0x" << hex << f_rn << dec
6403         << endl;
6404     }
6405
6406   /* Record the fields for profiling.  */
6407   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6408     {
6409       FLD (in_rm) = f_rm;
6410       FLD (out_rn) = f_rn;
6411     }
6412 #undef FLD
6413 }
6414
6415 void
6416 sh5_compact_extract_sfmt_nop_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6417     sh5_compact_insn_word insn = entire_insn;
6418 #define FLD(f) abuf->fields.sfmt_empty.f
6419
6420
6421   /* Record the fields for the semantic handler.  */
6422   if (UNLIKELY(current_cpu->trace_extract_p))
6423     {
6424       current_cpu->trace_stream 
6425         << "0x" << hex << pc << dec << " (sfmt_nop_compact)\t"
6426         << endl;
6427     }
6428
6429 #undef FLD
6430 }
6431
6432 void
6433 sh5_compact_extract_sfmt_pref_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6434     sh5_compact_insn_word insn = entire_insn;
6435 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6436     UINT f_rn;
6437
6438     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6439
6440   /* Record the fields for the semantic handler.  */
6441   FLD (f_rn) = f_rn;
6442   if (UNLIKELY(current_cpu->trace_extract_p))
6443     {
6444       current_cpu->trace_stream 
6445         << "0x" << hex << pc << dec << " (sfmt_pref_compact)\t"
6446         << " f_rn:0x" << hex << f_rn << dec
6447         << endl;
6448     }
6449
6450   /* Record the fields for profiling.  */
6451   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6452     {
6453       FLD (in_rn) = f_rn;
6454     }
6455 #undef FLD
6456 }
6457
6458 void
6459 sh5_compact_extract_sfmt_rotcl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6460     sh5_compact_insn_word insn = entire_insn;
6461 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6462     UINT f_rn;
6463
6464     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6465
6466   /* Record the fields for the semantic handler.  */
6467   FLD (f_rn) = f_rn;
6468   if (UNLIKELY(current_cpu->trace_extract_p))
6469     {
6470       current_cpu->trace_stream 
6471         << "0x" << hex << pc << dec << " (sfmt_rotcl_compact)\t"
6472         << " f_rn:0x" << hex << f_rn << dec
6473         << endl;
6474     }
6475
6476   /* Record the fields for profiling.  */
6477   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6478     {
6479       FLD (in_rn) = f_rn;
6480       FLD (out_rn) = f_rn;
6481     }
6482 #undef FLD
6483 }
6484
6485 void
6486 sh5_compact_extract_sfmt_rts_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6487     sh5_compact_insn_word insn = entire_insn;
6488 #define FLD(f) abuf->fields.sfmt_empty.f
6489
6490
6491   /* Record the fields for the semantic handler.  */
6492   if (UNLIKELY(current_cpu->trace_extract_p))
6493     {
6494       current_cpu->trace_stream 
6495         << "0x" << hex << pc << dec << " (sfmt_rts_compact)\t"
6496         << endl;
6497     }
6498
6499   /* Record the fields for profiling.  */
6500   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6501     {
6502     }
6503 #undef FLD
6504 }
6505
6506 void
6507 sh5_compact_extract_sfmt_shad_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6508     sh5_compact_insn_word insn = entire_insn;
6509 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6510     UINT f_rn;
6511     UINT f_rm;
6512
6513     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6514     f_rm = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
6515
6516   /* Record the fields for the semantic handler.  */
6517   FLD (f_rm) = f_rm;
6518   FLD (f_rn) = f_rn;
6519   if (UNLIKELY(current_cpu->trace_extract_p))
6520     {
6521       current_cpu->trace_stream 
6522         << "0x" << hex << pc << dec << " (sfmt_shad_compact)\t"
6523         << " f_rm:0x" << hex << f_rm << dec
6524         << " f_rn:0x" << hex << f_rn << dec
6525         << endl;
6526     }
6527
6528   /* Record the fields for profiling.  */
6529   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6530     {
6531       FLD (in_rm) = f_rm;
6532       FLD (in_rn) = f_rn;
6533       FLD (out_rn) = f_rn;
6534     }
6535 #undef FLD
6536 }
6537
6538 void
6539 sh5_compact_extract_sfmt_stc_gbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6540     sh5_compact_insn_word insn = entire_insn;
6541 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6542     UINT f_rn;
6543
6544     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6545
6546   /* Record the fields for the semantic handler.  */
6547   FLD (f_rn) = f_rn;
6548   if (UNLIKELY(current_cpu->trace_extract_p))
6549     {
6550       current_cpu->trace_stream 
6551         << "0x" << hex << pc << dec << " (sfmt_stc_gbr_compact)\t"
6552         << " f_rn:0x" << hex << f_rn << dec
6553         << endl;
6554     }
6555
6556   /* Record the fields for profiling.  */
6557   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6558     {
6559       FLD (out_rn) = f_rn;
6560     }
6561 #undef FLD
6562 }
6563
6564 void
6565 sh5_compact_extract_sfmt_stc_vbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6566     sh5_compact_insn_word insn = entire_insn;
6567 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6568     UINT f_rn;
6569
6570     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6571
6572   /* Record the fields for the semantic handler.  */
6573   FLD (f_rn) = f_rn;
6574   if (UNLIKELY(current_cpu->trace_extract_p))
6575     {
6576       current_cpu->trace_stream 
6577         << "0x" << hex << pc << dec << " (sfmt_stc_vbr_compact)\t"
6578         << " f_rn:0x" << hex << f_rn << dec
6579         << endl;
6580     }
6581
6582   /* Record the fields for profiling.  */
6583   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6584     {
6585       FLD (out_rn) = f_rn;
6586     }
6587 #undef FLD
6588 }
6589
6590 void
6591 sh5_compact_extract_sfmt_stcl_gbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6592     sh5_compact_insn_word insn = entire_insn;
6593 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6594     UINT f_rn;
6595
6596     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6597
6598   /* Record the fields for the semantic handler.  */
6599   FLD (f_rn) = f_rn;
6600   if (UNLIKELY(current_cpu->trace_extract_p))
6601     {
6602       current_cpu->trace_stream 
6603         << "0x" << hex << pc << dec << " (sfmt_stcl_gbr_compact)\t"
6604         << " f_rn:0x" << hex << f_rn << dec
6605         << endl;
6606     }
6607
6608   /* Record the fields for profiling.  */
6609   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6610     {
6611       FLD (in_rn) = f_rn;
6612       FLD (out_rn) = f_rn;
6613     }
6614 #undef FLD
6615 }
6616
6617 void
6618 sh5_compact_extract_sfmt_stcl_vbr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6619     sh5_compact_insn_word insn = entire_insn;
6620 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6621     UINT f_rn;
6622
6623     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6624
6625   /* Record the fields for the semantic handler.  */
6626   FLD (f_rn) = f_rn;
6627   if (UNLIKELY(current_cpu->trace_extract_p))
6628     {
6629       current_cpu->trace_stream 
6630         << "0x" << hex << pc << dec << " (sfmt_stcl_vbr_compact)\t"
6631         << " f_rn:0x" << hex << f_rn << dec
6632         << endl;
6633     }
6634
6635   /* Record the fields for profiling.  */
6636   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6637     {
6638       FLD (in_rn) = f_rn;
6639       FLD (out_rn) = f_rn;
6640     }
6641 #undef FLD
6642 }
6643
6644 void
6645 sh5_compact_extract_sfmt_sts_fpscr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6646     sh5_compact_insn_word insn = entire_insn;
6647 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6648     UINT f_rn;
6649
6650     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6651
6652   /* Record the fields for the semantic handler.  */
6653   FLD (f_rn) = f_rn;
6654   if (UNLIKELY(current_cpu->trace_extract_p))
6655     {
6656       current_cpu->trace_stream 
6657         << "0x" << hex << pc << dec << " (sfmt_sts_fpscr_compact)\t"
6658         << " f_rn:0x" << hex << f_rn << dec
6659         << endl;
6660     }
6661
6662   /* Record the fields for profiling.  */
6663   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6664     {
6665       FLD (out_rn) = f_rn;
6666     }
6667 #undef FLD
6668 }
6669
6670 void
6671 sh5_compact_extract_sfmt_stsl_fpscr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6672     sh5_compact_insn_word insn = entire_insn;
6673 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6674     UINT f_rn;
6675
6676     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6677
6678   /* Record the fields for the semantic handler.  */
6679   FLD (f_rn) = f_rn;
6680   if (UNLIKELY(current_cpu->trace_extract_p))
6681     {
6682       current_cpu->trace_stream 
6683         << "0x" << hex << pc << dec << " (sfmt_stsl_fpscr_compact)\t"
6684         << " f_rn:0x" << hex << f_rn << dec
6685         << endl;
6686     }
6687
6688   /* Record the fields for profiling.  */
6689   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6690     {
6691       FLD (in_rn) = f_rn;
6692       FLD (out_rn) = f_rn;
6693     }
6694 #undef FLD
6695 }
6696
6697 void
6698 sh5_compact_extract_sfmt_sts_fpul_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6699     sh5_compact_insn_word insn = entire_insn;
6700 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6701     UINT f_rn;
6702
6703     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6704
6705   /* Record the fields for the semantic handler.  */
6706   FLD (f_rn) = f_rn;
6707   if (UNLIKELY(current_cpu->trace_extract_p))
6708     {
6709       current_cpu->trace_stream 
6710         << "0x" << hex << pc << dec << " (sfmt_sts_fpul_compact)\t"
6711         << " f_rn:0x" << hex << f_rn << dec
6712         << endl;
6713     }
6714
6715   /* Record the fields for profiling.  */
6716   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6717     {
6718       FLD (in_fpul) = 32;
6719       FLD (out_rn) = f_rn;
6720     }
6721 #undef FLD
6722 }
6723
6724 void
6725 sh5_compact_extract_sfmt_stsl_fpul_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6726     sh5_compact_insn_word insn = entire_insn;
6727 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6728     UINT f_rn;
6729
6730     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6731
6732   /* Record the fields for the semantic handler.  */
6733   FLD (f_rn) = f_rn;
6734   if (UNLIKELY(current_cpu->trace_extract_p))
6735     {
6736       current_cpu->trace_stream 
6737         << "0x" << hex << pc << dec << " (sfmt_stsl_fpul_compact)\t"
6738         << " f_rn:0x" << hex << f_rn << dec
6739         << endl;
6740     }
6741
6742   /* Record the fields for profiling.  */
6743   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6744     {
6745       FLD (in_fpul) = 32;
6746       FLD (in_rn) = f_rn;
6747       FLD (out_rn) = f_rn;
6748     }
6749 #undef FLD
6750 }
6751
6752 void
6753 sh5_compact_extract_sfmt_sts_mach_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6754     sh5_compact_insn_word insn = entire_insn;
6755 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6756     UINT f_rn;
6757
6758     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6759
6760   /* Record the fields for the semantic handler.  */
6761   FLD (f_rn) = f_rn;
6762   if (UNLIKELY(current_cpu->trace_extract_p))
6763     {
6764       current_cpu->trace_stream 
6765         << "0x" << hex << pc << dec << " (sfmt_sts_mach_compact)\t"
6766         << " f_rn:0x" << hex << f_rn << dec
6767         << endl;
6768     }
6769
6770   /* Record the fields for profiling.  */
6771   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6772     {
6773       FLD (out_rn) = f_rn;
6774     }
6775 #undef FLD
6776 }
6777
6778 void
6779 sh5_compact_extract_sfmt_stsl_mach_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6780     sh5_compact_insn_word insn = entire_insn;
6781 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6782     UINT f_rn;
6783
6784     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6785
6786   /* Record the fields for the semantic handler.  */
6787   FLD (f_rn) = f_rn;
6788   if (UNLIKELY(current_cpu->trace_extract_p))
6789     {
6790       current_cpu->trace_stream 
6791         << "0x" << hex << pc << dec << " (sfmt_stsl_mach_compact)\t"
6792         << " f_rn:0x" << hex << f_rn << dec
6793         << endl;
6794     }
6795
6796   /* Record the fields for profiling.  */
6797   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6798     {
6799       FLD (in_rn) = f_rn;
6800       FLD (out_rn) = f_rn;
6801     }
6802 #undef FLD
6803 }
6804
6805 void
6806 sh5_compact_extract_sfmt_sts_macl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6807     sh5_compact_insn_word insn = entire_insn;
6808 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6809     UINT f_rn;
6810
6811     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6812
6813   /* Record the fields for the semantic handler.  */
6814   FLD (f_rn) = f_rn;
6815   if (UNLIKELY(current_cpu->trace_extract_p))
6816     {
6817       current_cpu->trace_stream 
6818         << "0x" << hex << pc << dec << " (sfmt_sts_macl_compact)\t"
6819         << " f_rn:0x" << hex << f_rn << dec
6820         << endl;
6821     }
6822
6823   /* Record the fields for profiling.  */
6824   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6825     {
6826       FLD (out_rn) = f_rn;
6827     }
6828 #undef FLD
6829 }
6830
6831 void
6832 sh5_compact_extract_sfmt_stsl_macl_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6833     sh5_compact_insn_word insn = entire_insn;
6834 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6835     UINT f_rn;
6836
6837     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6838
6839   /* Record the fields for the semantic handler.  */
6840   FLD (f_rn) = f_rn;
6841   if (UNLIKELY(current_cpu->trace_extract_p))
6842     {
6843       current_cpu->trace_stream 
6844         << "0x" << hex << pc << dec << " (sfmt_stsl_macl_compact)\t"
6845         << " f_rn:0x" << hex << f_rn << dec
6846         << endl;
6847     }
6848
6849   /* Record the fields for profiling.  */
6850   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6851     {
6852       FLD (in_rn) = f_rn;
6853       FLD (out_rn) = f_rn;
6854     }
6855 #undef FLD
6856 }
6857
6858 void
6859 sh5_compact_extract_sfmt_sts_pr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6860     sh5_compact_insn_word insn = entire_insn;
6861 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6862     UINT f_rn;
6863
6864     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6865
6866   /* Record the fields for the semantic handler.  */
6867   FLD (f_rn) = f_rn;
6868   if (UNLIKELY(current_cpu->trace_extract_p))
6869     {
6870       current_cpu->trace_stream 
6871         << "0x" << hex << pc << dec << " (sfmt_sts_pr_compact)\t"
6872         << " f_rn:0x" << hex << f_rn << dec
6873         << endl;
6874     }
6875
6876   /* Record the fields for profiling.  */
6877   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6878     {
6879       FLD (out_rn) = f_rn;
6880     }
6881 #undef FLD
6882 }
6883
6884 void
6885 sh5_compact_extract_sfmt_stsl_pr_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6886     sh5_compact_insn_word insn = entire_insn;
6887 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6888     UINT f_rn;
6889
6890     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6891
6892   /* Record the fields for the semantic handler.  */
6893   FLD (f_rn) = f_rn;
6894   if (UNLIKELY(current_cpu->trace_extract_p))
6895     {
6896       current_cpu->trace_stream 
6897         << "0x" << hex << pc << dec << " (sfmt_stsl_pr_compact)\t"
6898         << " f_rn:0x" << hex << f_rn << dec
6899         << endl;
6900     }
6901
6902   /* Record the fields for profiling.  */
6903   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6904     {
6905       FLD (in_rn) = f_rn;
6906       FLD (out_rn) = f_rn;
6907     }
6908 #undef FLD
6909 }
6910
6911 void
6912 sh5_compact_extract_sfmt_tasb_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6913     sh5_compact_insn_word insn = entire_insn;
6914 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6915     UINT f_rn;
6916
6917     f_rn = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
6918
6919   /* Record the fields for the semantic handler.  */
6920   FLD (f_rn) = f_rn;
6921   if (UNLIKELY(current_cpu->trace_extract_p))
6922     {
6923       current_cpu->trace_stream 
6924         << "0x" << hex << pc << dec << " (sfmt_tasb_compact)\t"
6925         << " f_rn:0x" << hex << f_rn << dec
6926         << endl;
6927     }
6928
6929   /* Record the fields for profiling.  */
6930   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6931     {
6932       FLD (in_rn) = f_rn;
6933     }
6934 #undef FLD
6935 }
6936
6937 void
6938 sh5_compact_extract_sfmt_trapa_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6939     sh5_compact_insn_word insn = entire_insn;
6940 #define FLD(f) abuf->fields.sfmt_andi_compact.f
6941     UINT f_imm8;
6942
6943     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
6944
6945   /* Record the fields for the semantic handler.  */
6946   FLD (f_imm8) = f_imm8;
6947   if (UNLIKELY(current_cpu->trace_extract_p))
6948     {
6949       current_cpu->trace_stream 
6950         << "0x" << hex << pc << dec << " (sfmt_trapa_compact)\t"
6951         << " f_imm8:0x" << hex << f_imm8 << dec
6952         << endl;
6953     }
6954
6955   /* Record the fields for profiling.  */
6956   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6957     {
6958     }
6959 #undef FLD
6960 }
6961
6962 void
6963 sh5_compact_extract_sfmt_tsti_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6964     sh5_compact_insn_word insn = entire_insn;
6965 #define FLD(f) abuf->fields.sfmt_andi_compact.f
6966     UINT f_imm8;
6967
6968     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
6969
6970   /* Record the fields for the semantic handler.  */
6971   FLD (f_imm8) = f_imm8;
6972   if (UNLIKELY(current_cpu->trace_extract_p))
6973     {
6974       current_cpu->trace_stream 
6975         << "0x" << hex << pc << dec << " (sfmt_tsti_compact)\t"
6976         << " f_imm8:0x" << hex << f_imm8 << dec
6977         << endl;
6978     }
6979
6980   /* Record the fields for profiling.  */
6981   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
6982     {
6983       FLD (in_r0) = 0;
6984     }
6985 #undef FLD
6986 }
6987
6988 void
6989 sh5_compact_extract_sfmt_tstb_compact (sh5_compact_scache* abuf, sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn){
6990     sh5_compact_insn_word insn = entire_insn;
6991 #define FLD(f) abuf->fields.sfmt_andi_compact.f
6992     UINT f_imm8;
6993
6994     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
6995
6996   /* Record the fields for the semantic handler.  */
6997   FLD (f_imm8) = f_imm8;
6998   if (UNLIKELY(current_cpu->trace_extract_p))
6999     {
7000       current_cpu->trace_stream 
7001         << "0x" << hex << pc << dec << " (sfmt_tstb_compact)\t"
7002         << " f_imm8:0x" << hex << f_imm8 << dec
7003         << endl;
7004     }
7005
7006   /* Record the fields for profiling.  */
7007   if (UNLIKELY (current_cpu->trace_counter_p || current_cpu->final_insn_count_p))
7008     {
7009       FLD (in_r0) = 0;
7010     }
7011 #undef FLD
7012 }
7013