OSDN Git Service

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