1 /* Simulator instruction decoder for sh64_compact.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
7 This file is part of the GNU Simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29 #include "sim-assert.h"
31 /* The instruction descriptor array.
32 This is computed at runtime. Space for it is not malloc'd to save a
33 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
34 but won't be done until necessary (we don't currently support the runtime
35 addition of instructions nor an SMP machine with different cpus). */
36 static IDESC sh64_compact_insn_data
[SH64_COMPACT_INSN_MAX
];
38 /* Commas between elements are contained in the macros.
39 Some of these are conditionally compiled out. */
41 static const struct insn_sem sh64_compact_insn_sem
[] =
43 { VIRTUAL_INSN_X_INVALID
, SH64_COMPACT_INSN_X_INVALID
, SH64_COMPACT_SFMT_EMPTY
},
44 { VIRTUAL_INSN_X_AFTER
, SH64_COMPACT_INSN_X_AFTER
, SH64_COMPACT_SFMT_EMPTY
},
45 { VIRTUAL_INSN_X_BEFORE
, SH64_COMPACT_INSN_X_BEFORE
, SH64_COMPACT_SFMT_EMPTY
},
46 { VIRTUAL_INSN_X_CTI_CHAIN
, SH64_COMPACT_INSN_X_CTI_CHAIN
, SH64_COMPACT_SFMT_EMPTY
},
47 { VIRTUAL_INSN_X_CHAIN
, SH64_COMPACT_INSN_X_CHAIN
, SH64_COMPACT_SFMT_EMPTY
},
48 { VIRTUAL_INSN_X_BEGIN
, SH64_COMPACT_INSN_X_BEGIN
, SH64_COMPACT_SFMT_EMPTY
},
49 { SH_INSN_ADD_COMPACT
, SH64_COMPACT_INSN_ADD_COMPACT
, SH64_COMPACT_SFMT_ADD_COMPACT
},
50 { SH_INSN_ADDI_COMPACT
, SH64_COMPACT_INSN_ADDI_COMPACT
, SH64_COMPACT_SFMT_ADDI_COMPACT
},
51 { SH_INSN_ADDC_COMPACT
, SH64_COMPACT_INSN_ADDC_COMPACT
, SH64_COMPACT_SFMT_ADDC_COMPACT
},
52 { SH_INSN_ADDV_COMPACT
, SH64_COMPACT_INSN_ADDV_COMPACT
, SH64_COMPACT_SFMT_ADDV_COMPACT
},
53 { SH_INSN_AND_COMPACT
, SH64_COMPACT_INSN_AND_COMPACT
, SH64_COMPACT_SFMT_AND_COMPACT
},
54 { SH_INSN_ANDI_COMPACT
, SH64_COMPACT_INSN_ANDI_COMPACT
, SH64_COMPACT_SFMT_ANDI_COMPACT
},
55 { SH_INSN_ANDB_COMPACT
, SH64_COMPACT_INSN_ANDB_COMPACT
, SH64_COMPACT_SFMT_ANDB_COMPACT
},
56 { SH_INSN_BF_COMPACT
, SH64_COMPACT_INSN_BF_COMPACT
, SH64_COMPACT_SFMT_BF_COMPACT
},
57 { SH_INSN_BFS_COMPACT
, SH64_COMPACT_INSN_BFS_COMPACT
, SH64_COMPACT_SFMT_BF_COMPACT
},
58 { SH_INSN_BRA_COMPACT
, SH64_COMPACT_INSN_BRA_COMPACT
, SH64_COMPACT_SFMT_BRA_COMPACT
},
59 { SH_INSN_BRAF_COMPACT
, SH64_COMPACT_INSN_BRAF_COMPACT
, SH64_COMPACT_SFMT_BRAF_COMPACT
},
60 { SH_INSN_BRK_COMPACT
, SH64_COMPACT_INSN_BRK_COMPACT
, SH64_COMPACT_SFMT_BRK_COMPACT
},
61 { SH_INSN_BSR_COMPACT
, SH64_COMPACT_INSN_BSR_COMPACT
, SH64_COMPACT_SFMT_BSR_COMPACT
},
62 { SH_INSN_BSRF_COMPACT
, SH64_COMPACT_INSN_BSRF_COMPACT
, SH64_COMPACT_SFMT_BSRF_COMPACT
},
63 { SH_INSN_BT_COMPACT
, SH64_COMPACT_INSN_BT_COMPACT
, SH64_COMPACT_SFMT_BF_COMPACT
},
64 { SH_INSN_BTS_COMPACT
, SH64_COMPACT_INSN_BTS_COMPACT
, SH64_COMPACT_SFMT_BF_COMPACT
},
65 { SH_INSN_CLRMAC_COMPACT
, SH64_COMPACT_INSN_CLRMAC_COMPACT
, SH64_COMPACT_SFMT_CLRMAC_COMPACT
},
66 { SH_INSN_CLRS_COMPACT
, SH64_COMPACT_INSN_CLRS_COMPACT
, SH64_COMPACT_SFMT_CLRS_COMPACT
},
67 { SH_INSN_CLRT_COMPACT
, SH64_COMPACT_INSN_CLRT_COMPACT
, SH64_COMPACT_SFMT_CLRT_COMPACT
},
68 { SH_INSN_CMPEQ_COMPACT
, SH64_COMPACT_INSN_CMPEQ_COMPACT
, SH64_COMPACT_SFMT_CMPEQ_COMPACT
},
69 { SH_INSN_CMPEQI_COMPACT
, SH64_COMPACT_INSN_CMPEQI_COMPACT
, SH64_COMPACT_SFMT_CMPEQI_COMPACT
},
70 { SH_INSN_CMPGE_COMPACT
, SH64_COMPACT_INSN_CMPGE_COMPACT
, SH64_COMPACT_SFMT_CMPEQ_COMPACT
},
71 { SH_INSN_CMPGT_COMPACT
, SH64_COMPACT_INSN_CMPGT_COMPACT
, SH64_COMPACT_SFMT_CMPEQ_COMPACT
},
72 { SH_INSN_CMPHI_COMPACT
, SH64_COMPACT_INSN_CMPHI_COMPACT
, SH64_COMPACT_SFMT_CMPEQ_COMPACT
},
73 { SH_INSN_CMPHS_COMPACT
, SH64_COMPACT_INSN_CMPHS_COMPACT
, SH64_COMPACT_SFMT_CMPEQ_COMPACT
},
74 { SH_INSN_CMPPL_COMPACT
, SH64_COMPACT_INSN_CMPPL_COMPACT
, SH64_COMPACT_SFMT_CMPPL_COMPACT
},
75 { SH_INSN_CMPPZ_COMPACT
, SH64_COMPACT_INSN_CMPPZ_COMPACT
, SH64_COMPACT_SFMT_CMPPL_COMPACT
},
76 { SH_INSN_CMPSTR_COMPACT
, SH64_COMPACT_INSN_CMPSTR_COMPACT
, SH64_COMPACT_SFMT_CMPEQ_COMPACT
},
77 { SH_INSN_DIV0S_COMPACT
, SH64_COMPACT_INSN_DIV0S_COMPACT
, SH64_COMPACT_SFMT_DIV0S_COMPACT
},
78 { SH_INSN_DIV0U_COMPACT
, SH64_COMPACT_INSN_DIV0U_COMPACT
, SH64_COMPACT_SFMT_DIV0U_COMPACT
},
79 { SH_INSN_DIV1_COMPACT
, SH64_COMPACT_INSN_DIV1_COMPACT
, SH64_COMPACT_SFMT_DIV1_COMPACT
},
80 { SH_INSN_DMULSL_COMPACT
, SH64_COMPACT_INSN_DMULSL_COMPACT
, SH64_COMPACT_SFMT_DMULSL_COMPACT
},
81 { SH_INSN_DMULUL_COMPACT
, SH64_COMPACT_INSN_DMULUL_COMPACT
, SH64_COMPACT_SFMT_DMULSL_COMPACT
},
82 { SH_INSN_DT_COMPACT
, SH64_COMPACT_INSN_DT_COMPACT
, SH64_COMPACT_SFMT_DT_COMPACT
},
83 { SH_INSN_EXTSB_COMPACT
, SH64_COMPACT_INSN_EXTSB_COMPACT
, SH64_COMPACT_SFMT_EXTSB_COMPACT
},
84 { SH_INSN_EXTSW_COMPACT
, SH64_COMPACT_INSN_EXTSW_COMPACT
, SH64_COMPACT_SFMT_EXTSB_COMPACT
},
85 { SH_INSN_EXTUB_COMPACT
, SH64_COMPACT_INSN_EXTUB_COMPACT
, SH64_COMPACT_SFMT_EXTSB_COMPACT
},
86 { SH_INSN_EXTUW_COMPACT
, SH64_COMPACT_INSN_EXTUW_COMPACT
, SH64_COMPACT_SFMT_EXTSB_COMPACT
},
87 { SH_INSN_FABS_COMPACT
, SH64_COMPACT_INSN_FABS_COMPACT
, SH64_COMPACT_SFMT_FABS_COMPACT
},
88 { SH_INSN_FADD_COMPACT
, SH64_COMPACT_INSN_FADD_COMPACT
, SH64_COMPACT_SFMT_FADD_COMPACT
},
89 { SH_INSN_FCMPEQ_COMPACT
, SH64_COMPACT_INSN_FCMPEQ_COMPACT
, SH64_COMPACT_SFMT_FCMPEQ_COMPACT
},
90 { SH_INSN_FCMPGT_COMPACT
, SH64_COMPACT_INSN_FCMPGT_COMPACT
, SH64_COMPACT_SFMT_FCMPEQ_COMPACT
},
91 { SH_INSN_FCNVDS_COMPACT
, SH64_COMPACT_INSN_FCNVDS_COMPACT
, SH64_COMPACT_SFMT_FCNVDS_COMPACT
},
92 { SH_INSN_FCNVSD_COMPACT
, SH64_COMPACT_INSN_FCNVSD_COMPACT
, SH64_COMPACT_SFMT_FCNVSD_COMPACT
},
93 { SH_INSN_FDIV_COMPACT
, SH64_COMPACT_INSN_FDIV_COMPACT
, SH64_COMPACT_SFMT_FADD_COMPACT
},
94 { SH_INSN_FIPR_COMPACT
, SH64_COMPACT_INSN_FIPR_COMPACT
, SH64_COMPACT_SFMT_FIPR_COMPACT
},
95 { SH_INSN_FLDS_COMPACT
, SH64_COMPACT_INSN_FLDS_COMPACT
, SH64_COMPACT_SFMT_FLDS_COMPACT
},
96 { SH_INSN_FLDI0_COMPACT
, SH64_COMPACT_INSN_FLDI0_COMPACT
, SH64_COMPACT_SFMT_FLDI0_COMPACT
},
97 { SH_INSN_FLDI1_COMPACT
, SH64_COMPACT_INSN_FLDI1_COMPACT
, SH64_COMPACT_SFMT_FLDI0_COMPACT
},
98 { SH_INSN_FLOAT_COMPACT
, SH64_COMPACT_INSN_FLOAT_COMPACT
, SH64_COMPACT_SFMT_FLOAT_COMPACT
},
99 { SH_INSN_FMAC_COMPACT
, SH64_COMPACT_INSN_FMAC_COMPACT
, SH64_COMPACT_SFMT_FMAC_COMPACT
},
100 { SH_INSN_FMOV1_COMPACT
, SH64_COMPACT_INSN_FMOV1_COMPACT
, SH64_COMPACT_SFMT_FMOV1_COMPACT
},
101 { SH_INSN_FMOV2_COMPACT
, SH64_COMPACT_INSN_FMOV2_COMPACT
, SH64_COMPACT_SFMT_FMOV2_COMPACT
},
102 { SH_INSN_FMOV3_COMPACT
, SH64_COMPACT_INSN_FMOV3_COMPACT
, SH64_COMPACT_SFMT_FMOV3_COMPACT
},
103 { SH_INSN_FMOV4_COMPACT
, SH64_COMPACT_INSN_FMOV4_COMPACT
, SH64_COMPACT_SFMT_FMOV4_COMPACT
},
104 { SH_INSN_FMOV5_COMPACT
, SH64_COMPACT_INSN_FMOV5_COMPACT
, SH64_COMPACT_SFMT_FMOV5_COMPACT
},
105 { SH_INSN_FMOV6_COMPACT
, SH64_COMPACT_INSN_FMOV6_COMPACT
, SH64_COMPACT_SFMT_FMOV6_COMPACT
},
106 { SH_INSN_FMOV7_COMPACT
, SH64_COMPACT_INSN_FMOV7_COMPACT
, SH64_COMPACT_SFMT_FMOV7_COMPACT
},
107 { SH_INSN_FMUL_COMPACT
, SH64_COMPACT_INSN_FMUL_COMPACT
, SH64_COMPACT_SFMT_FADD_COMPACT
},
108 { SH_INSN_FNEG_COMPACT
, SH64_COMPACT_INSN_FNEG_COMPACT
, SH64_COMPACT_SFMT_FABS_COMPACT
},
109 { SH_INSN_FRCHG_COMPACT
, SH64_COMPACT_INSN_FRCHG_COMPACT
, SH64_COMPACT_SFMT_FRCHG_COMPACT
},
110 { SH_INSN_FSCHG_COMPACT
, SH64_COMPACT_INSN_FSCHG_COMPACT
, SH64_COMPACT_SFMT_FSCHG_COMPACT
},
111 { SH_INSN_FSQRT_COMPACT
, SH64_COMPACT_INSN_FSQRT_COMPACT
, SH64_COMPACT_SFMT_FABS_COMPACT
},
112 { SH_INSN_FSTS_COMPACT
, SH64_COMPACT_INSN_FSTS_COMPACT
, SH64_COMPACT_SFMT_FSTS_COMPACT
},
113 { SH_INSN_FSUB_COMPACT
, SH64_COMPACT_INSN_FSUB_COMPACT
, SH64_COMPACT_SFMT_FADD_COMPACT
},
114 { SH_INSN_FTRC_COMPACT
, SH64_COMPACT_INSN_FTRC_COMPACT
, SH64_COMPACT_SFMT_FTRC_COMPACT
},
115 { SH_INSN_FTRV_COMPACT
, SH64_COMPACT_INSN_FTRV_COMPACT
, SH64_COMPACT_SFMT_FTRV_COMPACT
},
116 { SH_INSN_JMP_COMPACT
, SH64_COMPACT_INSN_JMP_COMPACT
, SH64_COMPACT_SFMT_JMP_COMPACT
},
117 { SH_INSN_JSR_COMPACT
, SH64_COMPACT_INSN_JSR_COMPACT
, SH64_COMPACT_SFMT_BSRF_COMPACT
},
118 { SH_INSN_LDC_COMPACT
, SH64_COMPACT_INSN_LDC_COMPACT
, SH64_COMPACT_SFMT_LDC_COMPACT
},
119 { SH_INSN_LDCL_COMPACT
, SH64_COMPACT_INSN_LDCL_COMPACT
, SH64_COMPACT_SFMT_LDCL_COMPACT
},
120 { SH_INSN_LDS_FPSCR_COMPACT
, SH64_COMPACT_INSN_LDS_FPSCR_COMPACT
, SH64_COMPACT_SFMT_LDS_FPSCR_COMPACT
},
121 { SH_INSN_LDSL_FPSCR_COMPACT
, SH64_COMPACT_INSN_LDSL_FPSCR_COMPACT
, SH64_COMPACT_SFMT_LDSL_FPSCR_COMPACT
},
122 { SH_INSN_LDS_FPUL_COMPACT
, SH64_COMPACT_INSN_LDS_FPUL_COMPACT
, SH64_COMPACT_SFMT_LDS_FPUL_COMPACT
},
123 { SH_INSN_LDSL_FPUL_COMPACT
, SH64_COMPACT_INSN_LDSL_FPUL_COMPACT
, SH64_COMPACT_SFMT_LDSL_FPUL_COMPACT
},
124 { SH_INSN_LDS_MACH_COMPACT
, SH64_COMPACT_INSN_LDS_MACH_COMPACT
, SH64_COMPACT_SFMT_LDS_MACH_COMPACT
},
125 { SH_INSN_LDSL_MACH_COMPACT
, SH64_COMPACT_INSN_LDSL_MACH_COMPACT
, SH64_COMPACT_SFMT_LDSL_MACH_COMPACT
},
126 { SH_INSN_LDS_MACL_COMPACT
, SH64_COMPACT_INSN_LDS_MACL_COMPACT
, SH64_COMPACT_SFMT_LDS_MACL_COMPACT
},
127 { SH_INSN_LDSL_MACL_COMPACT
, SH64_COMPACT_INSN_LDSL_MACL_COMPACT
, SH64_COMPACT_SFMT_LDSL_MACL_COMPACT
},
128 { SH_INSN_LDS_PR_COMPACT
, SH64_COMPACT_INSN_LDS_PR_COMPACT
, SH64_COMPACT_SFMT_LDS_PR_COMPACT
},
129 { SH_INSN_LDSL_PR_COMPACT
, SH64_COMPACT_INSN_LDSL_PR_COMPACT
, SH64_COMPACT_SFMT_LDSL_PR_COMPACT
},
130 { SH_INSN_MACL_COMPACT
, SH64_COMPACT_INSN_MACL_COMPACT
, SH64_COMPACT_SFMT_MACL_COMPACT
},
131 { SH_INSN_MACW_COMPACT
, SH64_COMPACT_INSN_MACW_COMPACT
, SH64_COMPACT_SFMT_MACW_COMPACT
},
132 { SH_INSN_MOV_COMPACT
, SH64_COMPACT_INSN_MOV_COMPACT
, SH64_COMPACT_SFMT_MOV_COMPACT
},
133 { SH_INSN_MOVI_COMPACT
, SH64_COMPACT_INSN_MOVI_COMPACT
, SH64_COMPACT_SFMT_MOVI_COMPACT
},
134 { SH_INSN_MOVB1_COMPACT
, SH64_COMPACT_INSN_MOVB1_COMPACT
, SH64_COMPACT_SFMT_MOVB1_COMPACT
},
135 { SH_INSN_MOVB2_COMPACT
, SH64_COMPACT_INSN_MOVB2_COMPACT
, SH64_COMPACT_SFMT_MOVB2_COMPACT
},
136 { SH_INSN_MOVB3_COMPACT
, SH64_COMPACT_INSN_MOVB3_COMPACT
, SH64_COMPACT_SFMT_MOVB3_COMPACT
},
137 { SH_INSN_MOVB4_COMPACT
, SH64_COMPACT_INSN_MOVB4_COMPACT
, SH64_COMPACT_SFMT_MOVB4_COMPACT
},
138 { SH_INSN_MOVB5_COMPACT
, SH64_COMPACT_INSN_MOVB5_COMPACT
, SH64_COMPACT_SFMT_MOVB5_COMPACT
},
139 { SH_INSN_MOVB6_COMPACT
, SH64_COMPACT_INSN_MOVB6_COMPACT
, SH64_COMPACT_SFMT_MOVB6_COMPACT
},
140 { SH_INSN_MOVB7_COMPACT
, SH64_COMPACT_INSN_MOVB7_COMPACT
, SH64_COMPACT_SFMT_MOVB7_COMPACT
},
141 { SH_INSN_MOVB8_COMPACT
, SH64_COMPACT_INSN_MOVB8_COMPACT
, SH64_COMPACT_SFMT_MOVB8_COMPACT
},
142 { SH_INSN_MOVB9_COMPACT
, SH64_COMPACT_INSN_MOVB9_COMPACT
, SH64_COMPACT_SFMT_MOVB9_COMPACT
},
143 { SH_INSN_MOVB10_COMPACT
, SH64_COMPACT_INSN_MOVB10_COMPACT
, SH64_COMPACT_SFMT_MOVB10_COMPACT
},
144 { SH_INSN_MOVL1_COMPACT
, SH64_COMPACT_INSN_MOVL1_COMPACT
, SH64_COMPACT_SFMT_MOVB1_COMPACT
},
145 { SH_INSN_MOVL2_COMPACT
, SH64_COMPACT_INSN_MOVL2_COMPACT
, SH64_COMPACT_SFMT_MOVB2_COMPACT
},
146 { SH_INSN_MOVL3_COMPACT
, SH64_COMPACT_INSN_MOVL3_COMPACT
, SH64_COMPACT_SFMT_MOVB3_COMPACT
},
147 { SH_INSN_MOVL4_COMPACT
, SH64_COMPACT_INSN_MOVL4_COMPACT
, SH64_COMPACT_SFMT_MOVL4_COMPACT
},
148 { SH_INSN_MOVL5_COMPACT
, SH64_COMPACT_INSN_MOVL5_COMPACT
, SH64_COMPACT_SFMT_MOVL5_COMPACT
},
149 { SH_INSN_MOVL6_COMPACT
, SH64_COMPACT_INSN_MOVL6_COMPACT
, SH64_COMPACT_SFMT_MOVB6_COMPACT
},
150 { SH_INSN_MOVL7_COMPACT
, SH64_COMPACT_INSN_MOVL7_COMPACT
, SH64_COMPACT_SFMT_MOVL7_COMPACT
},
151 { SH_INSN_MOVL8_COMPACT
, SH64_COMPACT_INSN_MOVL8_COMPACT
, SH64_COMPACT_SFMT_MOVB8_COMPACT
},
152 { SH_INSN_MOVL9_COMPACT
, SH64_COMPACT_INSN_MOVL9_COMPACT
, SH64_COMPACT_SFMT_MOVL9_COMPACT
},
153 { SH_INSN_MOVL10_COMPACT
, SH64_COMPACT_INSN_MOVL10_COMPACT
, SH64_COMPACT_SFMT_MOVL10_COMPACT
},
154 { SH_INSN_MOVL11_COMPACT
, SH64_COMPACT_INSN_MOVL11_COMPACT
, SH64_COMPACT_SFMT_MOVL11_COMPACT
},
155 { SH_INSN_MOVW1_COMPACT
, SH64_COMPACT_INSN_MOVW1_COMPACT
, SH64_COMPACT_SFMT_MOVB1_COMPACT
},
156 { SH_INSN_MOVW2_COMPACT
, SH64_COMPACT_INSN_MOVW2_COMPACT
, SH64_COMPACT_SFMT_MOVB2_COMPACT
},
157 { SH_INSN_MOVW3_COMPACT
, SH64_COMPACT_INSN_MOVW3_COMPACT
, SH64_COMPACT_SFMT_MOVB3_COMPACT
},
158 { SH_INSN_MOVW4_COMPACT
, SH64_COMPACT_INSN_MOVW4_COMPACT
, SH64_COMPACT_SFMT_MOVW4_COMPACT
},
159 { SH_INSN_MOVW5_COMPACT
, SH64_COMPACT_INSN_MOVW5_COMPACT
, SH64_COMPACT_SFMT_MOVW5_COMPACT
},
160 { SH_INSN_MOVW6_COMPACT
, SH64_COMPACT_INSN_MOVW6_COMPACT
, SH64_COMPACT_SFMT_MOVB6_COMPACT
},
161 { SH_INSN_MOVW7_COMPACT
, SH64_COMPACT_INSN_MOVW7_COMPACT
, SH64_COMPACT_SFMT_MOVB7_COMPACT
},
162 { SH_INSN_MOVW8_COMPACT
, SH64_COMPACT_INSN_MOVW8_COMPACT
, SH64_COMPACT_SFMT_MOVB8_COMPACT
},
163 { SH_INSN_MOVW9_COMPACT
, SH64_COMPACT_INSN_MOVW9_COMPACT
, SH64_COMPACT_SFMT_MOVW9_COMPACT
},
164 { SH_INSN_MOVW10_COMPACT
, SH64_COMPACT_INSN_MOVW10_COMPACT
, SH64_COMPACT_SFMT_MOVW10_COMPACT
},
165 { SH_INSN_MOVW11_COMPACT
, SH64_COMPACT_INSN_MOVW11_COMPACT
, SH64_COMPACT_SFMT_MOVW11_COMPACT
},
166 { SH_INSN_MOVA_COMPACT
, SH64_COMPACT_INSN_MOVA_COMPACT
, SH64_COMPACT_SFMT_MOVA_COMPACT
},
167 { SH_INSN_MOVCAL_COMPACT
, SH64_COMPACT_INSN_MOVCAL_COMPACT
, SH64_COMPACT_SFMT_MOVCAL_COMPACT
},
168 { SH_INSN_MOVT_COMPACT
, SH64_COMPACT_INSN_MOVT_COMPACT
, SH64_COMPACT_SFMT_MOVT_COMPACT
},
169 { SH_INSN_MULL_COMPACT
, SH64_COMPACT_INSN_MULL_COMPACT
, SH64_COMPACT_SFMT_MULL_COMPACT
},
170 { SH_INSN_MULSW_COMPACT
, SH64_COMPACT_INSN_MULSW_COMPACT
, SH64_COMPACT_SFMT_MULL_COMPACT
},
171 { SH_INSN_MULUW_COMPACT
, SH64_COMPACT_INSN_MULUW_COMPACT
, SH64_COMPACT_SFMT_MULL_COMPACT
},
172 { SH_INSN_NEG_COMPACT
, SH64_COMPACT_INSN_NEG_COMPACT
, SH64_COMPACT_SFMT_EXTSB_COMPACT
},
173 { SH_INSN_NEGC_COMPACT
, SH64_COMPACT_INSN_NEGC_COMPACT
, SH64_COMPACT_SFMT_NEGC_COMPACT
},
174 { SH_INSN_NOP_COMPACT
, SH64_COMPACT_INSN_NOP_COMPACT
, SH64_COMPACT_SFMT_NOP_COMPACT
},
175 { SH_INSN_NOT_COMPACT
, SH64_COMPACT_INSN_NOT_COMPACT
, SH64_COMPACT_SFMT_MOV_COMPACT
},
176 { SH_INSN_OCBI_COMPACT
, SH64_COMPACT_INSN_OCBI_COMPACT
, SH64_COMPACT_SFMT_NOP_COMPACT
},
177 { SH_INSN_OCBP_COMPACT
, SH64_COMPACT_INSN_OCBP_COMPACT
, SH64_COMPACT_SFMT_NOP_COMPACT
},
178 { SH_INSN_OCBWB_COMPACT
, SH64_COMPACT_INSN_OCBWB_COMPACT
, SH64_COMPACT_SFMT_NOP_COMPACT
},
179 { SH_INSN_OR_COMPACT
, SH64_COMPACT_INSN_OR_COMPACT
, SH64_COMPACT_SFMT_AND_COMPACT
},
180 { SH_INSN_ORI_COMPACT
, SH64_COMPACT_INSN_ORI_COMPACT
, SH64_COMPACT_SFMT_ANDI_COMPACT
},
181 { SH_INSN_ORB_COMPACT
, SH64_COMPACT_INSN_ORB_COMPACT
, SH64_COMPACT_SFMT_ANDB_COMPACT
},
182 { SH_INSN_PREF_COMPACT
, SH64_COMPACT_INSN_PREF_COMPACT
, SH64_COMPACT_SFMT_NOP_COMPACT
},
183 { SH_INSN_ROTCL_COMPACT
, SH64_COMPACT_INSN_ROTCL_COMPACT
, SH64_COMPACT_SFMT_ROTCL_COMPACT
},
184 { SH_INSN_ROTCR_COMPACT
, SH64_COMPACT_INSN_ROTCR_COMPACT
, SH64_COMPACT_SFMT_ROTCL_COMPACT
},
185 { SH_INSN_ROTL_COMPACT
, SH64_COMPACT_INSN_ROTL_COMPACT
, SH64_COMPACT_SFMT_DT_COMPACT
},
186 { SH_INSN_ROTR_COMPACT
, SH64_COMPACT_INSN_ROTR_COMPACT
, SH64_COMPACT_SFMT_DT_COMPACT
},
187 { SH_INSN_RTS_COMPACT
, SH64_COMPACT_INSN_RTS_COMPACT
, SH64_COMPACT_SFMT_RTS_COMPACT
},
188 { SH_INSN_SETS_COMPACT
, SH64_COMPACT_INSN_SETS_COMPACT
, SH64_COMPACT_SFMT_CLRS_COMPACT
},
189 { SH_INSN_SETT_COMPACT
, SH64_COMPACT_INSN_SETT_COMPACT
, SH64_COMPACT_SFMT_CLRT_COMPACT
},
190 { SH_INSN_SHAD_COMPACT
, SH64_COMPACT_INSN_SHAD_COMPACT
, SH64_COMPACT_SFMT_SHAD_COMPACT
},
191 { SH_INSN_SHAL_COMPACT
, SH64_COMPACT_INSN_SHAL_COMPACT
, SH64_COMPACT_SFMT_DT_COMPACT
},
192 { SH_INSN_SHAR_COMPACT
, SH64_COMPACT_INSN_SHAR_COMPACT
, SH64_COMPACT_SFMT_DT_COMPACT
},
193 { SH_INSN_SHLD_COMPACT
, SH64_COMPACT_INSN_SHLD_COMPACT
, SH64_COMPACT_SFMT_SHAD_COMPACT
},
194 { SH_INSN_SHLL_COMPACT
, SH64_COMPACT_INSN_SHLL_COMPACT
, SH64_COMPACT_SFMT_DT_COMPACT
},
195 { SH_INSN_SHLL2_COMPACT
, SH64_COMPACT_INSN_SHLL2_COMPACT
, SH64_COMPACT_SFMT_SHLL2_COMPACT
},
196 { SH_INSN_SHLL8_COMPACT
, SH64_COMPACT_INSN_SHLL8_COMPACT
, SH64_COMPACT_SFMT_SHLL2_COMPACT
},
197 { SH_INSN_SHLL16_COMPACT
, SH64_COMPACT_INSN_SHLL16_COMPACT
, SH64_COMPACT_SFMT_SHLL2_COMPACT
},
198 { SH_INSN_SHLR_COMPACT
, SH64_COMPACT_INSN_SHLR_COMPACT
, SH64_COMPACT_SFMT_DT_COMPACT
},
199 { SH_INSN_SHLR2_COMPACT
, SH64_COMPACT_INSN_SHLR2_COMPACT
, SH64_COMPACT_SFMT_SHLL2_COMPACT
},
200 { SH_INSN_SHLR8_COMPACT
, SH64_COMPACT_INSN_SHLR8_COMPACT
, SH64_COMPACT_SFMT_SHLL2_COMPACT
},
201 { SH_INSN_SHLR16_COMPACT
, SH64_COMPACT_INSN_SHLR16_COMPACT
, SH64_COMPACT_SFMT_SHLL2_COMPACT
},
202 { SH_INSN_STC_GBR_COMPACT
, SH64_COMPACT_INSN_STC_GBR_COMPACT
, SH64_COMPACT_SFMT_STC_GBR_COMPACT
},
203 { SH_INSN_STCL_GBR_COMPACT
, SH64_COMPACT_INSN_STCL_GBR_COMPACT
, SH64_COMPACT_SFMT_STCL_GBR_COMPACT
},
204 { SH_INSN_STS_FPSCR_COMPACT
, SH64_COMPACT_INSN_STS_FPSCR_COMPACT
, SH64_COMPACT_SFMT_STS_FPSCR_COMPACT
},
205 { SH_INSN_STSL_FPSCR_COMPACT
, SH64_COMPACT_INSN_STSL_FPSCR_COMPACT
, SH64_COMPACT_SFMT_STSL_FPSCR_COMPACT
},
206 { SH_INSN_STS_FPUL_COMPACT
, SH64_COMPACT_INSN_STS_FPUL_COMPACT
, SH64_COMPACT_SFMT_STS_FPUL_COMPACT
},
207 { SH_INSN_STSL_FPUL_COMPACT
, SH64_COMPACT_INSN_STSL_FPUL_COMPACT
, SH64_COMPACT_SFMT_STSL_FPUL_COMPACT
},
208 { SH_INSN_STS_MACH_COMPACT
, SH64_COMPACT_INSN_STS_MACH_COMPACT
, SH64_COMPACT_SFMT_STS_MACH_COMPACT
},
209 { SH_INSN_STSL_MACH_COMPACT
, SH64_COMPACT_INSN_STSL_MACH_COMPACT
, SH64_COMPACT_SFMT_STSL_MACH_COMPACT
},
210 { SH_INSN_STS_MACL_COMPACT
, SH64_COMPACT_INSN_STS_MACL_COMPACT
, SH64_COMPACT_SFMT_STS_MACL_COMPACT
},
211 { SH_INSN_STSL_MACL_COMPACT
, SH64_COMPACT_INSN_STSL_MACL_COMPACT
, SH64_COMPACT_SFMT_STSL_MACL_COMPACT
},
212 { SH_INSN_STS_PR_COMPACT
, SH64_COMPACT_INSN_STS_PR_COMPACT
, SH64_COMPACT_SFMT_STS_PR_COMPACT
},
213 { SH_INSN_STSL_PR_COMPACT
, SH64_COMPACT_INSN_STSL_PR_COMPACT
, SH64_COMPACT_SFMT_STSL_PR_COMPACT
},
214 { SH_INSN_SUB_COMPACT
, SH64_COMPACT_INSN_SUB_COMPACT
, SH64_COMPACT_SFMT_ADD_COMPACT
},
215 { SH_INSN_SUBC_COMPACT
, SH64_COMPACT_INSN_SUBC_COMPACT
, SH64_COMPACT_SFMT_ADDC_COMPACT
},
216 { SH_INSN_SUBV_COMPACT
, SH64_COMPACT_INSN_SUBV_COMPACT
, SH64_COMPACT_SFMT_ADDV_COMPACT
},
217 { SH_INSN_SWAPB_COMPACT
, SH64_COMPACT_INSN_SWAPB_COMPACT
, SH64_COMPACT_SFMT_EXTSB_COMPACT
},
218 { SH_INSN_SWAPW_COMPACT
, SH64_COMPACT_INSN_SWAPW_COMPACT
, SH64_COMPACT_SFMT_EXTSB_COMPACT
},
219 { SH_INSN_TASB_COMPACT
, SH64_COMPACT_INSN_TASB_COMPACT
, SH64_COMPACT_SFMT_TASB_COMPACT
},
220 { SH_INSN_TRAPA_COMPACT
, SH64_COMPACT_INSN_TRAPA_COMPACT
, SH64_COMPACT_SFMT_TRAPA_COMPACT
},
221 { SH_INSN_TST_COMPACT
, SH64_COMPACT_INSN_TST_COMPACT
, SH64_COMPACT_SFMT_CMPEQ_COMPACT
},
222 { SH_INSN_TSTI_COMPACT
, SH64_COMPACT_INSN_TSTI_COMPACT
, SH64_COMPACT_SFMT_TSTI_COMPACT
},
223 { SH_INSN_TSTB_COMPACT
, SH64_COMPACT_INSN_TSTB_COMPACT
, SH64_COMPACT_SFMT_TSTB_COMPACT
},
224 { SH_INSN_XOR_COMPACT
, SH64_COMPACT_INSN_XOR_COMPACT
, SH64_COMPACT_SFMT_AND_COMPACT
},
225 { SH_INSN_XORI_COMPACT
, SH64_COMPACT_INSN_XORI_COMPACT
, SH64_COMPACT_SFMT_XORI_COMPACT
},
226 { SH_INSN_XORB_COMPACT
, SH64_COMPACT_INSN_XORB_COMPACT
, SH64_COMPACT_SFMT_ANDB_COMPACT
},
227 { SH_INSN_XTRCT_COMPACT
, SH64_COMPACT_INSN_XTRCT_COMPACT
, SH64_COMPACT_SFMT_ADD_COMPACT
},
230 static const struct insn_sem sh64_compact_insn_sem_invalid
= {
231 VIRTUAL_INSN_X_INVALID
, SH64_COMPACT_INSN_X_INVALID
, SH64_COMPACT_SFMT_EMPTY
234 /* Initialize an IDESC from the compile-time computable parts. */
237 init_idesc (SIM_CPU
*cpu
, IDESC
*id
, const struct insn_sem
*t
)
239 const CGEN_INSN
*insn_table
= CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu
))->init_entries
;
243 if ((int) t
->type
<= 0)
244 id
->idata
= & cgen_virtual_insn_table
[- (int) t
->type
];
246 id
->idata
= & insn_table
[t
->type
];
247 id
->attrs
= CGEN_INSN_ATTRS (id
->idata
);
248 /* Oh my god, a magic number. */
249 id
->length
= CGEN_INSN_BITSIZE (id
->idata
) / 8;
251 #if WITH_PROFILE_MODEL_P
252 id
->timing
= & MODEL_TIMING (CPU_MODEL (cpu
)) [t
->index
];
254 SIM_DESC sd
= CPU_STATE (cpu
);
255 SIM_ASSERT (t
->index
== id
->timing
->num
);
259 /* Semantic pointers are initialized elsewhere. */
262 /* Initialize the instruction descriptor table. */
265 sh64_compact_init_idesc_table (SIM_CPU
*cpu
)
268 const struct insn_sem
*t
,*tend
;
269 int tabsize
= SH64_COMPACT_INSN_MAX
;
270 IDESC
*table
= sh64_compact_insn_data
;
272 memset (table
, 0, tabsize
* sizeof (IDESC
));
274 /* First set all entries to the `invalid insn'. */
275 t
= & sh64_compact_insn_sem_invalid
;
276 for (id
= table
, tabend
= table
+ tabsize
; id
< tabend
; ++id
)
277 init_idesc (cpu
, id
, t
);
279 /* Now fill in the values for the chosen cpu. */
280 for (t
= sh64_compact_insn_sem
, tend
= t
+ sizeof (sh64_compact_insn_sem
) / sizeof (*t
);
283 init_idesc (cpu
, & table
[t
->index
], t
);
286 /* Link the IDESC table into the cpu. */
287 CPU_IDESC (cpu
) = table
;
290 /* Given an instruction, return a pointer to its IDESC entry. */
293 sh64_compact_decode (SIM_CPU
*current_cpu
, IADDR pc
,
294 CGEN_INSN_INT base_insn
, CGEN_INSN_INT entire_insn
,
297 /* Result of decoder. */
298 SH64_COMPACT_INSN_TYPE itype
;
301 CGEN_INSN_INT insn
= base_insn
;
304 unsigned int val
= (((insn
>> 8) & (15 << 4)) | ((insn
>> 0) & (15 << 0)));
307 case 2 : itype
= SH64_COMPACT_INSN_STC_GBR_COMPACT
; goto extract_sfmt_stc_gbr_compact
; case 3 :
309 unsigned int val
= (((insn
>> 4) & (15 << 0)));
312 case 0 : itype
= SH64_COMPACT_INSN_BSRF_COMPACT
; goto extract_sfmt_bsrf_compact
; case 2 : itype
= SH64_COMPACT_INSN_BRAF_COMPACT
; goto extract_sfmt_braf_compact
; case 8 : itype
= SH64_COMPACT_INSN_PREF_COMPACT
; goto extract_sfmt_nop_compact
; case 9 : itype
= SH64_COMPACT_INSN_OCBI_COMPACT
; goto extract_sfmt_nop_compact
; case 10 : itype
= SH64_COMPACT_INSN_OCBP_COMPACT
; goto extract_sfmt_nop_compact
; case 11 : itype
= SH64_COMPACT_INSN_OCBWB_COMPACT
; goto extract_sfmt_nop_compact
; case 12 : itype
= SH64_COMPACT_INSN_MOVCAL_COMPACT
; goto extract_sfmt_movcal_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
315 case 4 : itype
= SH64_COMPACT_INSN_MOVB3_COMPACT
; goto extract_sfmt_movb3_compact
; case 5 : itype
= SH64_COMPACT_INSN_MOVW3_COMPACT
; goto extract_sfmt_movb3_compact
; case 6 : itype
= SH64_COMPACT_INSN_MOVL3_COMPACT
; goto extract_sfmt_movb3_compact
; case 7 : itype
= SH64_COMPACT_INSN_MULL_COMPACT
; goto extract_sfmt_mull_compact
; case 8 :
317 unsigned int val
= (((insn
>> 4) & (7 << 0)));
320 case 0 : itype
= SH64_COMPACT_INSN_CLRT_COMPACT
; goto extract_sfmt_clrt_compact
; case 1 : itype
= SH64_COMPACT_INSN_SETT_COMPACT
; goto extract_sfmt_clrt_compact
; case 2 : itype
= SH64_COMPACT_INSN_CLRMAC_COMPACT
; goto extract_sfmt_clrmac_compact
; case 4 : itype
= SH64_COMPACT_INSN_CLRS_COMPACT
; goto extract_sfmt_clrs_compact
; case 5 : itype
= SH64_COMPACT_INSN_SETS_COMPACT
; goto extract_sfmt_clrs_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
325 unsigned int val
= (((insn
>> 4) & (3 << 0)));
328 case 0 : itype
= SH64_COMPACT_INSN_NOP_COMPACT
; goto extract_sfmt_nop_compact
; case 1 : itype
= SH64_COMPACT_INSN_DIV0U_COMPACT
; goto extract_sfmt_div0u_compact
; case 2 : itype
= SH64_COMPACT_INSN_MOVT_COMPACT
; goto extract_sfmt_movt_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
333 unsigned int val
= (((insn
>> 4) & (7 << 0)));
336 case 0 : itype
= SH64_COMPACT_INSN_STS_MACH_COMPACT
; goto extract_sfmt_sts_mach_compact
; case 1 : itype
= SH64_COMPACT_INSN_STS_MACL_COMPACT
; goto extract_sfmt_sts_macl_compact
; case 2 : itype
= SH64_COMPACT_INSN_STS_PR_COMPACT
; goto extract_sfmt_sts_pr_compact
; case 5 : itype
= SH64_COMPACT_INSN_STS_FPUL_COMPACT
; goto extract_sfmt_sts_fpul_compact
; case 6 : itype
= SH64_COMPACT_INSN_STS_FPSCR_COMPACT
; goto extract_sfmt_sts_fpscr_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
341 unsigned int val
= (((insn
>> 4) & (3 << 0)));
344 case 0 : itype
= SH64_COMPACT_INSN_RTS_COMPACT
; goto extract_sfmt_rts_compact
; case 3 : itype
= SH64_COMPACT_INSN_BRK_COMPACT
; goto extract_sfmt_brk_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
347 case 12 : itype
= SH64_COMPACT_INSN_MOVB8_COMPACT
; goto extract_sfmt_movb8_compact
; case 13 : itype
= SH64_COMPACT_INSN_MOVW8_COMPACT
; goto extract_sfmt_movb8_compact
; case 14 : itype
= SH64_COMPACT_INSN_MOVL8_COMPACT
; goto extract_sfmt_movb8_compact
; case 15 : itype
= SH64_COMPACT_INSN_MACL_COMPACT
; goto extract_sfmt_macl_compact
; case 16 : /* fall through */
348 case 17 : /* fall through */
349 case 18 : /* fall through */
350 case 19 : /* fall through */
351 case 20 : /* fall through */
352 case 21 : /* fall through */
353 case 22 : /* fall through */
354 case 23 : /* fall through */
355 case 24 : /* fall through */
356 case 25 : /* fall through */
357 case 26 : /* fall through */
358 case 27 : /* fall through */
359 case 28 : /* fall through */
360 case 29 : /* fall through */
361 case 30 : /* fall through */
362 case 31 : itype
= SH64_COMPACT_INSN_MOVL5_COMPACT
; goto extract_sfmt_movl5_compact
; case 32 : itype
= SH64_COMPACT_INSN_MOVB1_COMPACT
; goto extract_sfmt_movb1_compact
; case 33 : itype
= SH64_COMPACT_INSN_MOVW1_COMPACT
; goto extract_sfmt_movb1_compact
; case 34 : itype
= SH64_COMPACT_INSN_MOVL1_COMPACT
; goto extract_sfmt_movb1_compact
; case 36 : itype
= SH64_COMPACT_INSN_MOVB2_COMPACT
; goto extract_sfmt_movb2_compact
; case 37 : itype
= SH64_COMPACT_INSN_MOVW2_COMPACT
; goto extract_sfmt_movb2_compact
; case 38 : itype
= SH64_COMPACT_INSN_MOVL2_COMPACT
; goto extract_sfmt_movb2_compact
; case 39 : itype
= SH64_COMPACT_INSN_DIV0S_COMPACT
; goto extract_sfmt_div0s_compact
; case 40 : itype
= SH64_COMPACT_INSN_TST_COMPACT
; goto extract_sfmt_cmpeq_compact
; case 41 : itype
= SH64_COMPACT_INSN_AND_COMPACT
; goto extract_sfmt_and_compact
; case 42 : itype
= SH64_COMPACT_INSN_XOR_COMPACT
; goto extract_sfmt_and_compact
; case 43 : itype
= SH64_COMPACT_INSN_OR_COMPACT
; goto extract_sfmt_and_compact
; case 44 : itype
= SH64_COMPACT_INSN_CMPSTR_COMPACT
; goto extract_sfmt_cmpeq_compact
; case 45 : itype
= SH64_COMPACT_INSN_XTRCT_COMPACT
; goto extract_sfmt_add_compact
; case 46 : itype
= SH64_COMPACT_INSN_MULUW_COMPACT
; goto extract_sfmt_mull_compact
; case 47 : itype
= SH64_COMPACT_INSN_MULSW_COMPACT
; goto extract_sfmt_mull_compact
; case 48 : itype
= SH64_COMPACT_INSN_CMPEQ_COMPACT
; goto extract_sfmt_cmpeq_compact
; case 50 : itype
= SH64_COMPACT_INSN_CMPHS_COMPACT
; goto extract_sfmt_cmpeq_compact
; case 51 : itype
= SH64_COMPACT_INSN_CMPGE_COMPACT
; goto extract_sfmt_cmpeq_compact
; case 52 : itype
= SH64_COMPACT_INSN_DIV1_COMPACT
; goto extract_sfmt_div1_compact
; case 53 : itype
= SH64_COMPACT_INSN_DMULUL_COMPACT
; goto extract_sfmt_dmulsl_compact
; case 54 : itype
= SH64_COMPACT_INSN_CMPHI_COMPACT
; goto extract_sfmt_cmpeq_compact
; case 55 : itype
= SH64_COMPACT_INSN_CMPGT_COMPACT
; goto extract_sfmt_cmpeq_compact
; case 56 : itype
= SH64_COMPACT_INSN_SUB_COMPACT
; goto extract_sfmt_add_compact
; case 58 : itype
= SH64_COMPACT_INSN_SUBC_COMPACT
; goto extract_sfmt_addc_compact
; case 59 : itype
= SH64_COMPACT_INSN_SUBV_COMPACT
; goto extract_sfmt_addv_compact
; case 60 : itype
= SH64_COMPACT_INSN_ADD_COMPACT
; goto extract_sfmt_add_compact
; case 61 : itype
= SH64_COMPACT_INSN_DMULSL_COMPACT
; goto extract_sfmt_dmulsl_compact
; case 62 : itype
= SH64_COMPACT_INSN_ADDC_COMPACT
; goto extract_sfmt_addc_compact
; case 63 : itype
= SH64_COMPACT_INSN_ADDV_COMPACT
; goto extract_sfmt_addv_compact
; case 64 :
364 unsigned int val
= (((insn
>> 4) & (3 << 0)));
367 case 0 : itype
= SH64_COMPACT_INSN_SHLL_COMPACT
; goto extract_sfmt_dt_compact
; case 1 : itype
= SH64_COMPACT_INSN_DT_COMPACT
; goto extract_sfmt_dt_compact
; case 2 : itype
= SH64_COMPACT_INSN_SHAL_COMPACT
; goto extract_sfmt_dt_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
372 unsigned int val
= (((insn
>> 4) & (3 << 0)));
375 case 0 : itype
= SH64_COMPACT_INSN_SHLR_COMPACT
; goto extract_sfmt_dt_compact
; case 1 : itype
= SH64_COMPACT_INSN_CMPPZ_COMPACT
; goto extract_sfmt_cmppl_compact
; case 2 : itype
= SH64_COMPACT_INSN_SHAR_COMPACT
; goto extract_sfmt_dt_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
380 unsigned int val
= (((insn
>> 4) & (7 << 0)));
383 case 0 : itype
= SH64_COMPACT_INSN_STSL_MACH_COMPACT
; goto extract_sfmt_stsl_mach_compact
; case 1 : itype
= SH64_COMPACT_INSN_STSL_MACL_COMPACT
; goto extract_sfmt_stsl_macl_compact
; case 2 : itype
= SH64_COMPACT_INSN_STSL_PR_COMPACT
; goto extract_sfmt_stsl_pr_compact
; case 5 : itype
= SH64_COMPACT_INSN_STSL_FPUL_COMPACT
; goto extract_sfmt_stsl_fpul_compact
; case 6 : itype
= SH64_COMPACT_INSN_STSL_FPSCR_COMPACT
; goto extract_sfmt_stsl_fpscr_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
386 case 67 : itype
= SH64_COMPACT_INSN_STCL_GBR_COMPACT
; goto extract_sfmt_stcl_gbr_compact
; case 68 :
388 unsigned int val
= (((insn
>> 5) & (1 << 0)));
391 case 0 : itype
= SH64_COMPACT_INSN_ROTL_COMPACT
; goto extract_sfmt_dt_compact
; case 1 : itype
= SH64_COMPACT_INSN_ROTCL_COMPACT
; goto extract_sfmt_rotcl_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
396 unsigned int val
= (((insn
>> 4) & (3 << 0)));
399 case 0 : itype
= SH64_COMPACT_INSN_ROTR_COMPACT
; goto extract_sfmt_dt_compact
; case 1 : itype
= SH64_COMPACT_INSN_CMPPL_COMPACT
; goto extract_sfmt_cmppl_compact
; case 2 : itype
= SH64_COMPACT_INSN_ROTCR_COMPACT
; goto extract_sfmt_rotcl_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
404 unsigned int val
= (((insn
>> 4) & (7 << 0)));
407 case 0 : itype
= SH64_COMPACT_INSN_LDSL_MACH_COMPACT
; goto extract_sfmt_ldsl_mach_compact
; case 1 : itype
= SH64_COMPACT_INSN_LDSL_MACL_COMPACT
; goto extract_sfmt_ldsl_macl_compact
; case 2 : itype
= SH64_COMPACT_INSN_LDSL_PR_COMPACT
; goto extract_sfmt_ldsl_pr_compact
; case 5 : itype
= SH64_COMPACT_INSN_LDSL_FPUL_COMPACT
; goto extract_sfmt_ldsl_fpul_compact
; case 6 : itype
= SH64_COMPACT_INSN_LDSL_FPSCR_COMPACT
; goto extract_sfmt_ldsl_fpscr_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
410 case 71 : itype
= SH64_COMPACT_INSN_LDCL_COMPACT
; goto extract_sfmt_ldcl_compact
; case 72 :
412 unsigned int val
= (((insn
>> 4) & (3 << 0)));
415 case 0 : itype
= SH64_COMPACT_INSN_SHLL2_COMPACT
; goto extract_sfmt_shll2_compact
; case 1 : itype
= SH64_COMPACT_INSN_SHLL8_COMPACT
; goto extract_sfmt_shll2_compact
; case 2 : itype
= SH64_COMPACT_INSN_SHLL16_COMPACT
; goto extract_sfmt_shll2_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
420 unsigned int val
= (((insn
>> 4) & (3 << 0)));
423 case 0 : itype
= SH64_COMPACT_INSN_SHLR2_COMPACT
; goto extract_sfmt_shll2_compact
; case 1 : itype
= SH64_COMPACT_INSN_SHLR8_COMPACT
; goto extract_sfmt_shll2_compact
; case 2 : itype
= SH64_COMPACT_INSN_SHLR16_COMPACT
; goto extract_sfmt_shll2_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
428 unsigned int val
= (((insn
>> 4) & (7 << 0)));
431 case 0 : itype
= SH64_COMPACT_INSN_LDS_MACH_COMPACT
; goto extract_sfmt_lds_mach_compact
; case 1 : itype
= SH64_COMPACT_INSN_LDS_MACL_COMPACT
; goto extract_sfmt_lds_macl_compact
; case 2 : itype
= SH64_COMPACT_INSN_LDS_PR_COMPACT
; goto extract_sfmt_lds_pr_compact
; case 5 : itype
= SH64_COMPACT_INSN_LDS_FPUL_COMPACT
; goto extract_sfmt_lds_fpul_compact
; case 6 : itype
= SH64_COMPACT_INSN_LDS_FPSCR_COMPACT
; goto extract_sfmt_lds_fpscr_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
436 unsigned int val
= (((insn
>> 4) & (3 << 0)));
439 case 0 : itype
= SH64_COMPACT_INSN_JSR_COMPACT
; goto extract_sfmt_bsrf_compact
; case 1 : itype
= SH64_COMPACT_INSN_TASB_COMPACT
; goto extract_sfmt_tasb_compact
; case 2 : itype
= SH64_COMPACT_INSN_JMP_COMPACT
; goto extract_sfmt_jmp_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
442 case 76 : itype
= SH64_COMPACT_INSN_SHAD_COMPACT
; goto extract_sfmt_shad_compact
; case 77 : itype
= SH64_COMPACT_INSN_SHLD_COMPACT
; goto extract_sfmt_shad_compact
; case 78 : itype
= SH64_COMPACT_INSN_LDC_COMPACT
; goto extract_sfmt_ldc_compact
; case 79 : itype
= SH64_COMPACT_INSN_MACW_COMPACT
; goto extract_sfmt_macw_compact
; case 80 : /* fall through */
443 case 81 : /* fall through */
444 case 82 : /* fall through */
445 case 83 : /* fall through */
446 case 84 : /* fall through */
447 case 85 : /* fall through */
448 case 86 : /* fall through */
449 case 87 : /* fall through */
450 case 88 : /* fall through */
451 case 89 : /* fall through */
452 case 90 : /* fall through */
453 case 91 : /* fall through */
454 case 92 : /* fall through */
455 case 93 : /* fall through */
456 case 94 : /* fall through */
457 case 95 : itype
= SH64_COMPACT_INSN_MOVL11_COMPACT
; goto extract_sfmt_movl11_compact
; case 96 : itype
= SH64_COMPACT_INSN_MOVB6_COMPACT
; goto extract_sfmt_movb6_compact
; case 97 : itype
= SH64_COMPACT_INSN_MOVW6_COMPACT
; goto extract_sfmt_movb6_compact
; case 98 : itype
= SH64_COMPACT_INSN_MOVL6_COMPACT
; goto extract_sfmt_movb6_compact
; case 99 : itype
= SH64_COMPACT_INSN_MOV_COMPACT
; goto extract_sfmt_mov_compact
; case 100 : itype
= SH64_COMPACT_INSN_MOVB7_COMPACT
; goto extract_sfmt_movb7_compact
; case 101 : itype
= SH64_COMPACT_INSN_MOVW7_COMPACT
; goto extract_sfmt_movb7_compact
; case 102 : itype
= SH64_COMPACT_INSN_MOVL7_COMPACT
; goto extract_sfmt_movl7_compact
; case 103 : itype
= SH64_COMPACT_INSN_NOT_COMPACT
; goto extract_sfmt_mov_compact
; case 104 : itype
= SH64_COMPACT_INSN_SWAPB_COMPACT
; goto extract_sfmt_extsb_compact
; case 105 : itype
= SH64_COMPACT_INSN_SWAPW_COMPACT
; goto extract_sfmt_extsb_compact
; case 106 : itype
= SH64_COMPACT_INSN_NEGC_COMPACT
; goto extract_sfmt_negc_compact
; case 107 : itype
= SH64_COMPACT_INSN_NEG_COMPACT
; goto extract_sfmt_extsb_compact
; case 108 : itype
= SH64_COMPACT_INSN_EXTUB_COMPACT
; goto extract_sfmt_extsb_compact
; case 109 : itype
= SH64_COMPACT_INSN_EXTUW_COMPACT
; goto extract_sfmt_extsb_compact
; case 110 : itype
= SH64_COMPACT_INSN_EXTSB_COMPACT
; goto extract_sfmt_extsb_compact
; case 111 : itype
= SH64_COMPACT_INSN_EXTSW_COMPACT
; goto extract_sfmt_extsb_compact
; case 112 : /* fall through */
458 case 113 : /* fall through */
459 case 114 : /* fall through */
460 case 115 : /* fall through */
461 case 116 : /* fall through */
462 case 117 : /* fall through */
463 case 118 : /* fall through */
464 case 119 : /* fall through */
465 case 120 : /* fall through */
466 case 121 : /* fall through */
467 case 122 : /* fall through */
468 case 123 : /* fall through */
469 case 124 : /* fall through */
470 case 125 : /* fall through */
471 case 126 : /* fall through */
472 case 127 : itype
= SH64_COMPACT_INSN_ADDI_COMPACT
; goto extract_sfmt_addi_compact
; case 128 : /* fall through */
473 case 129 : /* fall through */
474 case 130 : /* fall through */
475 case 131 : /* fall through */
476 case 132 : /* fall through */
477 case 133 : /* fall through */
478 case 134 : /* fall through */
479 case 135 : /* fall through */
480 case 136 : /* fall through */
481 case 137 : /* fall through */
482 case 138 : /* fall through */
483 case 139 : /* fall through */
484 case 140 : /* fall through */
485 case 141 : /* fall through */
486 case 142 : /* fall through */
489 unsigned int val
= (((insn
>> 8) & (15 << 0)));
492 case 0 : itype
= SH64_COMPACT_INSN_MOVB5_COMPACT
; goto extract_sfmt_movb5_compact
; case 1 : itype
= SH64_COMPACT_INSN_MOVW5_COMPACT
; goto extract_sfmt_movw5_compact
; case 4 : itype
= SH64_COMPACT_INSN_MOVB10_COMPACT
; goto extract_sfmt_movb10_compact
; case 5 : itype
= SH64_COMPACT_INSN_MOVW11_COMPACT
; goto extract_sfmt_movw11_compact
; case 8 : itype
= SH64_COMPACT_INSN_CMPEQI_COMPACT
; goto extract_sfmt_cmpeqi_compact
; case 9 : itype
= SH64_COMPACT_INSN_BT_COMPACT
; goto extract_sfmt_bf_compact
; case 11 : itype
= SH64_COMPACT_INSN_BF_COMPACT
; goto extract_sfmt_bf_compact
; case 13 : itype
= SH64_COMPACT_INSN_BTS_COMPACT
; goto extract_sfmt_bf_compact
; case 15 : itype
= SH64_COMPACT_INSN_BFS_COMPACT
; goto extract_sfmt_bf_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
495 case 144 : /* fall through */
496 case 145 : /* fall through */
497 case 146 : /* fall through */
498 case 147 : /* fall through */
499 case 148 : /* fall through */
500 case 149 : /* fall through */
501 case 150 : /* fall through */
502 case 151 : /* fall through */
503 case 152 : /* fall through */
504 case 153 : /* fall through */
505 case 154 : /* fall through */
506 case 155 : /* fall through */
507 case 156 : /* fall through */
508 case 157 : /* fall through */
509 case 158 : /* fall through */
510 case 159 : itype
= SH64_COMPACT_INSN_MOVW10_COMPACT
; goto extract_sfmt_movw10_compact
; case 160 : /* fall through */
511 case 161 : /* fall through */
512 case 162 : /* fall through */
513 case 163 : /* fall through */
514 case 164 : /* fall through */
515 case 165 : /* fall through */
516 case 166 : /* fall through */
517 case 167 : /* fall through */
518 case 168 : /* fall through */
519 case 169 : /* fall through */
520 case 170 : /* fall through */
521 case 171 : /* fall through */
522 case 172 : /* fall through */
523 case 173 : /* fall through */
524 case 174 : /* fall through */
525 case 175 : itype
= SH64_COMPACT_INSN_BRA_COMPACT
; goto extract_sfmt_bra_compact
; case 176 : /* fall through */
526 case 177 : /* fall through */
527 case 178 : /* fall through */
528 case 179 : /* fall through */
529 case 180 : /* fall through */
530 case 181 : /* fall through */
531 case 182 : /* fall through */
532 case 183 : /* fall through */
533 case 184 : /* fall through */
534 case 185 : /* fall through */
535 case 186 : /* fall through */
536 case 187 : /* fall through */
537 case 188 : /* fall through */
538 case 189 : /* fall through */
539 case 190 : /* fall through */
540 case 191 : itype
= SH64_COMPACT_INSN_BSR_COMPACT
; goto extract_sfmt_bsr_compact
; case 192 : /* fall through */
541 case 193 : /* fall through */
542 case 194 : /* fall through */
543 case 195 : /* fall through */
544 case 196 : /* fall through */
545 case 197 : /* fall through */
546 case 198 : /* fall through */
547 case 199 : /* fall through */
548 case 200 : /* fall through */
549 case 201 : /* fall through */
550 case 202 : /* fall through */
551 case 203 : /* fall through */
552 case 204 : /* fall through */
553 case 205 : /* fall through */
554 case 206 : /* fall through */
557 unsigned int val
= (((insn
>> 8) & (15 << 0)));
560 case 0 : itype
= SH64_COMPACT_INSN_MOVB4_COMPACT
; goto extract_sfmt_movb4_compact
; case 1 : itype
= SH64_COMPACT_INSN_MOVW4_COMPACT
; goto extract_sfmt_movw4_compact
; case 2 : itype
= SH64_COMPACT_INSN_MOVL4_COMPACT
; goto extract_sfmt_movl4_compact
; case 3 : itype
= SH64_COMPACT_INSN_TRAPA_COMPACT
; goto extract_sfmt_trapa_compact
; case 4 : itype
= SH64_COMPACT_INSN_MOVB9_COMPACT
; goto extract_sfmt_movb9_compact
; case 5 : itype
= SH64_COMPACT_INSN_MOVW9_COMPACT
; goto extract_sfmt_movw9_compact
; case 6 : itype
= SH64_COMPACT_INSN_MOVL9_COMPACT
; goto extract_sfmt_movl9_compact
; case 7 : itype
= SH64_COMPACT_INSN_MOVA_COMPACT
; goto extract_sfmt_mova_compact
; case 8 : itype
= SH64_COMPACT_INSN_TSTI_COMPACT
; goto extract_sfmt_tsti_compact
; case 9 : itype
= SH64_COMPACT_INSN_ANDI_COMPACT
; goto extract_sfmt_andi_compact
; case 10 : itype
= SH64_COMPACT_INSN_XORI_COMPACT
; goto extract_sfmt_xori_compact
; case 11 : itype
= SH64_COMPACT_INSN_ORI_COMPACT
; goto extract_sfmt_andi_compact
; case 12 : itype
= SH64_COMPACT_INSN_TSTB_COMPACT
; goto extract_sfmt_tstb_compact
; case 13 : itype
= SH64_COMPACT_INSN_ANDB_COMPACT
; goto extract_sfmt_andb_compact
; case 14 : itype
= SH64_COMPACT_INSN_XORB_COMPACT
; goto extract_sfmt_andb_compact
; case 15 : itype
= SH64_COMPACT_INSN_ORB_COMPACT
; goto extract_sfmt_andb_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
563 case 208 : /* fall through */
564 case 209 : /* fall through */
565 case 210 : /* fall through */
566 case 211 : /* fall through */
567 case 212 : /* fall through */
568 case 213 : /* fall through */
569 case 214 : /* fall through */
570 case 215 : /* fall through */
571 case 216 : /* fall through */
572 case 217 : /* fall through */
573 case 218 : /* fall through */
574 case 219 : /* fall through */
575 case 220 : /* fall through */
576 case 221 : /* fall through */
577 case 222 : /* fall through */
578 case 223 : itype
= SH64_COMPACT_INSN_MOVL10_COMPACT
; goto extract_sfmt_movl10_compact
; case 224 : /* fall through */
579 case 225 : /* fall through */
580 case 226 : /* fall through */
581 case 227 : /* fall through */
582 case 228 : /* fall through */
583 case 229 : /* fall through */
584 case 230 : /* fall through */
585 case 231 : /* fall through */
586 case 232 : /* fall through */
587 case 233 : /* fall through */
588 case 234 : /* fall through */
589 case 235 : /* fall through */
590 case 236 : /* fall through */
591 case 237 : /* fall through */
592 case 238 : /* fall through */
593 case 239 : itype
= SH64_COMPACT_INSN_MOVI_COMPACT
; goto extract_sfmt_movi_compact
; case 240 : itype
= SH64_COMPACT_INSN_FADD_COMPACT
; goto extract_sfmt_fadd_compact
; case 241 : itype
= SH64_COMPACT_INSN_FSUB_COMPACT
; goto extract_sfmt_fadd_compact
; case 242 : itype
= SH64_COMPACT_INSN_FMUL_COMPACT
; goto extract_sfmt_fadd_compact
; case 243 : itype
= SH64_COMPACT_INSN_FDIV_COMPACT
; goto extract_sfmt_fadd_compact
; case 244 : itype
= SH64_COMPACT_INSN_FCMPEQ_COMPACT
; goto extract_sfmt_fcmpeq_compact
; case 245 : itype
= SH64_COMPACT_INSN_FCMPGT_COMPACT
; goto extract_sfmt_fcmpeq_compact
; case 246 : itype
= SH64_COMPACT_INSN_FMOV4_COMPACT
; goto extract_sfmt_fmov4_compact
; case 247 : itype
= SH64_COMPACT_INSN_FMOV7_COMPACT
; goto extract_sfmt_fmov7_compact
; case 248 : itype
= SH64_COMPACT_INSN_FMOV2_COMPACT
; goto extract_sfmt_fmov2_compact
; case 249 : itype
= SH64_COMPACT_INSN_FMOV3_COMPACT
; goto extract_sfmt_fmov3_compact
; case 250 : itype
= SH64_COMPACT_INSN_FMOV5_COMPACT
; goto extract_sfmt_fmov5_compact
; case 251 : itype
= SH64_COMPACT_INSN_FMOV6_COMPACT
; goto extract_sfmt_fmov6_compact
; case 252 : itype
= SH64_COMPACT_INSN_FMOV1_COMPACT
; goto extract_sfmt_fmov1_compact
; case 253 :
595 unsigned int val
= (((insn
>> 4) & (15 << 0)));
598 case 0 : itype
= SH64_COMPACT_INSN_FSTS_COMPACT
; goto extract_sfmt_fsts_compact
; case 1 : itype
= SH64_COMPACT_INSN_FLDS_COMPACT
; goto extract_sfmt_flds_compact
; case 2 : itype
= SH64_COMPACT_INSN_FLOAT_COMPACT
; goto extract_sfmt_float_compact
; case 3 : itype
= SH64_COMPACT_INSN_FTRC_COMPACT
; goto extract_sfmt_ftrc_compact
; case 4 : itype
= SH64_COMPACT_INSN_FNEG_COMPACT
; goto extract_sfmt_fabs_compact
; case 5 : itype
= SH64_COMPACT_INSN_FABS_COMPACT
; goto extract_sfmt_fabs_compact
; case 6 : itype
= SH64_COMPACT_INSN_FSQRT_COMPACT
; goto extract_sfmt_fabs_compact
; case 8 : itype
= SH64_COMPACT_INSN_FLDI0_COMPACT
; goto extract_sfmt_fldi0_compact
; case 9 : itype
= SH64_COMPACT_INSN_FLDI1_COMPACT
; goto extract_sfmt_fldi0_compact
; case 10 : itype
= SH64_COMPACT_INSN_FCNVSD_COMPACT
; goto extract_sfmt_fcnvsd_compact
; case 11 : itype
= SH64_COMPACT_INSN_FCNVDS_COMPACT
; goto extract_sfmt_fcnvds_compact
; case 14 : itype
= SH64_COMPACT_INSN_FIPR_COMPACT
; goto extract_sfmt_fipr_compact
; case 15 :
600 unsigned int val
= (((insn
>> 9) & (1 << 0)));
603 case 0 : itype
= SH64_COMPACT_INSN_FTRV_COMPACT
; goto extract_sfmt_ftrv_compact
; case 1 :
605 unsigned int val
= (((insn
>> 11) & (1 << 0)));
608 case 0 : itype
= SH64_COMPACT_INSN_FSCHG_COMPACT
; goto extract_sfmt_fschg_compact
; case 1 : itype
= SH64_COMPACT_INSN_FRCHG_COMPACT
; goto extract_sfmt_frchg_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
611 default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
614 default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
617 case 254 : itype
= SH64_COMPACT_INSN_FMAC_COMPACT
; goto extract_sfmt_fmac_compact
; default : itype
= SH64_COMPACT_INSN_X_INVALID
; goto extract_sfmt_empty
;
622 /* The instruction has been decoded, now extract the fields. */
626 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
627 #define FLD(f) abuf->fields.fmt_empty.f
630 /* Record the fields for the semantic handler. */
631 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
637 extract_sfmt_add_compact
:
639 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
640 CGEN_INSN_INT insn
= entire_insn
;
641 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
645 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
646 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
648 /* Record the fields for the semantic handler. */
651 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_add_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
657 extract_sfmt_addi_compact
:
659 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
660 CGEN_INSN_INT insn
= entire_insn
;
661 #define FLD(f) abuf->fields.sfmt_addi_compact.f
665 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
666 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
668 /* Record the fields for the semantic handler. */
669 FLD (f_imm8
) = f_imm8
;
671 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addi_compact", "f_imm8 0x%x", 'x', f_imm8
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
677 extract_sfmt_addc_compact
:
679 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
680 CGEN_INSN_INT insn
= entire_insn
;
681 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
685 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
686 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
688 /* Record the fields for the semantic handler. */
691 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addc_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
697 extract_sfmt_addv_compact
:
699 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
700 CGEN_INSN_INT insn
= entire_insn
;
701 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
705 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
706 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
708 /* Record the fields for the semantic handler. */
711 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addv_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
717 extract_sfmt_and_compact
:
719 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
720 CGEN_INSN_INT insn
= entire_insn
;
721 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
725 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
726 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
728 /* Record the fields for the semantic handler. */
731 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_and_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
737 extract_sfmt_andi_compact
:
739 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
740 CGEN_INSN_INT insn
= entire_insn
;
741 #define FLD(f) abuf->fields.sfmt_addi_compact.f
744 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
746 /* Record the fields for the semantic handler. */
747 FLD (f_imm8
) = f_imm8
;
748 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_andi_compact", "f_imm8 0x%x", 'x', f_imm8
, (char *) 0));
754 extract_sfmt_andb_compact
:
756 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
757 CGEN_INSN_INT insn
= entire_insn
;
758 #define FLD(f) abuf->fields.sfmt_addi_compact.f
761 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
763 /* Record the fields for the semantic handler. */
764 FLD (f_imm8
) = f_imm8
;
765 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_andb_compact", "f_imm8 0x%x", 'x', f_imm8
, (char *) 0));
771 extract_sfmt_bf_compact
:
773 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
774 CGEN_INSN_INT insn
= entire_insn
;
775 #define FLD(f) abuf->fields.sfmt_bf_compact.f
778 f_disp8
= ((((EXTRACT_LSB0_INT (insn
, 16, 7, 8)) << (1))) + (((pc
) + (4))));
780 /* Record the fields for the semantic handler. */
781 FLD (i_disp8
) = f_disp8
;
782 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bf_compact", "disp8 0x%x", 'x', f_disp8
, (char *) 0));
788 extract_sfmt_bra_compact
:
790 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
791 CGEN_INSN_INT insn
= entire_insn
;
792 #define FLD(f) abuf->fields.sfmt_bra_compact.f
795 f_disp12
= ((((EXTRACT_LSB0_INT (insn
, 16, 11, 12)) << (1))) + (((pc
) + (4))));
797 /* Record the fields for the semantic handler. */
798 FLD (i_disp12
) = f_disp12
;
799 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bra_compact", "disp12 0x%x", 'x', f_disp12
, (char *) 0));
805 extract_sfmt_braf_compact
:
807 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
808 CGEN_INSN_INT insn
= entire_insn
;
809 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
812 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
814 /* Record the fields for the semantic handler. */
816 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_braf_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
822 extract_sfmt_brk_compact
:
824 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
825 #define FLD(f) abuf->fields.fmt_empty.f
828 /* Record the fields for the semantic handler. */
829 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_brk_compact", (char *) 0));
835 extract_sfmt_bsr_compact
:
837 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
838 CGEN_INSN_INT insn
= entire_insn
;
839 #define FLD(f) abuf->fields.sfmt_bra_compact.f
842 f_disp12
= ((((EXTRACT_LSB0_INT (insn
, 16, 11, 12)) << (1))) + (((pc
) + (4))));
844 /* Record the fields for the semantic handler. */
845 FLD (i_disp12
) = f_disp12
;
846 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bsr_compact", "disp12 0x%x", 'x', f_disp12
, (char *) 0));
852 extract_sfmt_bsrf_compact
:
854 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
855 CGEN_INSN_INT insn
= entire_insn
;
856 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
859 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
861 /* Record the fields for the semantic handler. */
863 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bsrf_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
869 extract_sfmt_clrmac_compact
:
871 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
872 #define FLD(f) abuf->fields.fmt_empty.f
875 /* Record the fields for the semantic handler. */
876 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_clrmac_compact", (char *) 0));
882 extract_sfmt_clrs_compact
:
884 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
885 #define FLD(f) abuf->fields.fmt_empty.f
888 /* Record the fields for the semantic handler. */
889 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_clrs_compact", (char *) 0));
895 extract_sfmt_clrt_compact
:
897 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
898 #define FLD(f) abuf->fields.fmt_empty.f
901 /* Record the fields for the semantic handler. */
902 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_clrt_compact", (char *) 0));
908 extract_sfmt_cmpeq_compact
:
910 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
911 CGEN_INSN_INT insn
= entire_insn
;
912 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
916 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
917 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
919 /* Record the fields for the semantic handler. */
922 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmpeq_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
928 extract_sfmt_cmpeqi_compact
:
930 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
931 CGEN_INSN_INT insn
= entire_insn
;
932 #define FLD(f) abuf->fields.sfmt_addi_compact.f
935 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
937 /* Record the fields for the semantic handler. */
938 FLD (f_imm8
) = f_imm8
;
939 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmpeqi_compact", "f_imm8 0x%x", 'x', f_imm8
, (char *) 0));
945 extract_sfmt_cmppl_compact
:
947 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
948 CGEN_INSN_INT insn
= entire_insn
;
949 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
952 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
954 /* Record the fields for the semantic handler. */
956 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmppl_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
962 extract_sfmt_div0s_compact
:
964 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
965 CGEN_INSN_INT insn
= entire_insn
;
966 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
970 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
971 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
973 /* Record the fields for the semantic handler. */
976 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div0s_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
982 extract_sfmt_div0u_compact
:
984 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
985 #define FLD(f) abuf->fields.fmt_empty.f
988 /* Record the fields for the semantic handler. */
989 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div0u_compact", (char *) 0));
995 extract_sfmt_div1_compact
:
997 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
998 CGEN_INSN_INT insn
= entire_insn
;
999 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1003 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1004 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1006 /* Record the fields for the semantic handler. */
1009 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_div1_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1015 extract_sfmt_dmulsl_compact
:
1017 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1018 CGEN_INSN_INT insn
= entire_insn
;
1019 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1023 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1024 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1026 /* Record the fields for the semantic handler. */
1029 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dmulsl_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1035 extract_sfmt_dt_compact
:
1037 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1038 CGEN_INSN_INT insn
= entire_insn
;
1039 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1042 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1044 /* Record the fields for the semantic handler. */
1046 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dt_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1052 extract_sfmt_extsb_compact
:
1054 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1055 CGEN_INSN_INT insn
= entire_insn
;
1056 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1060 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1061 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1063 /* Record the fields for the semantic handler. */
1066 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_extsb_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1072 extract_sfmt_fabs_compact
:
1074 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1075 CGEN_INSN_INT insn
= entire_insn
;
1076 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1079 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1081 /* Record the fields for the semantic handler. */
1083 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fabs_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1089 extract_sfmt_fadd_compact
:
1091 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1092 CGEN_INSN_INT insn
= entire_insn
;
1093 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1097 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1098 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1100 /* Record the fields for the semantic handler. */
1103 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fadd_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1109 extract_sfmt_fcmpeq_compact
:
1111 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1112 CGEN_INSN_INT insn
= entire_insn
;
1113 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1117 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1118 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1120 /* Record the fields for the semantic handler. */
1123 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fcmpeq_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1129 extract_sfmt_fcnvds_compact
:
1131 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1132 CGEN_INSN_INT insn
= entire_insn
;
1133 #define FLD(f) abuf->fields.sfmt_fcnvds_compact.f
1136 f_dn
= ((EXTRACT_LSB0_UINT (insn
, 16, 11, 3)) << (1));
1138 /* Record the fields for the semantic handler. */
1140 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fcnvds_compact", "f_dn 0x%x", 'x', f_dn
, (char *) 0));
1146 extract_sfmt_fcnvsd_compact
:
1148 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1149 CGEN_INSN_INT insn
= entire_insn
;
1150 #define FLD(f) abuf->fields.sfmt_fcnvds_compact.f
1153 f_dn
= ((EXTRACT_LSB0_UINT (insn
, 16, 11, 3)) << (1));
1155 /* Record the fields for the semantic handler. */
1157 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fcnvsd_compact", "f_dn 0x%x", 'x', f_dn
, (char *) 0));
1163 extract_sfmt_fipr_compact
:
1165 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1166 CGEN_INSN_INT insn
= entire_insn
;
1167 #define FLD(f) abuf->fields.sfmt_fipr_compact.f
1171 f_vn
= ((EXTRACT_LSB0_UINT (insn
, 16, 11, 2)) << (2));
1172 f_vm
= ((EXTRACT_LSB0_UINT (insn
, 16, 9, 2)) << (2));
1174 /* Record the fields for the semantic handler. */
1177 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fipr_compact", "f_vm 0x%x", 'x', f_vm
, "f_vn 0x%x", 'x', f_vn
, (char *) 0));
1183 extract_sfmt_flds_compact
:
1185 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1186 CGEN_INSN_INT insn
= entire_insn
;
1187 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1190 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1192 /* Record the fields for the semantic handler. */
1194 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_flds_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1200 extract_sfmt_fldi0_compact
:
1202 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1203 CGEN_INSN_INT insn
= entire_insn
;
1204 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1207 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1209 /* Record the fields for the semantic handler. */
1211 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fldi0_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1217 extract_sfmt_float_compact
:
1219 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1220 CGEN_INSN_INT insn
= entire_insn
;
1221 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1224 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1226 /* Record the fields for the semantic handler. */
1228 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_float_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1234 extract_sfmt_fmac_compact
:
1236 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1237 CGEN_INSN_INT insn
= entire_insn
;
1238 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1242 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1243 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1245 /* Record the fields for the semantic handler. */
1248 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmac_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1254 extract_sfmt_fmov1_compact
:
1256 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1257 CGEN_INSN_INT insn
= entire_insn
;
1258 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1262 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1263 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1265 /* Record the fields for the semantic handler. */
1268 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmov1_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1274 extract_sfmt_fmov2_compact
:
1276 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1277 CGEN_INSN_INT insn
= entire_insn
;
1278 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1282 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1283 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1285 /* Record the fields for the semantic handler. */
1288 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmov2_compact", "f_rn 0x%x", 'x', f_rn
, "f_rm 0x%x", 'x', f_rm
, (char *) 0));
1294 extract_sfmt_fmov3_compact
:
1296 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1297 CGEN_INSN_INT insn
= entire_insn
;
1298 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1302 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1303 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1305 /* Record the fields for the semantic handler. */
1308 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmov3_compact", "f_rn 0x%x", 'x', f_rn
, "f_rm 0x%x", 'x', f_rm
, (char *) 0));
1314 extract_sfmt_fmov4_compact
:
1316 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1317 CGEN_INSN_INT insn
= entire_insn
;
1318 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1322 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1323 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1325 /* Record the fields for the semantic handler. */
1328 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmov4_compact", "f_rn 0x%x", 'x', f_rn
, "f_rm 0x%x", 'x', f_rm
, (char *) 0));
1334 extract_sfmt_fmov5_compact
:
1336 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1337 CGEN_INSN_INT insn
= entire_insn
;
1338 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1342 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1343 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1345 /* Record the fields for the semantic handler. */
1348 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmov5_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1354 extract_sfmt_fmov6_compact
:
1356 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1357 CGEN_INSN_INT insn
= entire_insn
;
1358 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1362 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1363 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1365 /* Record the fields for the semantic handler. */
1368 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmov6_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1374 extract_sfmt_fmov7_compact
:
1376 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1377 CGEN_INSN_INT insn
= entire_insn
;
1378 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1382 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1383 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1385 /* Record the fields for the semantic handler. */
1388 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fmov7_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1394 extract_sfmt_frchg_compact
:
1396 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1397 #define FLD(f) abuf->fields.fmt_empty.f
1400 /* Record the fields for the semantic handler. */
1401 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_frchg_compact", (char *) 0));
1407 extract_sfmt_fschg_compact
:
1409 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1410 #define FLD(f) abuf->fields.fmt_empty.f
1413 /* Record the fields for the semantic handler. */
1414 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fschg_compact", (char *) 0));
1420 extract_sfmt_fsts_compact
:
1422 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1423 CGEN_INSN_INT insn
= entire_insn
;
1424 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1427 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1429 /* Record the fields for the semantic handler. */
1431 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fsts_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1437 extract_sfmt_ftrc_compact
:
1439 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1440 CGEN_INSN_INT insn
= entire_insn
;
1441 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1444 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1446 /* Record the fields for the semantic handler. */
1448 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ftrc_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1454 extract_sfmt_ftrv_compact
:
1456 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1457 CGEN_INSN_INT insn
= entire_insn
;
1458 #define FLD(f) abuf->fields.sfmt_fipr_compact.f
1461 f_vn
= ((EXTRACT_LSB0_UINT (insn
, 16, 11, 2)) << (2));
1463 /* Record the fields for the semantic handler. */
1465 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ftrv_compact", "f_vn 0x%x", 'x', f_vn
, (char *) 0));
1471 extract_sfmt_jmp_compact
:
1473 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1474 CGEN_INSN_INT insn
= entire_insn
;
1475 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1478 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1480 /* Record the fields for the semantic handler. */
1482 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jmp_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1488 extract_sfmt_ldc_compact
:
1490 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1491 CGEN_INSN_INT insn
= entire_insn
;
1492 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1495 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1497 /* Record the fields for the semantic handler. */
1499 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldc_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1505 extract_sfmt_ldcl_compact
:
1507 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1508 CGEN_INSN_INT insn
= entire_insn
;
1509 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1512 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1514 /* Record the fields for the semantic handler. */
1516 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldcl_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1522 extract_sfmt_lds_fpscr_compact
:
1524 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1525 CGEN_INSN_INT insn
= entire_insn
;
1526 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1529 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1531 /* Record the fields for the semantic handler. */
1533 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lds_fpscr_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1539 extract_sfmt_ldsl_fpscr_compact
:
1541 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1542 CGEN_INSN_INT insn
= entire_insn
;
1543 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1546 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1548 /* Record the fields for the semantic handler. */
1550 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldsl_fpscr_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1556 extract_sfmt_lds_fpul_compact
:
1558 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1559 CGEN_INSN_INT insn
= entire_insn
;
1560 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1563 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1565 /* Record the fields for the semantic handler. */
1567 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lds_fpul_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1573 extract_sfmt_ldsl_fpul_compact
:
1575 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1576 CGEN_INSN_INT insn
= entire_insn
;
1577 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1580 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1582 /* Record the fields for the semantic handler. */
1584 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldsl_fpul_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1590 extract_sfmt_lds_mach_compact
:
1592 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1593 CGEN_INSN_INT insn
= entire_insn
;
1594 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1597 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1599 /* Record the fields for the semantic handler. */
1601 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lds_mach_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1607 extract_sfmt_ldsl_mach_compact
:
1609 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1610 CGEN_INSN_INT insn
= entire_insn
;
1611 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1614 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1616 /* Record the fields for the semantic handler. */
1618 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldsl_mach_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1624 extract_sfmt_lds_macl_compact
:
1626 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1627 CGEN_INSN_INT insn
= entire_insn
;
1628 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1631 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1633 /* Record the fields for the semantic handler. */
1635 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lds_macl_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1641 extract_sfmt_ldsl_macl_compact
:
1643 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1644 CGEN_INSN_INT insn
= entire_insn
;
1645 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1648 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1650 /* Record the fields for the semantic handler. */
1652 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldsl_macl_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1658 extract_sfmt_lds_pr_compact
:
1660 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1661 CGEN_INSN_INT insn
= entire_insn
;
1662 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1665 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1667 /* Record the fields for the semantic handler. */
1669 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lds_pr_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1675 extract_sfmt_ldsl_pr_compact
:
1677 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1678 CGEN_INSN_INT insn
= entire_insn
;
1679 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
1682 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1684 /* Record the fields for the semantic handler. */
1686 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ldsl_pr_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1692 extract_sfmt_macl_compact
:
1694 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1695 CGEN_INSN_INT insn
= entire_insn
;
1696 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1700 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1701 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1703 /* Record the fields for the semantic handler. */
1706 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_macl_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1712 extract_sfmt_macw_compact
:
1714 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1715 CGEN_INSN_INT insn
= entire_insn
;
1716 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1720 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1721 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1723 /* Record the fields for the semantic handler. */
1726 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_macw_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1732 extract_sfmt_mov_compact
:
1734 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1735 CGEN_INSN_INT insn
= entire_insn
;
1736 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1740 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1741 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1743 /* Record the fields for the semantic handler. */
1746 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mov_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1752 extract_sfmt_movi_compact
:
1754 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1755 CGEN_INSN_INT insn
= entire_insn
;
1756 #define FLD(f) abuf->fields.sfmt_addi_compact.f
1760 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1761 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
1763 /* Record the fields for the semantic handler. */
1764 FLD (f_imm8
) = f_imm8
;
1766 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movi_compact", "f_imm8 0x%x", 'x', f_imm8
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1772 extract_sfmt_movb1_compact
:
1774 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1775 CGEN_INSN_INT insn
= entire_insn
;
1776 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1780 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1781 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1783 /* Record the fields for the semantic handler. */
1786 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movb1_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1792 extract_sfmt_movb2_compact
:
1794 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1795 CGEN_INSN_INT insn
= entire_insn
;
1796 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1800 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1801 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1803 /* Record the fields for the semantic handler. */
1806 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movb2_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1812 extract_sfmt_movb3_compact
:
1814 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1815 CGEN_INSN_INT insn
= entire_insn
;
1816 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1820 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1821 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1823 /* Record the fields for the semantic handler. */
1826 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movb3_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1832 extract_sfmt_movb4_compact
:
1834 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1835 CGEN_INSN_INT insn
= entire_insn
;
1836 #define FLD(f) abuf->fields.sfmt_addi_compact.f
1839 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
1841 /* Record the fields for the semantic handler. */
1842 FLD (f_imm8
) = f_imm8
;
1843 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movb4_compact", "f_imm8 0x%x", 'x', f_imm8
, (char *) 0));
1849 extract_sfmt_movb5_compact
:
1851 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1852 CGEN_INSN_INT insn
= entire_insn
;
1853 #define FLD(f) abuf->fields.sfmt_movb5_compact.f
1857 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1858 f_imm4
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
1860 /* Record the fields for the semantic handler. */
1861 FLD (f_imm4
) = f_imm4
;
1863 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movb5_compact", "f_imm4 0x%x", 'x', f_imm4
, "f_rm 0x%x", 'x', f_rm
, (char *) 0));
1869 extract_sfmt_movb6_compact
:
1871 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1872 CGEN_INSN_INT insn
= entire_insn
;
1873 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1877 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1878 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1880 /* Record the fields for the semantic handler. */
1883 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movb6_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1889 extract_sfmt_movb7_compact
:
1891 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1892 CGEN_INSN_INT insn
= entire_insn
;
1893 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1897 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1898 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1900 /* Record the fields for the semantic handler. */
1903 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movb7_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1909 extract_sfmt_movb8_compact
:
1911 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1912 CGEN_INSN_INT insn
= entire_insn
;
1913 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1917 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1918 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1920 /* Record the fields for the semantic handler. */
1923 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movb8_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
1929 extract_sfmt_movb9_compact
:
1931 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1932 CGEN_INSN_INT insn
= entire_insn
;
1933 #define FLD(f) abuf->fields.sfmt_addi_compact.f
1936 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
1938 /* Record the fields for the semantic handler. */
1939 FLD (f_imm8
) = f_imm8
;
1940 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movb9_compact", "f_imm8 0x%x", 'x', f_imm8
, (char *) 0));
1946 extract_sfmt_movb10_compact
:
1948 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1949 CGEN_INSN_INT insn
= entire_insn
;
1950 #define FLD(f) abuf->fields.sfmt_movb5_compact.f
1954 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1955 f_imm4
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
1957 /* Record the fields for the semantic handler. */
1958 FLD (f_imm4
) = f_imm4
;
1960 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movb10_compact", "f_imm4 0x%x", 'x', f_imm4
, "f_rm 0x%x", 'x', f_rm
, (char *) 0));
1966 extract_sfmt_movl4_compact
:
1968 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1969 CGEN_INSN_INT insn
= entire_insn
;
1970 #define FLD(f) abuf->fields.sfmt_movl10_compact.f
1973 f_imm8x4
= ((EXTRACT_LSB0_UINT (insn
, 16, 7, 8)) << (2));
1975 /* Record the fields for the semantic handler. */
1976 FLD (f_imm8x4
) = f_imm8x4
;
1977 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movl4_compact", "f_imm8x4 0x%x", 'x', f_imm8x4
, (char *) 0));
1983 extract_sfmt_movl5_compact
:
1985 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
1986 CGEN_INSN_INT insn
= entire_insn
;
1987 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1992 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
1993 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
1994 f_imm4x4
= ((EXTRACT_LSB0_UINT (insn
, 16, 3, 4)) << (2));
1996 /* Record the fields for the semantic handler. */
1997 FLD (f_imm4x4
) = f_imm4x4
;
2000 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movl5_compact", "f_imm4x4 0x%x", 'x', f_imm4x4
, "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2006 extract_sfmt_movl7_compact
:
2008 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2009 CGEN_INSN_INT insn
= entire_insn
;
2010 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
2014 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2015 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
2017 /* Record the fields for the semantic handler. */
2020 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movl7_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2026 extract_sfmt_movl9_compact
:
2028 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2029 CGEN_INSN_INT insn
= entire_insn
;
2030 #define FLD(f) abuf->fields.sfmt_movl10_compact.f
2033 f_imm8x4
= ((EXTRACT_LSB0_UINT (insn
, 16, 7, 8)) << (2));
2035 /* Record the fields for the semantic handler. */
2036 FLD (f_imm8x4
) = f_imm8x4
;
2037 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movl9_compact", "f_imm8x4 0x%x", 'x', f_imm8x4
, (char *) 0));
2043 extract_sfmt_movl10_compact
:
2045 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2046 CGEN_INSN_INT insn
= entire_insn
;
2047 #define FLD(f) abuf->fields.sfmt_movl10_compact.f
2051 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2052 f_imm8x4
= ((EXTRACT_LSB0_UINT (insn
, 16, 7, 8)) << (2));
2054 /* Record the fields for the semantic handler. */
2055 FLD (f_imm8x4
) = f_imm8x4
;
2057 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movl10_compact", "f_imm8x4 0x%x", 'x', f_imm8x4
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2063 extract_sfmt_movl11_compact
:
2065 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2066 CGEN_INSN_INT insn
= entire_insn
;
2067 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
2072 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2073 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
2074 f_imm4x4
= ((EXTRACT_LSB0_UINT (insn
, 16, 3, 4)) << (2));
2076 /* Record the fields for the semantic handler. */
2077 FLD (f_imm4x4
) = f_imm4x4
;
2080 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movl11_compact", "f_imm4x4 0x%x", 'x', f_imm4x4
, "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2086 extract_sfmt_movw4_compact
:
2088 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2089 CGEN_INSN_INT insn
= entire_insn
;
2090 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2093 f_imm8x2
= ((EXTRACT_LSB0_UINT (insn
, 16, 7, 8)) << (1));
2095 /* Record the fields for the semantic handler. */
2096 FLD (f_imm8x2
) = f_imm8x2
;
2097 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movw4_compact", "f_imm8x2 0x%x", 'x', f_imm8x2
, (char *) 0));
2103 extract_sfmt_movw5_compact
:
2105 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2106 CGEN_INSN_INT insn
= entire_insn
;
2107 #define FLD(f) abuf->fields.sfmt_movw5_compact.f
2111 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2112 f_imm4x2
= ((EXTRACT_LSB0_UINT (insn
, 16, 3, 4)) << (1));
2114 /* Record the fields for the semantic handler. */
2115 FLD (f_imm4x2
) = f_imm4x2
;
2117 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movw5_compact", "f_imm4x2 0x%x", 'x', f_imm4x2
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2123 extract_sfmt_movw9_compact
:
2125 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2126 CGEN_INSN_INT insn
= entire_insn
;
2127 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2130 f_imm8x2
= ((EXTRACT_LSB0_UINT (insn
, 16, 7, 8)) << (1));
2132 /* Record the fields for the semantic handler. */
2133 FLD (f_imm8x2
) = f_imm8x2
;
2134 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movw9_compact", "f_imm8x2 0x%x", 'x', f_imm8x2
, (char *) 0));
2140 extract_sfmt_movw10_compact
:
2142 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2143 CGEN_INSN_INT insn
= entire_insn
;
2144 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2148 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2149 f_imm8x2
= ((EXTRACT_LSB0_UINT (insn
, 16, 7, 8)) << (1));
2151 /* Record the fields for the semantic handler. */
2152 FLD (f_imm8x2
) = f_imm8x2
;
2154 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movw10_compact", "f_imm8x2 0x%x", 'x', f_imm8x2
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2160 extract_sfmt_movw11_compact
:
2162 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2163 CGEN_INSN_INT insn
= entire_insn
;
2164 #define FLD(f) abuf->fields.sfmt_movw11_compact.f
2168 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
2169 f_imm4x2
= ((EXTRACT_LSB0_UINT (insn
, 16, 3, 4)) << (1));
2171 /* Record the fields for the semantic handler. */
2172 FLD (f_imm4x2
) = f_imm4x2
;
2174 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movw11_compact", "f_imm4x2 0x%x", 'x', f_imm4x2
, "f_rm 0x%x", 'x', f_rm
, (char *) 0));
2180 extract_sfmt_mova_compact
:
2182 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2183 CGEN_INSN_INT insn
= entire_insn
;
2184 #define FLD(f) abuf->fields.sfmt_movl10_compact.f
2187 f_imm8x4
= ((EXTRACT_LSB0_UINT (insn
, 16, 7, 8)) << (2));
2189 /* Record the fields for the semantic handler. */
2190 FLD (f_imm8x4
) = f_imm8x4
;
2191 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mova_compact", "f_imm8x4 0x%x", 'x', f_imm8x4
, (char *) 0));
2197 extract_sfmt_movcal_compact
:
2199 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2200 CGEN_INSN_INT insn
= entire_insn
;
2201 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2204 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2206 /* Record the fields for the semantic handler. */
2208 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movcal_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2214 extract_sfmt_movt_compact
:
2216 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2217 CGEN_INSN_INT insn
= entire_insn
;
2218 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2221 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2223 /* Record the fields for the semantic handler. */
2225 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movt_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2231 extract_sfmt_mull_compact
:
2233 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2234 CGEN_INSN_INT insn
= entire_insn
;
2235 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
2239 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2240 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
2242 /* Record the fields for the semantic handler. */
2245 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mull_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2251 extract_sfmt_negc_compact
:
2253 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2254 CGEN_INSN_INT insn
= entire_insn
;
2255 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
2259 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2260 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
2262 /* Record the fields for the semantic handler. */
2265 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_negc_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2271 extract_sfmt_nop_compact
:
2273 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2274 #define FLD(f) abuf->fields.fmt_empty.f
2277 /* Record the fields for the semantic handler. */
2278 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_nop_compact", (char *) 0));
2284 extract_sfmt_rotcl_compact
:
2286 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2287 CGEN_INSN_INT insn
= entire_insn
;
2288 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2291 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2293 /* Record the fields for the semantic handler. */
2295 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_rotcl_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2301 extract_sfmt_rts_compact
:
2303 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2304 #define FLD(f) abuf->fields.fmt_empty.f
2307 /* Record the fields for the semantic handler. */
2308 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_rts_compact", (char *) 0));
2314 extract_sfmt_shad_compact
:
2316 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2317 CGEN_INSN_INT insn
= entire_insn
;
2318 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
2322 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2323 f_rm
= EXTRACT_LSB0_UINT (insn
, 16, 7, 4);
2325 /* Record the fields for the semantic handler. */
2328 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_shad_compact", "f_rm 0x%x", 'x', f_rm
, "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2334 extract_sfmt_shll2_compact
:
2336 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2337 CGEN_INSN_INT insn
= entire_insn
;
2338 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2341 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2343 /* Record the fields for the semantic handler. */
2345 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_shll2_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2351 extract_sfmt_stc_gbr_compact
:
2353 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2354 CGEN_INSN_INT insn
= entire_insn
;
2355 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2358 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2360 /* Record the fields for the semantic handler. */
2362 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stc_gbr_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2368 extract_sfmt_stcl_gbr_compact
:
2370 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2371 CGEN_INSN_INT insn
= entire_insn
;
2372 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2375 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2377 /* Record the fields for the semantic handler. */
2379 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stcl_gbr_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2385 extract_sfmt_sts_fpscr_compact
:
2387 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2388 CGEN_INSN_INT insn
= entire_insn
;
2389 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2392 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2394 /* Record the fields for the semantic handler. */
2396 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sts_fpscr_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2402 extract_sfmt_stsl_fpscr_compact
:
2404 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2405 CGEN_INSN_INT insn
= entire_insn
;
2406 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2409 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2411 /* Record the fields for the semantic handler. */
2413 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stsl_fpscr_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2419 extract_sfmt_sts_fpul_compact
:
2421 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2422 CGEN_INSN_INT insn
= entire_insn
;
2423 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2426 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2428 /* Record the fields for the semantic handler. */
2430 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sts_fpul_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2436 extract_sfmt_stsl_fpul_compact
:
2438 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2439 CGEN_INSN_INT insn
= entire_insn
;
2440 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2443 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2445 /* Record the fields for the semantic handler. */
2447 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stsl_fpul_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2453 extract_sfmt_sts_mach_compact
:
2455 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2456 CGEN_INSN_INT insn
= entire_insn
;
2457 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2460 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2462 /* Record the fields for the semantic handler. */
2464 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sts_mach_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2470 extract_sfmt_stsl_mach_compact
:
2472 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2473 CGEN_INSN_INT insn
= entire_insn
;
2474 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2477 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2479 /* Record the fields for the semantic handler. */
2481 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stsl_mach_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2487 extract_sfmt_sts_macl_compact
:
2489 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2490 CGEN_INSN_INT insn
= entire_insn
;
2491 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2494 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2496 /* Record the fields for the semantic handler. */
2498 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sts_macl_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2504 extract_sfmt_stsl_macl_compact
:
2506 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2507 CGEN_INSN_INT insn
= entire_insn
;
2508 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2511 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2513 /* Record the fields for the semantic handler. */
2515 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stsl_macl_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2521 extract_sfmt_sts_pr_compact
:
2523 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2524 CGEN_INSN_INT insn
= entire_insn
;
2525 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2528 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2530 /* Record the fields for the semantic handler. */
2532 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sts_pr_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2538 extract_sfmt_stsl_pr_compact
:
2540 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2541 CGEN_INSN_INT insn
= entire_insn
;
2542 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2545 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2547 /* Record the fields for the semantic handler. */
2549 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_stsl_pr_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2555 extract_sfmt_tasb_compact
:
2557 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2558 CGEN_INSN_INT insn
= entire_insn
;
2559 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
2562 f_rn
= EXTRACT_LSB0_UINT (insn
, 16, 11, 4);
2564 /* Record the fields for the semantic handler. */
2566 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_tasb_compact", "f_rn 0x%x", 'x', f_rn
, (char *) 0));
2572 extract_sfmt_trapa_compact
:
2574 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2575 CGEN_INSN_INT insn
= entire_insn
;
2576 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2579 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
2581 /* Record the fields for the semantic handler. */
2582 FLD (f_imm8
) = f_imm8
;
2583 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_trapa_compact", "f_imm8 0x%x", 'x', f_imm8
, (char *) 0));
2589 extract_sfmt_tsti_compact
:
2591 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2592 CGEN_INSN_INT insn
= entire_insn
;
2593 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2596 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
2598 /* Record the fields for the semantic handler. */
2599 FLD (f_imm8
) = f_imm8
;
2600 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_tsti_compact", "f_imm8 0x%x", 'x', f_imm8
, (char *) 0));
2606 extract_sfmt_tstb_compact
:
2608 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2609 CGEN_INSN_INT insn
= entire_insn
;
2610 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2613 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
2615 /* Record the fields for the semantic handler. */
2616 FLD (f_imm8
) = f_imm8
;
2617 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_tstb_compact", "f_imm8 0x%x", 'x', f_imm8
, (char *) 0));
2623 extract_sfmt_xori_compact
:
2625 const IDESC
*idesc
= &sh64_compact_insn_data
[itype
];
2626 CGEN_INSN_INT insn
= entire_insn
;
2627 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2630 f_imm8
= EXTRACT_LSB0_UINT (insn
, 16, 7, 8);
2632 /* Record the fields for the semantic handler. */
2633 FLD (f_imm8
) = f_imm8
;
2634 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_xori_compact", "f_imm8 0x%x", 'x', f_imm8
, (char *) 0));