OSDN Git Service

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