OSDN Git Service

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